diff --git a/.backportrc.json b/.backportrc.json index 58dfbf669671f..6edb47c1a7142 100644 --- a/.backportrc.json +++ b/.backportrc.json @@ -3,6 +3,7 @@ "repoName": "kibana", "targetBranchChoices": [ "main", + "8.x", "8.15", "8.14", "8.13", @@ -52,7 +53,8 @@ "backport" ], "branchLabelMapping": { - "^v8.16.0$": "main", + "^v9.0.0$": "main", + "^v8.16.0$": "8.x", "^v(\\d+).(\\d+).\\d+$": "$1.$2" }, "autoMerge": true, diff --git a/.buildkite/ftr_security_stateful_configs.yml b/.buildkite/ftr_security_stateful_configs.yml index 7238b96225519..77a8c57029096 100644 --- a/.buildkite/ftr_security_stateful_configs.yml +++ b/.buildkite/ftr_security_stateful_configs.yml @@ -21,8 +21,6 @@ disabled: - x-pack/test/osquery_cypress/visual_config.ts - x-pack/test/security_solution_cypress/cli_config.ts - x-pack/test/security_solution_cypress/config.ts - - x-pack/test/threat_intelligence_cypress/cli_config_parallel.ts - - x-pack/test/threat_intelligence_cypress/config.ts # Playwright - x-pack/test/security_solution_playwright/playwright.config.ts diff --git a/.buildkite/pipeline-resource-definitions/kibana-es-snapshots.yml b/.buildkite/pipeline-resource-definitions/kibana-es-snapshots.yml index d45ca3615b7f8..1c041d7016f44 100644 --- a/.buildkite/pipeline-resource-definitions/kibana-es-snapshots.yml +++ b/.buildkite/pipeline-resource-definitions/kibana-es-snapshots.yml @@ -22,7 +22,7 @@ spec: SLACK_NOTIFICATIONS_CHANNEL: '#kibana-operations-alerts' ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true' allow_rebuilds: true - branch_configuration: main 8.15 7.17 + branch_configuration: main 8.x 8.15 7.17 default_branch: main repository: elastic/kibana pipeline_file: .buildkite/pipelines/es_snapshots/build.yml @@ -49,6 +49,10 @@ spec: cronline: 0 9 * * * America/New_York message: Daily build branch: main + Daily build (8.x): + cronline: 0 9 * * * America/New_York + message: Daily build + branch: '8.x' Daily build (8.15): cronline: 0 9 * * * America/New_York message: Daily build @@ -82,7 +86,7 @@ spec: SLACK_NOTIFICATIONS_CHANNEL: '#kibana-operations-alerts' ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true' allow_rebuilds: true - branch_configuration: main 8.15 7.17 + branch_configuration: main 8.x 8.15 7.17 default_branch: main repository: elastic/kibana pipeline_file: .buildkite/pipelines/es_snapshots/promote.yml @@ -130,7 +134,7 @@ spec: ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true' REPORT_FAILED_TESTS_TO_GITHUB: 'true' allow_rebuilds: true - branch_configuration: main 8.15 7.17 + branch_configuration: main 8.x 8.15 7.17 default_branch: main repository: elastic/kibana pipeline_file: .buildkite/pipelines/es_snapshots/verify.yml diff --git a/.buildkite/pipeline-resource-definitions/kibana-fips-daily.yml b/.buildkite/pipeline-resource-definitions/kibana-fips-daily.yml index 5a89b3bfb4f3a..b64521858c1f6 100644 --- a/.buildkite/pipeline-resource-definitions/kibana-fips-daily.yml +++ b/.buildkite/pipeline-resource-definitions/kibana-fips-daily.yml @@ -34,5 +34,7 @@ spec: teams: kibana-operations: access_level: MANAGE_BUILD_AND_READ + kibana-security: + access_level: MANAGE_BUILD_AND_READ everyone: access_level: READ_ONLY diff --git a/.buildkite/pipeline-resource-definitions/kibana-on-merge-unsupported-ftrs.yml b/.buildkite/pipeline-resource-definitions/kibana-on-merge-unsupported-ftrs.yml index 8a152095b747c..b9c6cb8970271 100644 --- a/.buildkite/pipeline-resource-definitions/kibana-on-merge-unsupported-ftrs.yml +++ b/.buildkite/pipeline-resource-definitions/kibana-on-merge-unsupported-ftrs.yml @@ -22,7 +22,7 @@ spec: SLACK_NOTIFICATIONS_CHANNEL: '#kibana-unsupported-ftrs-alerts' ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true' allow_rebuilds: true - branch_configuration: main 8.15 7.17 + branch_configuration: main 8.x 8.15 7.17 default_branch: main repository: elastic/kibana pipeline_file: .buildkite/pipelines/on_merge_unsupported_ftrs.yml diff --git a/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml b/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml index a248d2a1d6497..97008d1ce78f7 100644 --- a/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml +++ b/.buildkite/pipeline-resource-definitions/kibana-on-merge.yml @@ -25,7 +25,7 @@ spec: REPORT_FAILED_TESTS_TO_GITHUB: 'true' ELASTIC_SLACK_NOTIFICATIONS_ENABLED: 'true' allow_rebuilds: true - branch_configuration: main 7.17 8.15 + branch_configuration: main 8.x 8.15 7.17 default_branch: main repository: elastic/kibana pipeline_file: .buildkite/pipelines/on_merge.yml diff --git a/.buildkite/pipeline-utils/utils.test.ts b/.buildkite/pipeline-utils/utils.test.ts index 20f069cbfccf2..698dc5ca115d8 100644 --- a/.buildkite/pipeline-utils/utils.test.ts +++ b/.buildkite/pipeline-utils/utils.test.ts @@ -36,9 +36,6 @@ describe('getVersionsFile', () => { const versionsFile = getVersionsFile(); expect(versionsFile.prevMajors).to.be.an('array'); - expect(versionsFile.prevMajors.length).to.eql(1); - expect(versionsFile.prevMajors[0].branch).to.eql('7.17'); - expect(versionsFile.prevMinors).to.be.an('array'); }); diff --git a/.buildkite/pipeline-utils/utils.ts b/.buildkite/pipeline-utils/utils.ts index bd08ca00015a5..dd3def026f99d 100644 --- a/.buildkite/pipeline-utils/utils.ts +++ b/.buildkite/pipeline-utils/utils.ts @@ -43,6 +43,7 @@ const getVersionsFile = (() => { prevMinors: Version[]; prevMajors: Version[]; current: Version; + versions: Version[]; }; const versionsFileName = 'versions.json'; try { diff --git a/.buildkite/pipelines/on_merge.yml b/.buildkite/pipelines/on_merge.yml index e37e99c9c4df1..e42f34bfba1fa 100644 --- a/.buildkite/pipelines/on_merge.yml +++ b/.buildkite/pipelines/on_merge.yml @@ -386,24 +386,6 @@ steps: - exit_status: '-1' limit: 1 - - command: .buildkite/scripts/steps/functional/threat_intelligence.sh - label: 'Threat Intelligence Cypress Tests' - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: .buildkite/scripts/steps/functional/osquery_cypress.sh label: 'Osquery Cypress Tests' agents: diff --git a/.buildkite/pipelines/pointer_compression.yml b/.buildkite/pipelines/pointer_compression.yml index c12dff65b7fa2..b36871d6d9634 100644 --- a/.buildkite/pipelines/pointer_compression.yml +++ b/.buildkite/pipelines/pointer_compression.yml @@ -321,23 +321,6 @@ steps: - exit_status: '-1' limit: 1 - - command: .buildkite/scripts/steps/functional/threat_intelligence.sh - label: 'Threat Intelligence Cypress Tests' - agents: - image: family/kibana-ubuntu-2004 - imageProject: elastic-images-prod - provider: gcp - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - timeout_in_minutes: 60 - parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - - command: .buildkite/scripts/steps/functional/osquery_cypress.sh label: 'Osquery Cypress Tests' agents: diff --git a/.buildkite/pipelines/pull_request/security_solution/threat_intelligence.yml b/.buildkite/pipelines/pull_request/security_solution/threat_intelligence.yml deleted file mode 100644 index 3b4f0e6accc7f..0000000000000 --- a/.buildkite/pipelines/pull_request/security_solution/threat_intelligence.yml +++ /dev/null @@ -1,15 +0,0 @@ -steps: - - command: .buildkite/scripts/steps/functional/threat_intelligence.sh - label: 'Threat Intelligence Cypress Tests' - agents: - machineType: n2-standard-4 - preemptible: true - depends_on: - - build - - quick_checks - timeout_in_minutes: 60 - parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 diff --git a/.buildkite/pipelines/quality-gates/emergency/pipeline.emergency.kibana-tests.yaml b/.buildkite/pipelines/quality-gates/emergency/pipeline.emergency.kibana-tests.yaml index 60ede2aae2b91..5341f967e512f 100644 --- a/.buildkite/pipelines/quality-gates/emergency/pipeline.emergency.kibana-tests.yaml +++ b/.buildkite/pipelines/quality-gates/emergency/pipeline.emergency.kibana-tests.yaml @@ -19,6 +19,7 @@ env: SKIP_NODE_SETUP: true TEAM_CHANNEL: "#kibana-mission-control" ENVIRONMENT: ${ENVIRONMENT?} + DEPLOYMENT_SLICES: ${DEPLOYMENT_SLICES:-""} steps: - label: ":pipeline::grey_question::seedling: Trigger Kibana Tests for ${ENVIRONMENT}" diff --git a/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-production.yaml b/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-production.yaml index a1de7f41a2100..f7689ffeab928 100644 --- a/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-production.yaml +++ b/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-production.yaml @@ -13,6 +13,7 @@ steps: CHECK_SLO_TAG: kibana CHECK_SLO_WAITING_PERIOD: 15m CHECK_SLO_BURN_RATE_THRESHOLD: 0.1 + DEPLOYMENT_SLICES: ${DEPLOYMENT_SLICES:-""} soft_fail: true - label: ":rocket: control-plane e2e tests" diff --git a/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-staging.yaml b/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-staging.yaml index febb61c12c5f1..2bd85e2ad8a74 100644 --- a/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-staging.yaml +++ b/.buildkite/pipelines/quality-gates/emergency/pipeline.tests-staging.yaml @@ -33,6 +33,7 @@ steps: CHECK_SYNTHETICS_MINIMUM_RUNS: 3 MAX_FAILURES: 2 CHECK_SYNTHETIC_MAX_POLL: 50 + DEPLOYMENT_SLICES: ${DEPLOYMENT_SLICES:-""} soft_fail: true - wait: ~ diff --git a/.buildkite/pipelines/quality-gates/pipeline.kibana-tests.yaml b/.buildkite/pipelines/quality-gates/pipeline.kibana-tests.yaml index 6fa4ddf634524..54f5ef6ea9263 100644 --- a/.buildkite/pipelines/quality-gates/pipeline.kibana-tests.yaml +++ b/.buildkite/pipelines/quality-gates/pipeline.kibana-tests.yaml @@ -19,6 +19,7 @@ env: SKIP_NODE_SETUP: true TEAM_CHANNEL: "#kibana-mission-control" ENVIRONMENT: ${ENVIRONMENT?} + DEPLOYMENT_SLICES: ${DEPLOYMENT_SLICES:-""} steps: - label: ":pipeline::grey_question::seedling: Trigger Kibana Tests for ${ENVIRONMENT}" diff --git a/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml b/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml index a1de7f41a2100..f7689ffeab928 100644 --- a/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml +++ b/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml @@ -13,6 +13,7 @@ steps: CHECK_SLO_TAG: kibana CHECK_SLO_WAITING_PERIOD: 15m CHECK_SLO_BURN_RATE_THRESHOLD: 0.1 + DEPLOYMENT_SLICES: ${DEPLOYMENT_SLICES:-""} soft_fail: true - label: ":rocket: control-plane e2e tests" diff --git a/.buildkite/pipelines/quality-gates/pipeline.tests-staging.yaml b/.buildkite/pipelines/quality-gates/pipeline.tests-staging.yaml index febb61c12c5f1..2bd85e2ad8a74 100644 --- a/.buildkite/pipelines/quality-gates/pipeline.tests-staging.yaml +++ b/.buildkite/pipelines/quality-gates/pipeline.tests-staging.yaml @@ -33,6 +33,7 @@ steps: CHECK_SYNTHETICS_MINIMUM_RUNS: 3 MAX_FAILURES: 2 CHECK_SYNTHETIC_MAX_POLL: 50 + DEPLOYMENT_SLICES: ${DEPLOYMENT_SLICES:-""} soft_fail: true - wait: ~ diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml index 72af06600ada7..5795c8f61f30f 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_defend_workflows.yml @@ -13,6 +13,7 @@ steps: localSsds: 1 localSsdInterface: nvme machineType: n2-standard-4 + preemptible: true timeout_in_minutes: 300 parallelism: 5 retry: @@ -102,6 +103,7 @@ steps: localSsds: 1 localSsdInterface: nvme machineType: n2-standard-4 + preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -119,6 +121,7 @@ steps: localSsds: 1 localSsdInterface: nvme machineType: n2-standard-4 + preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -136,6 +139,7 @@ steps: localSsds: 1 localSsdInterface: nvme machineType: n2-standard-4 + preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -156,6 +160,7 @@ steps: localSsds: 1 localSsdInterface: nvme machineType: n2-standard-4 + preemptible: true timeout_in_minutes: 300 parallelism: 3 retry: diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_detection_engine.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_detection_engine.yml index da5aa911a6c29..e25c6dfef0e4b 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_detection_engine.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_detection_engine.yml @@ -16,10 +16,6 @@ steps: # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 8 - retry: - automatic: - - exit_status: "-1" - limit: 1 - command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:detection_engine:exceptions label: "Cypress MKI - Detection Engine - Exceptions" @@ -35,10 +31,6 @@ steps: # 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: "-1" - limit: 1 - group: "API MKI - Detection Engine - " key: api_test_detections_engine diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_entity_analytics.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_entity_analytics.yml index f993986aefbb1..2f3f1082476ef 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_entity_analytics.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_entity_analytics.yml @@ -13,10 +13,6 @@ steps: # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 2 - retry: - automatic: - - exit_status: '-1' - limit: 1 - group: "API MKI - Entity Analytics" key: api_test_entity_analytics diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_explore.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_explore.yml index 7697da4b3edaf..29e838e962a55 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_explore.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_explore.yml @@ -13,10 +13,6 @@ steps: # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 4 - retry: - automatic: - - exit_status: '-1' - limit: 1 - group: "API MKI - Explore" key: api_test_explore diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_gen_ai.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_gen_ai.yml index c9c80c823b227..901425ec57ff4 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_gen_ai.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_gen_ai.yml @@ -13,10 +13,6 @@ steps: # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: "-1" - limit: 1 - group: "API MKI - GenAI" key: api_test_ai_assistant diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_investigations.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_investigations.yml index 0988bf6ecf6b8..9539643ad12c3 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_investigations.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_investigations.yml @@ -13,10 +13,6 @@ steps: # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 8 - retry: - automatic: - - exit_status: '-1' - limit: 1 - group: "API MKI - Investigations" key: api_test_investigations diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_rule_management.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_rule_management.yml index 7f08247a91b86..05613941d7b5e 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_rule_management.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_periodic/mki_periodic_rule_management.yml @@ -16,10 +16,6 @@ steps: # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 8 - retry: - automatic: - - exit_status: "-1" - limit: 1 - command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:rule_management:prebuilt_rules label: "Cypress MKI - Rule Management - Prebuilt Rules" @@ -35,10 +31,6 @@ steps: # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 4 - retry: - automatic: - - exit_status: "-1" - limit: 1 - group: "API MKI - Rule Management" key: api_test_rule_management diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_detection_engine.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_detection_engine.yml index f73ecc6225dcf..90c90ae8a3a36 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_detection_engine.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_detection_engine.yml @@ -12,14 +12,9 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: "-1" - limit: 1 - command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:detection_engine:exceptions label: "Cypress MKI - Detection Engine - Exceptions" @@ -31,14 +26,9 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: "-1" - limit: 1 - group: "API MKI - Detection Engine" key: api_test_detections_engine @@ -51,7 +41,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -66,7 +55,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -81,7 +69,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -96,7 +83,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -111,7 +97,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -126,7 +111,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -141,7 +125,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -156,7 +139,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -171,7 +153,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -186,7 +167,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -201,7 +181,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -216,7 +195,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -231,7 +209,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -246,7 +223,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_entity_analytics.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_entity_analytics.yml index 16f2ec688bde4..da32bc4efc44f 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_entity_analytics.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_entity_analytics.yml @@ -9,14 +9,9 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - group: "API MKI - Entity Analytics" key: api_test_entity_analytics @@ -29,7 +24,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -44,7 +38,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_explore.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_explore.yml index 2c518fa24efab..efcc5ccf113f5 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_explore.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_explore.yml @@ -9,14 +9,9 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - group: "API MKI - Explore" key: api_test_explore @@ -29,7 +24,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -44,7 +38,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -59,7 +52,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -74,7 +66,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_gen_ai.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_gen_ai.yml index 677a5c62f4cc0..660d36183fe2f 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_gen_ai.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_gen_ai.yml @@ -9,14 +9,9 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: "-1" - limit: 1 - group: "API MKI - GenAI" key: api_test_ai_assistant @@ -29,7 +24,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -44,7 +38,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_investigations.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_investigations.yml index d3f57e40ec2cb..7f262340cfa5e 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_investigations.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_investigations.yml @@ -9,14 +9,9 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: '-1' - limit: 1 - group: "API MKI - Investigations" key: api_test_investigations @@ -29,7 +24,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -44,7 +38,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: diff --git a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_rule_management.yml b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_rule_management.yml index affdaca9cb539..b01094d742226 100644 --- a/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_rule_management.yml +++ b/.buildkite/pipelines/security_solution_quality_gate/mki_quality_gate/mki_quality_gate_rule_management.yml @@ -12,14 +12,9 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: "-1" - limit: 1 - command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:rule_management:prebuilt_rules label: "Cypress MKI - Rule Management - Prebuilt Rules" @@ -31,14 +26,9 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 parallelism: 1 - retry: - automatic: - - exit_status: "-1" - limit: 1 - group: "API MKI - Rule Management" key: api_test_rule_management @@ -51,7 +41,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -66,7 +55,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -81,7 +69,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -96,7 +83,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -111,7 +97,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -126,7 +111,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -141,7 +125,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -156,7 +139,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -171,7 +153,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -186,7 +167,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -201,7 +181,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -216,7 +195,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -231,7 +209,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -246,7 +223,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -261,7 +237,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -276,7 +251,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -291,7 +265,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -306,7 +279,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: @@ -321,7 +293,6 @@ steps: imageProject: elastic-images-prod provider: gcp machineType: n2-standard-4 - preemptible: true timeout_in_minutes: 120 retry: automatic: diff --git a/.buildkite/scripts/pipelines/pull_request/pipeline.ts b/.buildkite/scripts/pipelines/pull_request/pipeline.ts index 9307cbe40b09a..08d459ac5e7fd 100644 --- a/.buildkite/scripts/pipelines/pull_request/pipeline.ts +++ b/.buildkite/scripts/pipelines/pull_request/pipeline.ts @@ -245,22 +245,35 @@ const getPipeline = (filename: string, removeSteps = true) => { if ( (await doAnyChangesMatch([ /^package.json/, + /^packages\/kbn-doc-links/, + /^packages\/kbn-es-query/, + /^packages\/kbn-i18n-react/, + /^packages\/kbn-i18n/, + /^packages\/kbn-expandable-flyout/, /^packages\/kbn-securitysolution-.*/, + /^packages\/kbn-securitysolution-io-ts-list-types/, + /^packages\/shared-ux/, + /^src\/core/, + /^src\/plugins\/data/, + /^src\/plugins\/kibana_utils/, + /^src\/plugins\/inspector/, + /^x-pack\/packages\/kbn-elastic-assistant/, + /^x-pack\/packages\/kbn-elastic-assistant-common/, + /^x-pack\/packages\/security-solution/, /^x-pack\/plugins\/alerting/, + /^x-pack\/plugins\/cases/, /^x-pack\/plugins\/data_views\/common/, + /^x-pack\/plugins\/elastic_assistant/, /^x-pack\/plugins\/lists/, /^x-pack\/plugins\/rule_registry\/common/, /^x-pack\/plugins\/security_solution/, /^x-pack\/plugins\/security_solution_ess/, /^x-pack\/plugins\/security_solution_serverless/, /^x-pack\/plugins\/task_manager/, + /^x-pack\/plugins\/threat_intelligence/, /^x-pack\/plugins\/timelines/, /^x-pack\/plugins\/triggers_actions_ui\/public\/application\/sections\/alerts_table/, /^x-pack\/plugins\/usage_collection\/public/, - /^x-pack\/plugins\/elastic_assistant/, - /^x-pack\/packages\/security-solution/, - /^x-pack\/packages\/kbn-elastic-assistant/, - /^x-pack\/packages\/kbn-elastic-assistant-common/, /^x-pack\/test\/functional\/es_archives\/security_solution/, /^x-pack\/test\/security_solution_cypress/, ])) || @@ -271,37 +284,6 @@ const getPipeline = (filename: string, removeSteps = true) => { ); } - 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/, diff --git a/.buildkite/scripts/pipelines/trigger_version_dependent_jobs/pipeline.test.ts b/.buildkite/scripts/pipelines/trigger_version_dependent_jobs/pipeline.test.ts index e841ce9b08711..95bf7ab261d62 100644 --- a/.buildkite/scripts/pipelines/trigger_version_dependent_jobs/pipeline.test.ts +++ b/.buildkite/scripts/pipelines/trigger_version_dependent_jobs/pipeline.test.ts @@ -25,7 +25,7 @@ describe('pipeline trigger combinations', () => { it('should trigger the correct pipelines for "es-forward"', () => { const esForwardTriggers = getESForwardPipelineTriggers(); // tests 7.17 against 8.x versions - const targets = versionsFile.versions.filter((v) => v.currentMajor === true); + const targets = versionsFile.versions.filter((v) => v.branch.startsWith('8.')); expect(esForwardTriggers.length).to.eql(targets.length); @@ -43,7 +43,6 @@ describe('pipeline trigger combinations', () => { const snapshotTriggers = getArtifactSnapshotPipelineTriggers(); // triggers for all open branches const branches = versionsFile.versions.map((v) => v.branch); - expect(snapshotTriggers.length).to.eql(branches.length); branches.forEach((b) => { @@ -53,9 +52,10 @@ describe('pipeline trigger combinations', () => { it('should trigger the correct pipelines for "artifacts-trigger"', () => { const triggerTriggers = getArtifactBuildTriggers(); - // all currentMajor+prevMinor branches + // all branches that have fixed versions, and excluding 7.17 (i.e. not 7.17, [0-9].x and main) const branches = versionsFile.versions - .filter((v) => v.currentMajor === true && v.previousMinor === true) + .filter((v) => v.branch.match(/[0-9]{1,2}\.[0-9]{1,2}/)) + .filter((v) => v.previousMajor === true) .map((v) => v.branch); expect(triggerTriggers.length).to.eql(branches.length); @@ -66,9 +66,9 @@ describe('pipeline trigger combinations', () => { it('should trigger the correct pipelines for "artifacts-staging"', () => { const stagingTriggers = getArtifactStagingPipelineTriggers(); - // all branches that are not currentMajor+currentMinor + // all branches that have fixed versions (i.e. not [0-9].x and main) const branches = versionsFile.versions - .filter((v) => !v.currentMajor || !v.currentMinor) + .filter((v) => v.branch.match(/[0-9]{1,2}\.[0-9]{1,2}/)) .map((v) => v.branch); expect(stagingTriggers.length).to.eql(branches.length); diff --git a/.buildkite/scripts/pipelines/trigger_version_dependent_jobs/pipeline.ts b/.buildkite/scripts/pipelines/trigger_version_dependent_jobs/pipeline.ts index 2b419c92db19b..eace1bcdd55c8 100755 --- a/.buildkite/scripts/pipelines/trigger_version_dependent_jobs/pipeline.ts +++ b/.buildkite/scripts/pipelines/trigger_version_dependent_jobs/pipeline.ts @@ -66,17 +66,20 @@ async function main() { */ export function getESForwardPipelineTriggers(): BuildkiteTriggerStep[] { const versions = getVersionsFile(); - const kibanaPrevMajor = versions.prevMajors[0]; - const targetESVersions = [versions.prevMinors, versions.current].flat(); + const KIBANA_7_17 = versions.versions.find((v) => v.branch === '7.17'); + if (!KIBANA_7_17) { + throw new Error('Update ES forward compatibility pipeline to remove 7.17 and add version 8'); + } + const targetESVersions = versions.versions.filter((v) => v.branch.startsWith('8.')); return targetESVersions.map(({ version }) => { return { trigger: pipelineSets['es-forward'], async: true, - label: `Triggering Kibana ${kibanaPrevMajor.version} + ES ${version} forward compatibility`, + label: `Triggering Kibana ${KIBANA_7_17.version} + ES ${version} forward compatibility`, build: { message: process.env.MESSAGE || `ES forward-compatibility test for ES ${version}`, - branch: kibanaPrevMajor.branch, + branch: KIBANA_7_17.branch, commit: 'HEAD', env: { ES_SNAPSHOT_MANIFEST: `https://storage.googleapis.com/kibana-ci-es-snapshots-daily/${version}/manifest-latest-verified.json`, @@ -89,12 +92,12 @@ export function getESForwardPipelineTriggers(): BuildkiteTriggerStep[] { /** * This pipeline creates Kibana artifact snapshots for all open branches. - * Should be triggered for all open branches in the versions.json: 7.x, 8.x + * Should be triggered for all open branches in the versions.json */ export function getArtifactSnapshotPipelineTriggers() { // Trigger for all named branches const versions = getVersionsFile(); - const targetVersions = [versions.prevMajors, versions.prevMinors, versions.current].flat(); + const targetVersions = versions.versions; return targetVersions.map(({ branch }) => { return { @@ -115,12 +118,14 @@ export function getArtifactSnapshotPipelineTriggers() { /** * This pipeline creates Kibana artifacts for branches that are not the current main. - * Should be triggered for all open branches in the versions.json: 7.x, 8.x, but not main. + * Should be triggered for all open branches with a fixed version: not main and 8.x. */ export function getArtifactStagingPipelineTriggers() { // Trigger for all branches, that are not current minor+major const versions = getVersionsFile(); - const targetVersions = [versions.prevMajors, versions.prevMinors].flat(); + const targetVersions = versions.versions.filter((version) => + Boolean(version.branch.match(/[0-9]{1,2}\.[0-9]{1,2}/)) + ); return targetVersions.map(({ branch }) => { return { @@ -142,13 +147,15 @@ export function getArtifactStagingPipelineTriggers() { /** * This pipeline checks if there are any changes in the incorporated $BEATS_MANIFEST_LATEST_URL (beats version) * and triggers a staging artifact build. - * Should be triggered only for the active minor versions that are not `main` and not `7.17`. + * Should be triggered for all open branches with a fixed version excluding 7.17: not main, 7.17 and 8.x. * * TODO: we could basically do the check logic of .buildkite/scripts/steps/artifacts/trigger.sh in here, and remove kibana-artifacts-trigger */ export function getArtifactBuildTriggers() { const versions = getVersionsFile(); - const targetVersions = versions.prevMinors; + const targetVersions = versions.prevMajors.filter((version) => + Boolean(version.branch.match(/[0-9]{1,2}\.[0-9]{1,2}/)) + ); return targetVersions.map( ({ branch }) => diff --git a/.buildkite/scripts/steps/checks/renovate.sh b/.buildkite/scripts/steps/checks/renovate.sh index 17c87254511e1..924d32853cd00 100755 --- a/.buildkite/scripts/steps/checks/renovate.sh +++ b/.buildkite/scripts/steps/checks/renovate.sh @@ -4,5 +4,11 @@ set -euo pipefail +source .buildkite/scripts/common/util.sh + echo --- Check renovate.json -docker run -v "$(pwd)"/renovate.json:/home/app/renovate.json docker.elastic.co/ci-agent-images/pipelib:0.8.0@sha256:641d7fc6cfe473900a1fbe49876762916d804b09fdf2945f74e9f803f3073779 renovate-config-validator + +retry 3 3 docker run \ + -v "$(pwd)"/renovate.json:/home/app/renovate.json \ + docker.elastic.co/ci-agent-images/pipelib:0.8.0@sha256:641d7fc6cfe473900a1fbe49876762916d804b09fdf2945f74e9f803f3073779 \ + renovate-config-validator diff --git a/.buildkite/scripts/steps/esql_generate_function_metadata.sh b/.buildkite/scripts/steps/esql_generate_function_metadata.sh index 837a962b3c42b..07de4bc9bd04c 100755 --- a/.buildkite/scripts/steps/esql_generate_function_metadata.sh +++ b/.buildkite/scripts/steps/esql_generate_function_metadata.sh @@ -2,7 +2,7 @@ set -euo pipefail VALIDATION_PACKAGE_DIR="packages/kbn-esql-validation-autocomplete" -EDITOR_PACKAGE_DIR="packages/kbn-text-based-editor" +EDITOR_PACKAGE_DIR="packages/kbn-language-documentation-popover" GIT_SCOPE="$VALIDATION_PACKAGE_DIR/**/* $EDITOR_PACKAGE_DIR/**/*" report_main_step () { diff --git a/.buildkite/scripts/steps/functional/threat_intelligence.sh b/.buildkite/scripts/steps/functional/threat_intelligence.sh deleted file mode 100755 index 58a3029469891..0000000000000 --- a/.buildkite/scripts/steps/functional/threat_intelligence.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -source .buildkite/scripts/steps/functional/common.sh - -export JOB=kibana-threat-intelligence-chrome -export KIBANA_INSTALL_DIR=${KIBANA_BUILD_LOCATION} - -echo "--- Threat Intelligence Cypress tests (Chrome)" - -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 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index aaea3b56aa038..3a4306292b8f9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -362,7 +362,7 @@ packages/deeplinks/devtools @elastic/kibana-management packages/deeplinks/fleet @elastic/fleet packages/deeplinks/management @elastic/kibana-management packages/deeplinks/ml @elastic/ml-ui -packages/deeplinks/observability @elastic/obs-ux-logs-team +packages/deeplinks/observability @elastic/obs-ux-management-team packages/deeplinks/search @elastic/search-kibana packages/deeplinks/security @elastic/security-solution packages/deeplinks/shared @elastic/appex-sharedux @@ -508,8 +508,8 @@ src/plugins/image_embeddable @elastic/appex-sharedux packages/kbn-import-locator @elastic/kibana-operations packages/kbn-import-resolver @elastic/kibana-operations x-pack/plugins/index_lifecycle_management @elastic/kibana-management -x-pack/packages/index-management @elastic/kibana-management x-pack/plugins/index_management @elastic/kibana-management +x-pack/packages/index-management/index_management_shared_types @elastic/kibana-management test/plugin_functional/plugins/index_patterns @elastic/kibana-data-discovery x-pack/packages/ml/inference_integration_flyout @elastic/ml-ui x-pack/plugins/inference @elastic/appex-ai-infra @@ -522,6 +522,7 @@ x-pack/plugins/integration_assistant @elastic/security-scalability src/plugins/interactive_setup @elastic/kibana-security test/interactive_setup_api_integration/plugins/test_endpoints @elastic/kibana-security packages/kbn-interpreter @elastic/kibana-visualizations +x-pack/plugins/observability_solution/inventory @elastic/obs-ux-infra_services-team x-pack/plugins/observability_solution/investigate_app @elastic/obs-ux-management-team x-pack/plugins/observability_solution/investigate @elastic/obs-ux-management-team packages/kbn-investigation-shared @elastic/obs-ux-management-team @@ -876,6 +877,9 @@ 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/kibana-management +packages/kbn-sse-utils @elastic/obs-knowledge-team +packages/kbn-sse-utils-client @elastic/obs-knowledge-team +packages/kbn-sse-utils-server @elastic/obs-knowledge-team x-pack/plugins/stack_alerts @elastic/response-ops x-pack/plugins/stack_connectors @elastic/response-ops x-pack/test/usage_collection/plugins/stack_management_usage_test @elastic/kibana-management @@ -1502,7 +1506,6 @@ x-pack/test/security_solution_api_integration/test_suites/sources @elastic/secur /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 @@ -1788,15 +1791,9 @@ test/functional/page_objects/solution_navigation.ts @elastic/appex-sharedux /x-pack/test_serverless/functional/page_objects/svl_common_navigation.ts @elastic/appex-sharedux # OpenAPI spec files -/x-pack/plugins/fleet/common/openapi @elastic/platform-docs -/x-pack/plugins/ml/common/openapi @elastic/platform-docs -/packages/core/saved-objects/docs/openapi @elastic/platform-docs -/plugins/data_views/docs/openapi @elastic/platform-docs oas_docs/.spectral.yaml @elastic/platform-docs oas_docs/kibana.info.serverless.yaml @elastic/platform-docs oas_docs/kibana.info.yaml @elastic/platform-docs -oas_docs/makefile @elastic/platform-docs -oas_docs/overlays @elastic/platform-docs # Plugin manifests /src/plugins/**/kibana.jsonc @elastic/kibana-core diff --git a/.i18nrc.json b/.i18nrc.json index 7707bfdcde172..b65c71b1a0d44 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -116,6 +116,7 @@ "searchTypes": "packages/kbn-search-types", "securitySolutionPackages": "x-pack/packages/security-solution", "serverlessPackages": "packages/serverless", + "sse": [ "packages/kbn-sse-utils" ], "coloring": "packages/kbn-coloring/src", "languageDocumentationPopover": "packages/kbn-language-documentation-popover/src", "esql": "src/plugins/esql", diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 24855090cad83..70e65ec3ed3da 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-09-11 +date: 2024-09-16 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 a6a842c64b459..a48b067ad9790 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx index 033db7fdcec51..a1013eb0966d2 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-09-11 +date: 2024-09-16 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 89550b4c8ce8f..d2be63d8ed7cd 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 5005bd9f53069..d27f6497a9543 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index 3e91c50aada15..7a76874a7835b 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -465,7 +465,15 @@ "label": "APMServerRouteRepository", "description": [], "signature": [ - "{ \"GET /internal/apm/services/{serviceName}/dashboards\": { endpoint: \"GET /internal/apm/services/{serviceName}/dashboards\"; params?: ", + "{ \"GET /internal/apm/services/{serviceName}/dashboards\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/dashboards\", ", "TypeC", "<{ path: ", "TypeC", @@ -487,23 +495,39 @@ "LiteralC", "<\"entities\">, ", "LiteralC", - "<\"services\">]>; }>]>; }> | undefined; handler: ({}: ", + "<\"services\">]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { checkFor?: \"entities\" | \"services\" | undefined; }; }; }) => Promise<{ serviceDashboards: ", + ", { serviceDashboards: ", "SavedApmCustomDashboard", - "[]; }>; } & ", + "[]; }, ", "APMRouteCreateOptions", - "; \"DELETE /internal/apm/custom-dashboard\": { endpoint: \"DELETE /internal/apm/custom-dashboard\"; params?: ", + ">; \"DELETE /internal/apm/custom-dashboard\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/apm/custom-dashboard\", ", "TypeC", "<{ query: ", "TypeC", "<{ customDashboardId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { customDashboardId: string; }; }; }) => Promise; } & ", + ", void, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/custom-dashboard\": { endpoint: \"POST /internal/apm/custom-dashboard\"; params?: ", + ">; \"POST /internal/apm/custom-dashboard\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/custom-dashboard\", ", "TypeC", "<{ query: ", "UnionC", @@ -527,13 +551,21 @@ "BooleanC", "; serviceEnvironmentFilterEnabled: ", "BooleanC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { customDashboardId?: string | undefined; } | undefined; body: { dashboardSavedObjectId: string; kuery: string | undefined; serviceNameFilterEnabled: boolean; serviceEnvironmentFilterEnabled: boolean; }; }; }) => Promise<", + ", ", "SavedApmCustomDashboard", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/profiling/hosts/functions\": { endpoint: \"GET /internal/apm/services/{serviceName}/profiling/hosts/functions\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/profiling/hosts/functions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/profiling/hosts/functions\", ", "TypeC", "<{ path: ", "TypeC", @@ -653,51 +685,9 @@ "TypeC", "<{ kuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" - }, - "; } & { startIndex: number; endIndex: number; } & { kuery: string; }; }; }) => Promise<{ functions: ", + ", { functions: ", { "pluginId": "@kbn/profiling-utils", "scope": "common", @@ -705,9 +695,17 @@ "section": "def-common.TopNFunctions", "text": "TopNFunctions" }, - "; hostNames: string[]; } | undefined>; } & ", + "; hostNames: string[]; } | undefined, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/profiling/hosts/flamegraph\": { endpoint: \"GET /internal/apm/services/{serviceName}/profiling/hosts/flamegraph\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/profiling/hosts/flamegraph\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/profiling/hosts/flamegraph\", ", "TypeC", "<{ path: ", "TypeC", @@ -821,51 +819,9 @@ "TypeC", "<{ kuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" - }, - "; } & { kuery: string; }; }; }) => Promise<{ flamegraph: ", + ", { flamegraph: ", { "pluginId": "@kbn/profiling-utils", "scope": "common", @@ -873,9 +829,17 @@ "section": "def-common.BaseFlameGraph", "text": "BaseFlameGraph" }, - "; hostNames: string[]; } | undefined>; } & ", + "; hostNames: string[]; } | undefined, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/profiling/functions\": { endpoint: \"GET /internal/apm/services/{serviceName}/profiling/functions\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/profiling/functions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/profiling/functions\", ", "TypeC", "<{ path: ", "TypeC", @@ -923,19 +887,9 @@ "TypeC", "<{ kuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { transactionName?: string | undefined; } & { start: number; end: number; startIndex: number; endIndex: number; transactionType: string; } & { kuery: string; }; }; }) => Promise<", + ", ", { "pluginId": "@kbn/profiling-utils", "scope": "common", @@ -943,13 +897,29 @@ "section": "def-common.TopNFunctions", "text": "TopNFunctions" }, - " | undefined>; } & ", + " | undefined, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/profiling/status\": { endpoint: \"GET /internal/apm/profiling/status\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/profiling/status\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/profiling/status\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ initialized: boolean; }>; } & ", + ", { initialized: boolean; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/profiling/flamegraph\": { endpoint: \"GET /internal/apm/services/{serviceName}/profiling/flamegraph\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/profiling/flamegraph\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/profiling/flamegraph\", ", "TypeC", "<{ path: ", "TypeC", @@ -993,19 +963,9 @@ "Type", "; transactionType: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { transactionName?: string | undefined; } & { start: number; end: number; transactionType: string; }; }; }) => Promise<", + ", ", { "pluginId": "@kbn/profiling-utils", "scope": "common", @@ -1013,9 +973,17 @@ "section": "def-common.BaseFlameGraph", "text": "BaseFlameGraph" }, - " | undefined>; } & ", + " | undefined, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/assistant/get_downstream_dependencies\": { endpoint: \"GET /internal/apm/assistant/get_downstream_dependencies\"; params?: ", + ">; \"GET /internal/apm/assistant/get_downstream_dependencies\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/assistant/get_downstream_dependencies\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -1031,13 +999,21 @@ "PartialC", "<{ serviceEnvironment: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceName: string; start: string; end: string; } & { serviceEnvironment?: string | undefined; }; }; }) => Promise<{ content: ", + ", { content: ", "APMDownstreamDependency", - "[]; }>; } & ", + "[]; }, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/assistant/get_apm_timeseries\": { endpoint: \"POST /internal/apm/assistant/get_apm_timeseries\"; params?: ", + ">; \"POST /internal/apm/assistant/get_apm_timeseries\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/assistant/get_apm_timeseries\", ", "TypeC", "<{ body: ", "TypeC", @@ -1141,31 +1117,23 @@ "StringC", "; end: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { stats: ({ 'service.name': string; title: string; timeseries: ({ name: ", - "ApmTimeseriesType", - ".transactionThroughput | ", - "ApmTimeseriesType", - ".transactionFailureRate; } & { 'transaction.type'?: string | undefined; 'transaction.name'?: string | undefined; }) | ({ name: ", - "ApmTimeseriesType", - ".exitSpanThroughput | ", - "ApmTimeseriesType", - ".exitSpanLatency | ", - "ApmTimeseriesType", - ".exitSpanFailureRate; } & { 'span.destination.service.resource'?: string | undefined; }) | ({ name: ", - "ApmTimeseriesType", - ".transactionLatency; function: ", - "LatencyAggregationType", - "; } & { 'transaction.type'?: string | undefined; 'transaction.name'?: string | undefined; }) | { name: ", - "ApmTimeseriesType", - ".errorEventRate; }; } & { filter?: string | undefined; offset?: string | undefined; 'service.environment'?: string | undefined; })[]; start: string; end: string; }; }; }) => Promise<{ content: Omit<", + ", { content: Omit<", "ApmTimeseries", ", \"data\">[]; data: ", "ApmTimeseries", - "[]; }>; } & ", + "[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/diagnostics\": { endpoint: \"GET /internal/apm/diagnostics\"; params?: ", + ">; \"GET /internal/apm/diagnostics\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/diagnostics\", ", "PartialC", "<{ query: ", "PartialC", @@ -1175,9 +1143,9 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params?: { query?: { kuery?: string | undefined; start?: number | undefined; end?: number | undefined; } | undefined; } | undefined; }) => Promise<{ esResponses: { existingIndexTemplates: ", + ", { esResponses: { existingIndexTemplates: ", "IndicesGetIndexTemplateIndexTemplateItem", "[]; fieldCaps?: ", "FieldCapsResponse", @@ -1195,9 +1163,17 @@ "IndiciesItem", "[] | undefined; dataStreams: ", "IndicesDataStream", - "[]; nonDataStreamIndices: string[]; indexTemplatesByIndexPattern: { indexPattern: string; indexTemplates: { priority: number | undefined; isNonStandard: boolean; templateIndexPatterns: string[]; templateName: string; }[]; }[]; params: { start: number; end: number; kuery?: string | undefined; }; }>; } & ", + "[]; nonDataStreamIndices: string[]; indexTemplatesByIndexPattern: { indexPattern: string; indexTemplates: { priority: number | undefined; isNonStandard: boolean; templateIndexPatterns: string[]; templateName: string; }[]; }[]; params: { start: number; end: number; kuery?: string | undefined; }; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/detailed_statistics\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/detailed_statistics\"; params?: ", + ">; \"GET /internal/apm/mobile-services/{serviceName}/detailed_statistics\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/mobile-services/{serviceName}/detailed_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -1245,23 +1221,21 @@ "StringC", "; fieldValues: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/main_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { field: string; fieldValues: string[]; }; }; }) => Promise<", - "MobileDetailedStatisticsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/main_statistics\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/main_statistics\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/main_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -1303,23 +1277,21 @@ "TypeC", "<{ field: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/terms\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { field: string; }; }; }) => Promise<", - "MobileMainStatisticsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/terms\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/terms\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/terms\", ", "TypeC", "<{ path: ", "TypeC", @@ -1363,23 +1335,21 @@ "Type", "; fieldName: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/location/stats\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { size: number; fieldName: string; }; }; }) => Promise<{ terms: ", - "MobileTermsByFieldResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/location/stats\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/location/stats\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/location/stats\", ", "TypeC", "<{ path: ", "TypeC", @@ -1425,23 +1395,21 @@ "PartialC", "<{ locationField: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/stats\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { offset?: string | undefined; } & { locationField?: string | undefined; }; }; }) => Promise<", - "MobileLocationStats", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/stats\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/stats\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/stats\", ", "TypeC", "<{ path: ", "TypeC", @@ -1487,23 +1455,21 @@ "PartialC", "<{ transactionType: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { offset?: string | undefined; } & { transactionType?: string | undefined; }; }; }) => Promise<", - "MobilePeriodStats", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/http_requests\", ", "TypeC", "<{ path: ", "TypeC", @@ -1551,23 +1517,21 @@ "StringC", "; transactionName: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { offset?: string | undefined; } & { transactionType?: string | undefined; transactionName?: string | undefined; }; }; }) => Promise<", - "HttpRequestsTimeseries", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/transactions/charts/sessions\", ", "TypeC", "<{ path: ", "TypeC", @@ -1615,23 +1579,21 @@ "StringC", "; transactionName: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/most_used_charts\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { offset?: string | undefined; } & { transactionType?: string | undefined; transactionName?: string | undefined; }; }; }) => Promise<", - "SessionsTimeseries", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/most_used_charts\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/most_used_charts\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/most_used_charts\", ", "TypeC", "<{ path: ", "TypeC", @@ -1673,23 +1635,21 @@ "PartialC", "<{ transactionType: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/mobile/filters\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { transactionType?: string | undefined; }; }; }) => Promise<{ mostUsedCharts: { key: ", - "MobilePropertyType", - "; options: { key: string | number; docCount: number; }[]; }[]; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/mobile/filters\": { endpoint: \"GET /internal/apm/services/{serviceName}/mobile/filters\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/mobile/filters\", ", "TypeC", "<{ path: ", "TypeC", @@ -1731,23 +1691,21 @@ "PartialC", "<{ transactionType: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/crashes/distribution\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { transactionType?: string | undefined; }; }; }) => Promise<{ mobileFilters: ", - "MobileFiltersResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/crashes/distribution\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/crashes/distribution\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/crashes/distribution\", ", "TypeC", "<{ path: ", "TypeC", @@ -1793,23 +1751,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { groupId?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/crashes/groups/main_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<", - "CrashDistributionResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/crashes/groups/main_statistics\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/crashes/groups/main_statistics\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/crashes/groups/main_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -1857,23 +1813,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { sortField?: string | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"POST /internal/apm/mobile-services/{serviceName}/crashes/groups/detailed_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ errorGroups: ", - "MobileCrashGroupMainStatisticsResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"POST /internal/apm/mobile-services/{serviceName}/crashes/groups/detailed_statistics\": { endpoint: \"POST /internal/apm/mobile-services/{serviceName}/crashes/groups/detailed_statistics\"; params?: ", + "<\"POST /internal/apm/mobile-services/{serviceName}/crashes/groups/detailed_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -1923,23 +1877,21 @@ "TypeC", "<{ groupIds: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/error_terms\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { numBuckets: number; }; body: { groupIds: string[]; }; }; }) => Promise<", - "MobileCrashesGroupPeriodsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/error_terms\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/error_terms\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/error_terms\", ", "TypeC", "<{ path: ", "TypeC", @@ -1983,23 +1935,21 @@ "Type", "; fieldName: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"POST /internal/apm/mobile-services/{serviceName}/errors/groups/detailed_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { size: number; fieldName: string; }; }; }) => Promise<{ terms: ", - "MobileErrorTermsByFieldResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"POST /internal/apm/mobile-services/{serviceName}/errors/groups/detailed_statistics\": { endpoint: \"POST /internal/apm/mobile-services/{serviceName}/errors/groups/detailed_statistics\"; params?: ", + "<\"POST /internal/apm/mobile-services/{serviceName}/errors/groups/detailed_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -2049,23 +1999,21 @@ "TypeC", "<{ groupIds: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/errors/groups/main_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { numBuckets: number; }; body: { groupIds: string[]; }; }; }) => Promise<", - "MobileErrorGroupPeriodsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/errors/groups/main_statistics\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/errors/groups/main_statistics\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/errors/groups/main_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -2113,23 +2061,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { sortField?: string | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/mobile-services/{serviceName}/error/http_error_rate\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ errorGroups: ", - "MobileErrorGroupMainStatisticsResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/mobile-services/{serviceName}/error/http_error_rate\": { endpoint: \"GET /internal/apm/mobile-services/{serviceName}/error/http_error_rate\"; params?: ", + "<\"GET /internal/apm/mobile-services/{serviceName}/error/http_error_rate\", ", "TypeC", "<{ path: ", "TypeC", @@ -2171,23 +2117,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/agent_instances\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<", - "MobileHttpErrorsTimeseries", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/agent_instances\": { endpoint: \"GET /internal/apm/services/{serviceName}/agent_instances\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/agent_instances\", ", "TypeC", "<{ path: ", "TypeC", @@ -2229,29 +2173,35 @@ "TypeC", "<{ probability: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/get_latest_agent_versions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { probability: number; }; }; }) => Promise<{ items: ", - "AgentExplorerAgentInstancesResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/get_latest_agent_versions\": { endpoint: \"GET /internal/apm/get_latest_agent_versions\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/apm/get_latest_agent_versions\", undefined, ", "APMRouteHandlerResources", - ") => Promise<", + ", ", "AgentLatestVersionsResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/get_agents_per_service\": { endpoint: \"GET /internal/apm/get_agents_per_service\"; params?: ", + ">; \"GET /internal/apm/get_agents_per_service\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/get_agents_per_service\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -2295,27 +2245,33 @@ "StringC", "; agentLanguage: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/settings/labs\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { probability: number; } & { serviceName?: string | undefined; agentLanguage?: string | undefined; }; }; }) => Promise<", - "AgentExplorerAgentsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/settings/labs\": { endpoint: \"GET /internal/apm/settings/labs\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/apm/settings/labs\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ labsItems: string[]; }>; } & ", + ", { labsItems: string[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/time_range_metadata\": { endpoint: \"GET /internal/apm/time_range_metadata\"; params?: ", + ">; \"GET /internal/apm/time_range_metadata\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/time_range_metadata\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -2337,9 +2293,9 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { useSpanName: boolean; enableServiceTransactionMetrics: boolean; enableContinuousRollups: boolean; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", + ", ", { "pluginId": "apmDataAccess", "scope": "common", @@ -2347,13 +2303,33 @@ "section": "def-common.TimeRangeMetadata", "text": "TimeRangeMetadata" }, - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/debug-telemetry\": { endpoint: \"GET /internal/apm/debug-telemetry\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/debug-telemetry\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/debug-telemetry\", undefined, ", "APMRouteHandlerResources", - ") => Promise; } & ", + ", ", + "_DeepPartialObject", + "<", + "APMUsage", + ">, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/infrastructure_attributes\": { endpoint: \"GET /internal/apm/services/{serviceName}/infrastructure_attributes\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/infrastructure_attributes\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/infrastructure_attributes\", ", "TypeC", "<{ path: ", "TypeC", @@ -2391,21 +2367,19 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">]>; }>]>; }> | undefined; handler: ({}: ", + ">]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }; }; }) => Promise<{ containerIds: string[]; hostNames: string[]; podNames: string[]; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\": { endpoint: \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\"; params?: ", + "<\"GET /internal/apm/traces/{traceId}/span_links/{spanId}/children\", ", "TypeC", "<{ path: ", "TypeC", @@ -2425,13 +2399,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { traceId: string; spanId: string; }; query: { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ spanLinksDetails: ", + ", { spanLinksDetails: ", "SpanLinkDetails", - "[]; }>; } & ", + "[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\": { endpoint: \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\"; params?: ", + ">; \"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/traces/{traceId}/span_links/{spanId}/parents\", ", "TypeC", "<{ path: ", "TypeC", @@ -2495,21 +2477,21 @@ "section": "def-common.ProcessorEvent", "text": "ProcessorEvent" }, - ".span>]>; }>]>; }> | undefined; handler: ({}: ", + ".span>]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { traceId: string; spanId: string; }; query: { kuery: string; } & { start: number; end: number; } & { processorEvent: ", + ", { spanLinksDetails: ", + "SpanLinkDetails", + "[]; }, ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/storage_explorer/get_services\": ", { - "pluginId": "observability", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityPluginApi", - "section": "def-common.ProcessorEvent", - "text": "ProcessorEvent" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; }; }; }) => Promise<{ spanLinksDetails: ", - "SpanLinkDetails", - "[]; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/storage_explorer/get_services\": { endpoint: \"GET /internal/apm/storage_explorer/get_services\"; params?: ", + "<\"GET /internal/apm/storage_explorer/get_services\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -2567,27 +2549,31 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { indexLifecyclePhase: ", - "IndexLifecyclePhaseSelectOption", - "; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/storage_explorer/is_cross_cluster_search\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ services: { serviceName: string; }[]; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/storage_explorer/is_cross_cluster_search\": { endpoint: \"GET /internal/apm/storage_explorer/is_cross_cluster_search\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/apm/storage_explorer/is_cross_cluster_search\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ isCrossClusterSearch: boolean; }>; } & ", + ", { isCrossClusterSearch: boolean; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/storage_explorer_summary_stats\": { endpoint: \"GET /internal/apm/storage_explorer_summary_stats\"; params?: ", + ">; \"GET /internal/apm/storage_explorer_summary_stats\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/storage_explorer_summary_stats\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -2649,29 +2635,33 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { indexLifecyclePhase: ", - "IndexLifecyclePhaseSelectOption", - "; } & { probability: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/storage_explorer/privileges\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "StorageExplorerSummaryStatisticsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/storage_explorer/privileges\": { endpoint: \"GET /internal/apm/storage_explorer/privileges\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/apm/storage_explorer/privileges\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ hasPrivileges: boolean; }>; } & ", + ", { hasPrivileges: boolean; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/storage_chart\": { endpoint: \"GET /internal/apm/storage_chart\"; params?: ", + ">; \"GET /internal/apm/storage_chart\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/storage_chart\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -2733,25 +2723,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { indexLifecyclePhase: ", - "IndexLifecyclePhaseSelectOption", - "; } & { probability: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/storage_details\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ storageTimeSeries: ", - "SizeTimeseriesResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/storage_details\": { endpoint: \"GET /internal/apm/services/{serviceName}/storage_details\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/storage_details\", ", "TypeC", "<{ path: ", "TypeC", @@ -2817,25 +2803,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { indexLifecyclePhase: ", - "IndexLifecyclePhaseSelectOption", - "; } & { probability: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/storage_explorer\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "StorageDetailsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/storage_explorer\": { endpoint: \"GET /internal/apm/storage_explorer\"; params?: ", + "<\"GET /internal/apm/storage_explorer\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -2897,25 +2879,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { indexLifecyclePhase: ", - "IndexLifecyclePhaseSelectOption", - "; } & { probability: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"POST /api/apm/agent_keys 2023-10-31\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ serviceStatistics: ", - "StorageExplorerServiceStatisticsResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"POST /api/apm/agent_keys 2023-10-31\": { endpoint: \"POST /api/apm/agent_keys 2023-10-31\"; params?: ", + "<\"POST /api/apm/agent_keys 2023-10-31\", ", "TypeC", "<{ body: ", "TypeC", @@ -2933,39 +2911,69 @@ "LiteralC", "<", "PrivilegeType", - ".AGENT_CONFIG>]>>; }>; }> | undefined; handler: ({}: ", + ".AGENT_CONFIG>]>>; }>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { name: string; privileges: ", - "PrivilegeType", - "[]; }; }; }) => Promise<", + ", ", "CreateAgentKeyResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"POST /internal/apm/api_key/invalidate\": { endpoint: \"POST /internal/apm/api_key/invalidate\"; params?: ", + ">; \"POST /internal/apm/api_key/invalidate\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/api_key/invalidate\", ", "TypeC", "<{ body: ", "TypeC", "<{ id: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { id: string; }; }; }) => Promise<", + ", ", "InvalidateAgentKeyResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/agent_keys/privileges\": { endpoint: \"GET /internal/apm/agent_keys/privileges\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/agent_keys/privileges\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/agent_keys/privileges\", undefined, ", "APMRouteHandlerResources", - ") => Promise<", + ", ", "AgentKeysPrivilegesResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/agent_keys\": { endpoint: \"GET /internal/apm/agent_keys\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/agent_keys\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/agent_keys\", undefined, ", "APMRouteHandlerResources", - ") => Promise<", + ", ", "AgentKeysResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/event_metadata/{processorEvent}/{id}\": { endpoint: \"GET /internal/apm/event_metadata/{processorEvent}/{id}\"; params?: ", + ">; \"GET /internal/apm/event_metadata/{processorEvent}/{id}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/event_metadata/{processorEvent}/{id}\", ", "TypeC", "<{ path: ", "TypeC", @@ -3019,27 +3027,43 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { processorEvent: ", + ", { metadata: Partial>; }, ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/has_entities\": ", { - "pluginId": "observability", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityPluginApi", - "section": "def-common.ProcessorEvent", - "text": "ProcessorEvent" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; id: string; }; query: { start: number; end: number; }; }; }) => Promise<{ metadata: Partial>; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/has_entities\": { endpoint: \"GET /internal/apm/has_entities\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/apm/has_entities\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ hasData: boolean; }>; } & ", + ", { hasData: boolean; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/has_data\": { endpoint: \"GET /internal/apm/has_data\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/has_data\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/has_data\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ hasData: boolean; }>; } & ", + ", { hasData: boolean; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/fallback_to_transactions\": { endpoint: \"GET /internal/apm/fallback_to_transactions\"; params?: ", + ">; \"GET /internal/apm/fallback_to_transactions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/fallback_to_transactions\", ", "PartialC", "<{ query: ", "IntersectionC", @@ -3053,11 +3077,19 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params?: { query?: ({ kuery: string; } & { start?: number | undefined; end?: number | undefined; }) | undefined; } | undefined; }) => Promise<{ fallbackToTransactions: boolean; }>; } & ", + ", { fallbackToTransactions: boolean; }, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/correlations/p_values/transactions\": { endpoint: \"POST /internal/apm/correlations/p_values/transactions\"; params?: ", + ">; \"POST /internal/apm/correlations/p_values/transactions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/p_values/transactions\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -3109,23 +3141,21 @@ "ArrayC", "<", "StringC", - ">; }>]>; }> | undefined; handler: ({}: ", + ">; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { serviceName?: string | undefined; transactionName?: string | undefined; transactionType?: string | undefined; durationMin?: number | undefined; durationMax?: number | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"POST /internal/apm/correlations/significant_correlations/transactions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { fieldCandidates: string[]; }; }; }) => Promise<", - "PValuesResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"POST /internal/apm/correlations/significant_correlations/transactions\": { endpoint: \"POST /internal/apm/correlations/significant_correlations/transactions\"; params?: ", + "<\"POST /internal/apm/correlations/significant_correlations/transactions\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -3185,23 +3215,21 @@ "StringC", ", ", "Type", - "]>; }>>; }>]>; }> | undefined; handler: ({}: ", + "]>; }>>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { serviceName?: string | undefined; transactionName?: string | undefined; transactionType?: string | undefined; durationMin?: number | undefined; durationMax?: number | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"POST /internal/apm/correlations/field_value_pairs/transactions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { fieldValuePairs: { fieldName: string; fieldValue: string | number; }[]; }; }; }) => Promise<", - "SignificantCorrelationsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"POST /internal/apm/correlations/field_value_pairs/transactions\": { endpoint: \"POST /internal/apm/correlations/field_value_pairs/transactions\"; params?: ", + "<\"POST /internal/apm/correlations/field_value_pairs/transactions\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -3249,23 +3277,21 @@ "ArrayC", "<", "StringC", - ">; }>]>; }> | undefined; handler: ({}: ", + ">; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { serviceName?: string | undefined; transactionName?: string | undefined; transactionType?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/correlations/field_value_stats/transactions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { fieldCandidates: string[]; }; }; }) => Promise<", - "FieldValuePairsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/correlations/field_value_stats/transactions\": { endpoint: \"GET /internal/apm/correlations/field_value_stats/transactions\"; params?: ", + "<\"GET /internal/apm/correlations/field_value_stats/transactions\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3319,23 +3345,21 @@ "StringC", ", ", "NumberC", - "]>; }>]>; }> | undefined; handler: ({}: ", + "]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceName?: string | undefined; transactionName?: string | undefined; transactionType?: string | undefined; samplerShardSize?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/correlations/field_candidates/transactions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { fieldName: string; fieldValue: string | number; }; }; }) => Promise<", - "TopValuesStats", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/correlations/field_candidates/transactions\": { endpoint: \"GET /internal/apm/correlations/field_candidates/transactions\"; params?: ", + "<\"GET /internal/apm/correlations/field_candidates/transactions\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3377,23 +3401,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceName?: string | undefined; transactionName?: string | undefined; transactionType?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/dependencies/operations/spans\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "DurationFieldCandidatesResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/operations/spans\": { endpoint: \"GET /internal/apm/dependencies/operations/spans\"; params?: ", + "<\"GET /internal/apm/dependencies/operations/spans\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3439,23 +3461,21 @@ "Type", "; sampleRangeTo: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/dependencies/charts/distribution\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { dependencyName: string; spanName: string; } & { sampleRangeFrom?: number | undefined; sampleRangeTo?: number | undefined; }; }; }) => Promise<{ spans: ", - "DependencySpan", - "[]; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/charts/distribution\": { endpoint: \"GET /internal/apm/dependencies/charts/distribution\"; params?: ", + "<\"GET /internal/apm/dependencies/charts/distribution\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3497,23 +3517,21 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">]>; }>]>; }> | undefined; handler: ({}: ", + ">]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { dependencyName: string; spanName: string; percentileThreshold: number; } & { start: number; end: number; } & { kuery: string; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/dependencies/operations\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }; }; }) => Promise<", - "DependencyLatencyDistributionResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/operations\": { endpoint: \"GET /internal/apm/dependencies/operations\"; params?: ", + "<\"GET /internal/apm/dependencies/operations\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3557,23 +3575,21 @@ "StringC", "; searchServiceDestinationMetrics: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/dependencies/charts/error_rate\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { offset?: string | undefined; } & { dependencyName: string; searchServiceDestinationMetrics: boolean; }; }; }) => Promise<{ operations: ", - "DependencyOperation", - "[]; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/charts/error_rate\": { endpoint: \"GET /internal/apm/dependencies/charts/error_rate\"; params?: ", + "<\"GET /internal/apm/dependencies/charts/error_rate\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3619,21 +3635,19 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { dependencyName: string; spanName: string; searchServiceDestinationMetrics: boolean; } & { start: number; end: number; } & { kuery: string; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/dependencies/charts/throughput\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { offset?: string | undefined; }; }; }) => Promise<{ currentTimeseries: { x: number; y: number; }[]; comparisonTimeseries: { x: number; y: number; }[] | null; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/charts/throughput\": { endpoint: \"GET /internal/apm/dependencies/charts/throughput\"; params?: ", + "<\"GET /internal/apm/dependencies/charts/throughput\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3679,23 +3693,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { dependencyName: string; spanName: string; searchServiceDestinationMetrics: boolean; } & { start: number; end: number; } & { kuery: string; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/dependencies/charts/latency\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { offset?: string | undefined; }; }; }) => Promise<", - "ThroughputChartsForDependencyResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/charts/latency\": { endpoint: \"GET /internal/apm/dependencies/charts/latency\"; params?: ", + "<\"GET /internal/apm/dependencies/charts/latency\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3741,23 +3753,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { dependencyName: string; spanName: string; searchServiceDestinationMetrics: boolean; } & { start: number; end: number; } & { kuery: string; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/dependencies/metadata\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { offset?: string | undefined; }; }; }) => Promise<", - "LatencyChartsDependencyResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/metadata\": { endpoint: \"GET /internal/apm/dependencies/metadata\"; params?: ", + "<\"GET /internal/apm/dependencies/metadata\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -3771,13 +3781,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { dependencyName: string; } & { start: number; end: number; }; }; }) => Promise<{ metadata: ", + ", { metadata: ", "MetadataForDependencyResponse", - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/upstream_services\": { endpoint: \"GET /internal/apm/dependencies/upstream_services\"; params?: ", + ">; \"GET /internal/apm/dependencies/upstream_services\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/dependencies/upstream_services\", ", "IntersectionC", "<[", "TypeC", @@ -3829,23 +3847,21 @@ "TypeC", "<{ kuery: ", "StringC", - "; }>]>; }>]> | undefined; handler: ({}: ", + "; }>]>; }>]>, ", "APMRouteHandlerResources", - " & { params: { query: { dependencyName: string; } & { start: number; end: number; } & { numBuckets: number; }; } & { query?: ({ environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/dependencies/top_dependencies\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { offset?: string | undefined; } & { kuery: string; }) | undefined; }; }) => Promise<", - "UpstreamServicesForDependencyResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/dependencies/top_dependencies\": { endpoint: \"GET /internal/apm/dependencies/top_dependencies\"; params?: ", + "<\"GET /internal/apm/dependencies/top_dependencies\", ", "IntersectionC", "<[", "TypeC", @@ -3891,29 +3907,35 @@ "PartialC", "<{ offset: ", "StringC", - "; }>; }>]> | undefined; handler: ({}: ", + "; }>; }>]>, ", "APMRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/fleet/java_agent_versions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { numBuckets: number; }; } & { query?: { offset?: string | undefined; } | undefined; }; }) => Promise<", - "TopDependenciesResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/fleet/java_agent_versions\": { endpoint: \"GET /internal/apm/fleet/java_agent_versions\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/apm/fleet/java_agent_versions\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ versions: string[] | undefined; }>; } & ", + ", { versions: string[] | undefined; }, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/fleet/cloud_apm_package_policy\": { endpoint: \"POST /internal/apm/fleet/cloud_apm_package_policy\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/apm/fleet/cloud_apm_package_policy\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/fleet/cloud_apm_package_policy\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ cloudApmPackagePolicy: ", + ", { cloudApmPackagePolicy: ", { "pluginId": "fleet", "scope": "common", @@ -3921,21 +3943,45 @@ "section": "def-common.PackagePolicy", "text": "PackagePolicy" }, - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/fleet/migration_check\": { endpoint: \"GET /internal/apm/fleet/migration_check\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/fleet/migration_check\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/fleet/migration_check\", undefined, ", "APMRouteHandlerResources", - ") => Promise<", + ", ", "RunMigrationCheckResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/fleet/apm_server_schema/unsupported\": { endpoint: \"GET /internal/apm/fleet/apm_server_schema/unsupported\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/fleet/apm_server_schema/unsupported\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/fleet/apm_server_schema/unsupported\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ unsupported: ", + ", { unsupported: ", "UnsupportedApmServerSchema", - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"POST /api/apm/fleet/apm_server_schema 2023-10-31\": { endpoint: \"POST /api/apm/fleet/apm_server_schema 2023-10-31\"; params?: ", + ">; \"POST /api/apm/fleet/apm_server_schema 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/apm/fleet/apm_server_schema 2023-10-31\", ", "TypeC", "<{ body: ", "TypeC", @@ -3945,35 +3991,75 @@ "StringC", ", ", "UnknownC", - ">; }>; }> | undefined; handler: ({}: ", + ">; }>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { schema: { [x: string]: unknown; }; }; }; }) => Promise; } & ", + ", void, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/fleet/agents\": { endpoint: \"GET /internal/apm/fleet/agents\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/fleet/agents\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/fleet/agents\", undefined, ", "APMRouteHandlerResources", - ") => Promise<", + ", ", "FleetAgentResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/fleet/has_apm_policies\": { endpoint: \"GET /internal/apm/fleet/has_apm_policies\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/fleet/has_apm_policies\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/fleet/has_apm_policies\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ hasApmPolicies: boolean; }>; } & ", + ", { hasApmPolicies: boolean; }, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\": { endpoint: \"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/sourcemaps/migrate_fleet_artifacts\", undefined, ", "APMRouteHandlerResources", - ") => Promise; } & ", + ", void, ", "APMRouteCreateOptions", - "; \"DELETE /api/apm/sourcemaps/{id} 2023-10-31\": { endpoint: \"DELETE /api/apm/sourcemaps/{id} 2023-10-31\"; params?: ", + ">; \"DELETE /api/apm/sourcemaps/{id} 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /api/apm/sourcemaps/{id} 2023-10-31\", ", "TypeC", "<{ path: ", "TypeC", "<{ id: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { id: string; }; }; }) => Promise; } & ", + ", void, ", "APMRouteCreateOptions", - "; \"POST /api/apm/sourcemaps 2023-10-31\": { endpoint: \"POST /api/apm/sourcemaps 2023-10-31\"; params?: ", + ">; \"POST /api/apm/sourcemaps 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/apm/sourcemaps 2023-10-31\", ", "TypeC", "<{ body: ", "TypeC", @@ -3985,9 +4071,9 @@ "StringC", "; sourcemap: ", "Type", - "<{ version: number; sources: string[]; mappings: string; } & { names?: string[] | undefined; file?: string | undefined; sourceRoot?: string | undefined; sourcesContent?: (string | null)[] | undefined; }, string | Buffer, unknown>; }>; }> | undefined; handler: ({}: ", + "<{ version: number; sources: string[]; mappings: string; } & { names?: string[] | undefined; file?: string | undefined; sourceRoot?: string | undefined; sourcesContent?: (string | null)[] | undefined; }, string | Buffer, unknown>; }>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { service_name: string; service_version: string; bundle_filepath: string; sourcemap: { version: number; sources: string[]; mappings: string; } & { names?: string[] | undefined; file?: string | undefined; sourceRoot?: string | undefined; sourcesContent?: (string | null)[] | undefined; }; }; }; }) => Promise<", + ", ", { "pluginId": "fleet", "scope": "server", @@ -3995,9 +4081,17 @@ "section": "def-server.Artifact", "text": "Artifact" }, - " | undefined>; } & ", + " | undefined, ", "APMRouteCreateOptions", - "; \"GET /api/apm/sourcemaps 2023-10-31\": { endpoint: \"GET /api/apm/sourcemaps 2023-10-31\"; params?: ", + ">; \"GET /api/apm/sourcemaps 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/apm/sourcemaps 2023-10-31\", ", "PartialC", "<{ query: ", "PartialC", @@ -4005,23 +4099,39 @@ "Type", "; perPage: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params?: { query?: { page?: number | undefined; perPage?: number | undefined; } | undefined; } | undefined; }) => Promise<", + ", ", "ListSourceMapArtifactsResponse", - " | undefined>; } & ", + " | undefined, ", "APMRouteCreateOptions", - "; \"DELETE /internal/apm/settings/custom_links/{id}\": { endpoint: \"DELETE /internal/apm/settings/custom_links/{id}\"; params?: ", + ">; \"DELETE /internal/apm/settings/custom_links/{id}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/apm/settings/custom_links/{id}\", ", "TypeC", "<{ path: ", "TypeC", "<{ id: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { id: string; }; }; }) => Promise<{ result: string; }>; } & ", + ", { result: string; }, ", "APMRouteCreateOptions", - "; \"PUT /internal/apm/settings/custom_links/{id}\": { endpoint: \"PUT /internal/apm/settings/custom_links/{id}\"; params?: ", + ">; \"PUT /internal/apm/settings/custom_links/{id}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/apm/settings/custom_links/{id}\", ", "TypeC", "<{ path: ", "TypeC", @@ -4059,11 +4169,19 @@ "StringC", "; }>]>; value: ", "StringC", - "; }>>; }>]>; }> | undefined; handler: ({}: ", + "; }>>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { id: string; }; body: { label: string; url: string; } & { id?: string | undefined; filters?: { key: \"\" | \"service.environment\" | \"service.name\" | \"transaction.name\" | \"transaction.type\"; value: string; }[] | undefined; }; }; }) => Promise; } & ", + ", void, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/settings/custom_links\": { endpoint: \"POST /internal/apm/settings/custom_links\"; params?: ", + ">; \"POST /internal/apm/settings/custom_links\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/settings/custom_links\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -4097,11 +4215,19 @@ "StringC", "; }>]>; value: ", "StringC", - "; }>>; }>]>; }> | undefined; handler: ({}: ", + "; }>>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { label: string; url: string; } & { id?: string | undefined; filters?: { key: \"\" | \"service.environment\" | \"service.name\" | \"transaction.name\" | \"transaction.type\"; value: string; }[] | undefined; }; }; }) => Promise; } & ", + ", void, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/settings/custom_links\": { endpoint: \"GET /internal/apm/settings/custom_links\"; params?: ", + ">; \"GET /internal/apm/settings/custom_links\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/settings/custom_links\", ", "PartialC", "<{ query: ", "PartialC", @@ -4113,13 +4239,21 @@ "StringC", "; 'transaction.type': ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params?: { query?: { 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; } | undefined; } | undefined; }) => Promise<{ customLinks: ", + ", { customLinks: ", "CustomLink", - "[]; }>; } & ", + "[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/settings/custom_links/transaction\": { endpoint: \"GET /internal/apm/settings/custom_links/transaction\"; params?: ", + ">; \"GET /internal/apm/settings/custom_links/transaction\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/settings/custom_links/transaction\", ", "PartialC", "<{ query: ", "PartialC", @@ -4131,9 +4265,9 @@ "StringC", "; 'transaction.type': ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params?: { query?: { 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; } | undefined; } | undefined; }) => Promise<", + ", ", { "pluginId": "@kbn/apm-types", "scope": "common", @@ -4141,15 +4275,23 @@ "section": "def-common.Transaction", "text": "Transaction" }, - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"POST /internal/apm/settings/apm-indices/save\": { endpoint: \"POST /internal/apm/settings/apm-indices/save\"; params?: ", + ">; \"POST /internal/apm/settings/apm-indices/save\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/settings/apm-indices/save\", ", "TypeC", "<{ body: ", "PartialC", - "; }> | undefined; handler: ({}: ", + "; }>, ", "APMRouteHandlerResources", - " & { params: { body: { readonly error?: string | undefined; readonly transaction?: string | undefined; readonly span?: string | undefined; readonly metric?: string | undefined; readonly onboarding?: string | undefined; readonly sourcemap?: string | undefined; }; }; }) => Promise<", + ", ", { "pluginId": "@kbn/core-saved-objects-common", "scope": "common", @@ -4157,27 +4299,67 @@ "section": "def-common.SavedObject", "text": "SavedObject" }, - "<{}>>; } & ", + "<{}>, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/settings/apm-indices\": { endpoint: \"GET /internal/apm/settings/apm-indices\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/settings/apm-indices\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/settings/apm-indices\", undefined, ", "APMRouteHandlerResources", - ") => Promise>; } & ", + ", Readonly<{} & { error: string; transaction: string; span: string; metric: string; onboarding: string; sourcemap: string; }>, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/settings/apm-index-settings\": { endpoint: \"GET /internal/apm/settings/apm-index-settings\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/settings/apm-index-settings\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/settings/apm-index-settings\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ apmIndexSettings: ", + ", { apmIndexSettings: ", "ApmIndexSettingsResponse", - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/settings/anomaly-detection/update_to_v3\": { endpoint: \"POST /internal/apm/settings/anomaly-detection/update_to_v3\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/apm/settings/anomaly-detection/update_to_v3\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/settings/anomaly-detection/update_to_v3\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ update: boolean; }>; } & ", + ", { update: boolean; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/settings/anomaly-detection/environments\": { endpoint: \"GET /internal/apm/settings/anomaly-detection/environments\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/settings/anomaly-detection/environments\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/settings/anomaly-detection/environments\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ environments: string[]; }>; } & ", + ", { environments: string[]; }, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/settings/anomaly-detection/jobs\": { endpoint: \"POST /internal/apm/settings/anomaly-detection/jobs\"; params?: ", + ">; \"POST /internal/apm/settings/anomaly-detection/jobs\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/settings/anomaly-detection/jobs\", ", "TypeC", "<{ body: ", "TypeC", @@ -4201,49 +4383,71 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">]>>; }>; }> | undefined; handler: ({}: ", + ">]>>; }>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { environments: (\"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/settings/anomaly-detection/jobs\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">)[]; }; }; }) => Promise<{ jobCreated: true; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/settings/anomaly-detection/jobs\": { endpoint: \"GET /internal/apm/settings/anomaly-detection/jobs\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/apm/settings/anomaly-detection/jobs\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ jobs: ", + ", { jobs: ", "ApmMlJob", - "[]; hasLegacyJobs: boolean; }>; } & ", + "[]; hasLegacyJobs: boolean; }, ", "APMRouteCreateOptions", - "; \"GET /api/apm/settings/agent-configuration/agent_name 2023-10-31\": { endpoint: \"GET /api/apm/settings/agent-configuration/agent_name 2023-10-31\"; params?: ", + ">; \"GET /api/apm/settings/agent-configuration/agent_name 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/apm/settings/agent-configuration/agent_name 2023-10-31\", ", "TypeC", "<{ query: ", "TypeC", "<{ serviceName: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceName: string; }; }; }) => Promise<{ agentName: string | undefined; }>; } & ", + ", { agentName: string | undefined; }, ", "APMRouteCreateOptions", - "; \"GET /api/apm/settings/agent-configuration/environments 2023-10-31\": { endpoint: \"GET /api/apm/settings/agent-configuration/environments 2023-10-31\"; params?: ", + ">; \"GET /api/apm/settings/agent-configuration/environments 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/apm/settings/agent-configuration/environments 2023-10-31\", ", "PartialC", "<{ query: ", "PartialC", "<{ serviceName: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params?: { query?: { serviceName?: string | undefined; } | undefined; } | undefined; }) => Promise<{ environments: ", + ", { environments: ", "EnvironmentsResponse", - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"POST /api/apm/settings/agent-configuration/search 2023-10-31\": { endpoint: \"POST /api/apm/settings/agent-configuration/search 2023-10-31\"; params?: ", + ">; \"POST /api/apm/settings/agent-configuration/search 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/apm/settings/agent-configuration/search 2023-10-31\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -4261,9 +4465,9 @@ "StringC", "; mark_as_applied_by_agent: ", "BooleanC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { service: { name?: string | undefined; environment?: string | undefined; }; } & { etag?: string | undefined; mark_as_applied_by_agent?: boolean | undefined; }; }; }) => Promise<", + ", ", { "pluginId": "@kbn/es-types", "scope": "common", @@ -4273,9 +4477,17 @@ }, "<", "AgentConfiguration", - ", undefined, undefined> | null>; } & ", + ", undefined, undefined> | null, ", "APMRouteCreateOptions", - "; \"PUT /api/apm/settings/agent-configuration 2023-10-31\": { endpoint: \"PUT /api/apm/settings/agent-configuration 2023-10-31\"; params?: ", + ">; \"PUT /api/apm/settings/agent-configuration 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /api/apm/settings/agent-configuration 2023-10-31\", ", "IntersectionC", "<[", "PartialC", @@ -4311,11 +4523,19 @@ "PartialC", ">]>; }>]>; }>]> | undefined; handler: ({}: ", + ">>]>; }>]>; }>]>, ", "APMRouteHandlerResources", - " & { params: { query?: { overwrite?: boolean | undefined; } | undefined; } & { body: { agent_name?: string | undefined; } & { service: { name?: string | undefined; environment?: string | undefined; }; settings: { [x: string]: string; } & { [x: string]: any; }; }; }; }) => Promise; } & ", + ", void, ", "APMRouteCreateOptions", - "; \"DELETE /api/apm/settings/agent-configuration 2023-10-31\": { endpoint: \"DELETE /api/apm/settings/agent-configuration 2023-10-31\"; params?: ", + ">; \"DELETE /api/apm/settings/agent-configuration 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /api/apm/settings/agent-configuration 2023-10-31\", ", "TypeC", "<{ body: ", "TypeC", @@ -4325,31 +4545,55 @@ "StringC", "; environment: ", "StringC", - "; }>; }>; }> | undefined; handler: ({}: ", + "; }>; }>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { service: { name?: string | undefined; environment?: string | undefined; }; }; }; }) => Promise<{ result: string; }>; } & ", + ", { result: string; }, ", "APMRouteCreateOptions", - "; \"GET /api/apm/settings/agent-configuration/view 2023-10-31\": { endpoint: \"GET /api/apm/settings/agent-configuration/view 2023-10-31\"; params?: ", - "PartialC", - "<{ query: ", + ">; \"GET /api/apm/settings/agent-configuration/view 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/apm/settings/agent-configuration/view 2023-10-31\", ", + "PartialC", + "<{ query: ", "PartialC", "<{ name: ", "StringC", "; environment: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params?: { query?: { name?: string | undefined; environment?: string | undefined; } | undefined; } | undefined; }) => Promise<", + ", ", "AgentConfiguration", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /api/apm/settings/agent-configuration 2023-10-31\": { endpoint: \"GET /api/apm/settings/agent-configuration 2023-10-31\"; params?: undefined; handler: ({}: ", + ">; \"GET /api/apm/settings/agent-configuration 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/apm/settings/agent-configuration 2023-10-31\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ configurations: ", + ", { configurations: ", "AgentConfiguration", - "[]; }>; } & ", + "[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/rule_types/transaction_duration/chart_preview\": { endpoint: \"GET /internal/apm/rule_types/transaction_duration/chart_preview\"; params?: ", + ">; \"GET /internal/apm/rule_types/transaction_duration/chart_preview\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/rule_types/transaction_duration/chart_preview\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -4415,25 +4659,21 @@ "StringC", ">; searchConfiguration: ", "Type", - "<{ query: { query: string | { [x: string]: any; }; language: string; }; }, string, unknown>; }>]>; }> | undefined; handler: ({}: ", + "<{ query: { query: string | { [x: string]: any; }; language: string; }; }, string, unknown>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { aggregationType?: ", - "AggregationType", - " | undefined; serviceName?: string | undefined; errorGroupingKey?: string | undefined; transactionType?: string | undefined; transactionName?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/rule_types/error_count/chart_preview\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; } & { interval: string; } & { groupBy?: string[] | undefined; searchConfiguration?: { query: { query: string | { [x: string]: any; }; language: string; }; } | undefined; }; }; }) => Promise<{ latencyChartPreview: ", - "PreviewChartResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/rule_types/error_count/chart_preview\": { endpoint: \"GET /internal/apm/rule_types/error_count/chart_preview\"; params?: ", + "<\"GET /internal/apm/rule_types/error_count/chart_preview\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -4499,25 +4739,21 @@ "StringC", ">; searchConfiguration: ", "Type", - "<{ query: { query: string | { [x: string]: any; }; language: string; }; }, string, unknown>; }>]>; }> | undefined; handler: ({}: ", + "<{ query: { query: string | { [x: string]: any; }; language: string; }; }, string, unknown>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { aggregationType?: ", - "AggregationType", - " | undefined; serviceName?: string | undefined; errorGroupingKey?: string | undefined; transactionType?: string | undefined; transactionName?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; } & { interval: string; } & { groupBy?: string[] | undefined; searchConfiguration?: { query: { query: string | { [x: string]: any; }; language: string; }; } | undefined; }; }; }) => Promise<{ errorCountChartPreview: ", - "PreviewChartResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\": { endpoint: \"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\"; params?: ", + "<\"GET /internal/apm/rule_types/transaction_error_rate/chart_preview\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -4583,25 +4819,21 @@ "StringC", ">; searchConfiguration: ", "Type", - "<{ query: { query: string | { [x: string]: any; }; language: string; }; }, string, unknown>; }>]>; }> | undefined; handler: ({}: ", + "<{ query: { query: string | { [x: string]: any; }; language: string; }; }, string, unknown>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { aggregationType?: ", - "AggregationType", - " | undefined; serviceName?: string | undefined; errorGroupingKey?: string | undefined; transactionType?: string | undefined; transactionName?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; } & { interval: string; } & { groupBy?: string[] | undefined; searchConfiguration?: { query: { query: string | { [x: string]: any; }; language: string; }; } | undefined; }; }; }) => Promise<{ errorRateChartPreview: ", - "PreviewChartResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\": { endpoint: \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate_by_transaction_name\", ", "TypeC", "<{ path: ", "TypeC", @@ -4651,23 +4883,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>]>; }> | undefined; handler: ({}: ", + "; }>]>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; transactionName: string; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<", - "ColdstartRateResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\": { endpoint: \"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transactions/charts/coldstart_rate\", ", "TypeC", "<{ path: ", "TypeC", @@ -4715,23 +4945,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>]>; }> | undefined; handler: ({}: ", + "; }>]>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<", - "ColdstartRateResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\": { endpoint: \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\", ", "TypeC", "<{ path: ", "TypeC", @@ -4871,63 +5099,21 @@ "section": "def-common.RollupInterval", "text": "RollupInterval" }, - ".None>]>; }>]>]>; }> | undefined; handler: ({}: ", + ".None>]>; }>]>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; bucketSizeInSeconds: number; } & { transactionName?: string | undefined; filters?: ", - { - "pluginId": "@kbn/es-query", - "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.BoolQuery", - "text": "BoolQuery" - }, - " | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", + ", ", + "FailedTransactionRateResponse", + ", ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\": ", { - "pluginId": "apmDataAccess", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; }; }; }) => Promise<", - "FailedTransactionRateResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\": { endpoint: \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\", ", "TypeC", "<{ path: ", "TypeC", @@ -4973,23 +5159,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; } & { transactionName?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "TransactionBreakdownResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\": { endpoint: \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transactions/traces/samples\", ", "TypeC", "<{ path: ", "TypeC", @@ -5043,23 +5227,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; transactionName: string; } & { transactionId?: string | undefined; traceId?: string | undefined; sampleRangeFrom?: number | undefined; sampleRangeTo?: number | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "TransactionTraceSamplesResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\": { endpoint: \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transactions/charts/latency\", ", "TypeC", "<{ path: ", "TypeC", @@ -5215,65 +5397,21 @@ "section": "def-common.RollupInterval", "text": "RollupInterval" }, - ".None>]>; }>]>; }> | undefined; handler: ({}: ", + ".None>]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; latencyAggregationType: ", - "LatencyAggregationType", - "; bucketSizeInSeconds: number; useDurationSummary: boolean; } & { transactionName?: string | undefined; filters?: ", - { - "pluginId": "@kbn/es-query", - "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.BoolQuery", - "text": "BoolQuery" - }, - " | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", + ", ", + "TransactionLatencyResponse", + ", ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\": ", { - "pluginId": "apmDataAccess", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; }; }; }) => Promise<", - "TransactionLatencyResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\": { endpoint: \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -5409,49 +5547,21 @@ "LiteralC", "<", "LatencyAggregationType", - ".p99>]>; }>]>; }> | undefined; handler: ({}: ", + ".p99>]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", + ", ", + "ServiceTransactionGroupDetailedStatisticsResponse", + ", ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\": ", { - "pluginId": "apmDataAccess", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; } & { bucketSizeInSeconds: number; useDurationSummary: boolean; } & { transactionNames: string[]; transactionType: string; latencyAggregationType: ", - "LatencyAggregationType", - "; }; }; }) => Promise<", - "ServiceTransactionGroupDetailedStatisticsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\": { endpoint: \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -5577,77 +5687,57 @@ "section": "def-common.RollupInterval", "text": "RollupInterval" }, - ".None>]>; }>]>; }> | undefined; handler: ({}: ", + ".None>]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { searchQuery?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/transactions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; } & { kuery: string; useDurationSummary: boolean; transactionType: string; latencyAggregationType: ", - "LatencyAggregationType", - "; } & { documentType: ", + "<\"GET /internal/apm/transactions\", ", + "TypeC", + "<{ query: ", + "IntersectionC", + "<[", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ transactionName: ", + "StringC", + "; serviceName: ", + "StringC", + "; }>]>; }>, ", + "APMRouteHandlerResources", + ", { transaction: ", { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" - }, - "; }; }; }) => Promise<", - "MergedServiceTransactionGroupsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/transactions\": { endpoint: \"GET /internal/apm/transactions\"; params?: ", - "TypeC", - "<{ query: ", - "IntersectionC", - "<[", - "TypeC", - "<{ start: ", - "Type", - "; end: ", - "Type", - "; }>, ", - "TypeC", - "<{ transactionName: ", - "StringC", - "; serviceName: ", - "StringC", - "; }>]>; }> | undefined; handler: ({}: ", - "APMRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { transactionName: string; serviceName: string; }; }; }) => Promise<{ transaction: ", - { - "pluginId": "@kbn/apm-types", + "pluginId": "@kbn/apm-types", "scope": "common", "docId": "kibKbnApmTypesPluginApi", "section": "def-common.Transaction", "text": "Transaction" }, - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/traces/{traceId}/spans/{spanId}\": { endpoint: \"GET /internal/apm/traces/{traceId}/spans/{spanId}\"; params?: ", + ">; \"GET /internal/apm/traces/{traceId}/spans/{spanId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/traces/{traceId}/spans/{spanId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -5671,9 +5761,9 @@ "StringC", "; }>, ", "UndefinedC", - "]>]>; }> | undefined; handler: ({}: ", + "]>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { traceId: string; spanId: string; }; query: { start: number; end: number; } & { parentTransactionId?: string | undefined; }; }; }) => Promise<{ span?: ", + ", { span?: ", { "pluginId": "@kbn/apm-types", "scope": "common", @@ -5689,9 +5779,17 @@ "section": "def-common.Transaction", "text": "Transaction" }, - " | undefined; }>; } & ", + " | undefined; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\": { endpoint: \"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\"; params?: ", + ">; \"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/traces/{traceId}/transactions/{transactionId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -5705,9 +5803,9 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { traceId: string; transactionId: string; }; query: { start: number; end: number; }; }; }) => Promise<", + ", ", { "pluginId": "@kbn/apm-types", "scope": "common", @@ -5715,9 +5813,17 @@ "section": "def-common.Transaction", "text": "Transaction" }, - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"POST /internal/apm/traces/aggregated_critical_path\": { endpoint: \"POST /internal/apm/traces/aggregated_critical_path\"; params?: ", + ">; \"POST /internal/apm/traces/aggregated_critical_path\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/traces/aggregated_critical_path\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -5765,33 +5871,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { traceIds: string[]; serviceName: ", - "Branded", - " | null; transactionName: ", - "Branded", - "; \"GET /internal/apm/traces/find\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "> | null; } & { start: number; end: number; }; }; }) => Promise<{ criticalPath: ", - "CriticalPathResponse", - " | null; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/traces/find\": { endpoint: \"GET /internal/apm/traces/find\"; params?: ", + "<\"GET /internal/apm/traces/find\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -5835,25 +5929,21 @@ "LiteralC", "<", "TraceSearchType", - ".eql>]>; }>]>; }> | undefined; handler: ({}: ", + ".eql>]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/transactions/{transactionId}\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { query: string; type: ", - "TraceSearchType", - "; }; }; }) => Promise<{ traceSamples: ", - "TraceSamplesResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/transactions/{transactionId}\": { endpoint: \"GET /internal/apm/transactions/{transactionId}\"; params?: ", + "<\"GET /internal/apm/transactions/{transactionId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -5865,9 +5955,9 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { transactionId: string; }; query: { start: number; end: number; }; }; }) => Promise<{ transaction: ", + ", { transaction: ", { "pluginId": "@kbn/apm-types", "scope": "common", @@ -5875,9 +5965,17 @@ "section": "def-common.Transaction", "text": "Transaction" }, - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/traces/{traceId}/root_transaction\": { endpoint: \"GET /internal/apm/traces/{traceId}/root_transaction\"; params?: ", + ">; \"GET /internal/apm/traces/{traceId}/root_transaction\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/traces/{traceId}/root_transaction\", ", "TypeC", "<{ path: ", "TypeC", @@ -5889,9 +5987,9 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { traceId: string; }; query: { start: number; end: number; }; }; }) => Promise<{ transaction: ", + ", { transaction: ", { "pluginId": "@kbn/apm-types", "scope": "common", @@ -5899,9 +5997,17 @@ "section": "def-common.Transaction", "text": "Transaction" }, - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/traces\": { endpoint: \"GET /internal/apm/traces\"; params?: ", + ">; \"GET /internal/apm/traces\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/traces\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -5939,23 +6045,21 @@ "TypeC", "<{ probability: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/traces/{traceId}\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { probability: number; }; }; }) => Promise<", - "TopTracesPrimaryStatsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/traces/{traceId}\": { endpoint: \"GET /internal/apm/traces/{traceId}\"; params?: ", + "<\"GET /internal/apm/traces/{traceId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -5977,9 +6081,9 @@ "PartialC", "<{ maxTraceItems: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { traceId: string; }; query: { start: number; end: number; } & { entryTransactionId: string; } & { maxTraceItems?: number | undefined; }; }; }) => Promise<{ traceItems: ", + ", { traceItems: ", "TraceItems", "; entryTransaction?: ", { @@ -5989,9 +6093,17 @@ "section": "def-common.Transaction", "text": "Transaction" }, - " | undefined; }>; } & ", + " | undefined; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/suggestions\": { endpoint: \"GET /internal/apm/suggestions\"; params?: ", + ">; \"GET /internal/apm/suggestions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/suggestions\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -6011,15 +6123,31 @@ "PartialC", "<{ serviceName: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { fieldName: string; fieldValue: string; } & { start: number; end: number; } & { serviceName?: string | undefined; }; }; }) => Promise<{ terms: string[]; }>; } & ", + ", { terms: string[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/service-group/counts\": { endpoint: \"GET /internal/apm/service-group/counts\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/service-group/counts\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/service-group/counts\", undefined, ", "APMRouteHandlerResources", - ") => Promise; } & ", + ", ServiceGroupCounts, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/service-group/services\": { endpoint: \"GET /internal/apm/service-group/services\"; params?: ", + ">; \"GET /internal/apm/service-group/services\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/service-group/services\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -6033,23 +6161,39 @@ "PartialC", "<{ kuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { kuery?: string | undefined; }; }; }) => Promise<{ items: ", + ", { items: ", "LookupServicesResponse", - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"DELETE /internal/apm/service-group\": { endpoint: \"DELETE /internal/apm/service-group\"; params?: ", + ">; \"DELETE /internal/apm/service-group\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/apm/service-group\", ", "TypeC", "<{ query: ", "TypeC", "<{ serviceGroupId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceGroupId: string; }; }; }) => Promise; } & ", + ", void, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/service-group\": { endpoint: \"POST /internal/apm/service-group\"; params?: ", + ">; \"POST /internal/apm/service-group\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/service-group\", ", "TypeC", "<{ query: ", "UnionC", @@ -6077,31 +6221,55 @@ "StringC", ", ", "UndefinedC", - "]>; }>; }> | undefined; handler: ({}: ", + "]>; }>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceGroupId?: string | undefined; } | undefined; body: { groupName: string; kuery: string; description: string | undefined; color: string | undefined; }; }; }) => Promise<", + ", ", "SavedServiceGroup", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/service-group\": { endpoint: \"GET /internal/apm/service-group\"; params?: ", + ">; \"GET /internal/apm/service-group\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/service-group\", ", "TypeC", "<{ query: ", "TypeC", "<{ serviceGroup: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceGroup: string; }; }; }) => Promise<{ serviceGroup: ", + ", { serviceGroup: ", "SavedServiceGroup", - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/service-groups\": { endpoint: \"GET /internal/apm/service-groups\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/service-groups\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/service-groups\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ serviceGroups: ", + ", { serviceGroups: ", "SavedServiceGroup", - "[]; }>; } & ", + "[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/entities/services/{serviceName}/summary\": { endpoint: \"GET /internal/apm/entities/services/{serviceName}/summary\"; params?: ", + ">; \"GET /internal/apm/entities/services/{serviceName}/summary\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/entities/services/{serviceName}/summary\", ", "TypeC", "<{ path: ", "TypeC", @@ -6127,19 +6295,9 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">]>; }>; }> | undefined; handler: ({}: ", + ">]>; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; }; }; }) => Promise<{ metrics: { latency: number; throughput: number; failedTransactionRate: number; logRate: number; logErrorRate: number; }; serviceName: string; agentName: ", + ", { metrics: { latency: number; throughput: number; failedTransactionRate: number; logRate: number; logErrorRate: number; }; serviceName: string; agentName: ", { "pluginId": "@kbn/elastic-agent-utils", "scope": "common", @@ -6149,9 +6307,17 @@ }, "; dataStreamTypes: ", "EntityDataStreamType", - "[]; environments: string[]; hasLogMetrics: boolean; }>; } & ", + "[]; environments: string[]; hasLogMetrics: boolean; }, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/entities/services/detailed_statistics\": { endpoint: \"POST /internal/apm/entities/services/detailed_statistics\"; params?: ", + ">; \"POST /internal/apm/entities/services/detailed_statistics\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/entities/services/detailed_statistics\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -6189,21 +6355,19 @@ "TypeC", "<{ serviceNames: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/entities/services/{serviceName}/logs_error_rate_timeseries\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; body: { serviceNames: string[]; }; }; }) => Promise<{ currentPeriod: { [x: string]: { serviceName: string; latency: { x: number; y: number | null; }[]; logErrorRate: { x: number; y: number | null; }[]; logRate: { x: number; y: number | null; }[]; throughput: { x: number; y: number | null; }[]; failedTransactionRate: { x: number; y: number | null; }[]; }; }; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/entities/services/{serviceName}/logs_error_rate_timeseries\": { endpoint: \"GET /internal/apm/entities/services/{serviceName}/logs_error_rate_timeseries\"; params?: ", + "<\"GET /internal/apm/entities/services/{serviceName}/logs_error_rate_timeseries\", ", "TypeC", "<{ path: ", "TypeC", @@ -6241,23 +6405,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/entities/services/{serviceName}/logs_rate_timeseries\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ currentPeriod: ", - "LogsErrorRateTimeseriesReturnType", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/entities/services/{serviceName}/logs_rate_timeseries\": { endpoint: \"GET /internal/apm/entities/services/{serviceName}/logs_rate_timeseries\"; params?: ", + "<\"GET /internal/apm/entities/services/{serviceName}/logs_rate_timeseries\", ", "TypeC", "<{ path: ", "TypeC", @@ -6295,23 +6457,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/entities/services\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ currentPeriod: ", - "LogsRateTimeseriesReturnType", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/entities/services\": { endpoint: \"GET /internal/apm/entities/services\"; params?: ", + "<\"GET /internal/apm/entities/services\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -6345,19 +6505,9 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ services: { metrics: { latency: number; throughput: number; failedTransactionRate: number; logRate: number; logErrorRate: number; }; serviceName: string; agentName: ", + ", { services: { metrics: { latency: number; throughput: number; failedTransactionRate: number; logRate: number; logErrorRate: number; }; serviceName: string; agentName: ", { "pluginId": "@kbn/elastic-agent-utils", "scope": "common", @@ -6367,9 +6517,17 @@ }, "; dataStreamTypes: ", "EntityDataStreamType", - "[]; environments: string[]; hasLogMetrics: boolean; }[]; }>; } & ", + "[]; environments: string[]; hasLogMetrics: boolean; }[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/alerts_count\": { endpoint: \"GET /internal/apm/services/{serviceName}/alerts_count\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/alerts_count\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/alerts_count\", ", "TypeC", "<{ path: ", "TypeC", @@ -6403,21 +6561,19 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">]>; }>]>; }> | undefined; handler: ({}: ", + ">]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/anomaly_charts\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }; }; }) => Promise<{ serviceName: string; alertsCount: number; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/anomaly_charts\": { endpoint: \"GET /internal/apm/services/{serviceName}/anomaly_charts\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/anomaly_charts\", ", "TypeC", "<{ path: ", "TypeC", @@ -6455,23 +6611,21 @@ "TypeC", "<{ transactionType: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { transactionType: string; }; }; }) => Promise<{ allAnomalyTimeseries: ", - "ServiceAnomalyTimeseries", - "[]; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\": { endpoint: \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/dependencies/breakdown\", ", "TypeC", "<{ path: ", "TypeC", @@ -6509,23 +6663,21 @@ "TypeC", "<{ kuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/dependencies\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; } & { kuery: string; }; }; }) => Promise<{ breakdown: ", - "ServiceDependenciesBreakdownResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/dependencies\": { endpoint: \"GET /internal/apm/services/{serviceName}/dependencies\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/dependencies\", ", "TypeC", "<{ path: ", "TypeC", @@ -6567,23 +6719,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { numBuckets: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<{ serviceDependencies: ", - "ServiceDependenciesResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\": { endpoint: \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -6647,25 +6797,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { latencyAggregationType: ", - "LatencyAggregationType", - "; transactionType: string; serviceNodeIds: string[]; numBuckets: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<", - "ServiceInstancesDetailedStatisticsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\": { endpoint: \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -6733,27 +6879,23 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { latencyAggregationType: ", - "LatencyAggregationType", - "; transactionType: string; sortField: \"serviceNodeName\" | \"latency\" | \"throughput\" | \"errorRate\" | \"cpuUsage\" | \"memoryUsage\"; sortDirection: \"asc\" | \"desc\"; } & { offset?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ currentPeriod: ", + ", { currentPeriod: ", "ServiceInstanceMainStatisticsResponse", "; previousPeriod: ", "ServiceInstanceMainStatisticsResponse", - "; }>; } & ", + "; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/throughput\": { endpoint: \"GET /internal/apm/services/{serviceName}/throughput\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/throughput\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/throughput\", ", "TypeC", "<{ path: ", "TypeC", @@ -6893,65 +7035,23 @@ "section": "def-common.RollupInterval", "text": "RollupInterval" }, - ".None>]>; }>]>]>; }> | undefined; handler: ({}: ", + ".None>]>; }>]>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; bucketSizeInSeconds: number; } & { transactionName?: string | undefined; filters?: ", + ", { currentPeriod: ", + "ServiceThroughputResponse", + "; previousPeriod: ", + "ServiceThroughputResponse", + "; }, ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\": ", { - "pluginId": "@kbn/es-query", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnEsQueryPluginApi", - "section": "def-common.BoolQuery", - "text": "BoolQuery" - }, - " | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; }; }; }) => Promise<{ currentPeriod: ", - "ServiceThroughputResponse", - "; previousPeriod: ", - "ServiceThroughputResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\": { endpoint: \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\", ", "TypeC", "<{ path: ", "TypeC", @@ -6965,15 +7065,23 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; serviceNodeName: string; }; query: { start: number; end: number; }; }; }) => Promise<", + ", ", "ServiceInstanceMetadataDetailsResponse", " & ({} | ", "ServiceInstanceContainerMetadataDetails", - ")>; } & ", + "), ", "APMRouteCreateOptions", - "; \"POST /api/apm/services/{serviceName}/annotation 2023-10-31\": { endpoint: \"POST /api/apm/services/{serviceName}/annotation 2023-10-31\"; params?: ", + ">; \"POST /api/apm/services/{serviceName}/annotation 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/apm/services/{serviceName}/annotation 2023-10-31\", ", "TypeC", "<{ path: ", "TypeC", @@ -7003,11 +7111,19 @@ "ArrayC", "<", "StringC", - ">; }>]>; }> | undefined; handler: ({}: ", + ">; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; body: { '@timestamp': number; service: { version: string; } & { environment?: string | undefined; }; } & { message?: string | undefined; tags?: string[] | undefined; }; }; }) => Promise<{ _id: string; _index: string; _source: { id: string; } & { annotation: { title?: string | undefined; type?: string | undefined; style?: { icon?: string | undefined; color?: string | undefined; line?: { width?: number | undefined; style?: \"dashed\" | \"solid\" | \"dotted\" | undefined; iconPosition?: \"top\" | \"bottom\" | undefined; textDecoration?: \"none\" | \"name\" | undefined; } | undefined; rect?: { fill?: \"inside\" | \"outside\" | undefined; } | undefined; } | undefined; }; '@timestamp': string; message: string; } & { event?: ({ start: string; } & { end?: string | undefined; }) | undefined; tags?: string[] | undefined; service?: { name?: string | undefined; environment?: string | undefined; version?: string | undefined; } | undefined; monitor?: { id?: string | undefined; } | undefined; slo?: ({ id: string; } & { instanceId?: string | undefined; }) | undefined; host?: { name?: string | undefined; } | undefined; }; }>; } & ", + ", { _id: string; _index: string; _source: { id: string; } & { annotation: { title?: string | undefined; type?: string | undefined; style?: { icon?: string | undefined; color?: string | undefined; line?: { width?: number | undefined; style?: \"dashed\" | \"solid\" | \"dotted\" | undefined; iconPosition?: \"top\" | \"bottom\" | undefined; textDecoration?: \"none\" | \"name\" | undefined; } | undefined; rect?: { fill?: \"inside\" | \"outside\" | undefined; } | undefined; } | undefined; }; '@timestamp': string; message: string; } & { event?: ({ start: string; } & { end?: string | undefined; }) | undefined; tags?: string[] | undefined; service?: { name?: string | undefined; environment?: string | undefined; version?: string | undefined; } | undefined; monitor?: { id?: string | undefined; } | undefined; slo?: ({ id: string; } & { instanceId?: string | undefined; }) | undefined; host?: { name?: string | undefined; } | undefined; }; }, ", "APMRouteCreateOptions", - "; \"GET /api/apm/services/{serviceName}/annotation/search 2023-10-31\": { endpoint: \"GET /api/apm/services/{serviceName}/annotation/search 2023-10-31\"; params?: ", + ">; \"GET /api/apm/services/{serviceName}/annotation/search 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/apm/services/{serviceName}/annotation/search 2023-10-31\", ", "TypeC", "<{ path: ", "TypeC", @@ -7041,23 +7157,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; }; }; }) => Promise<", - "ServiceAnnotationResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\": { endpoint: \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\", ", "TypeC", "<{ path: ", "TypeC", @@ -7173,55 +7287,21 @@ "section": "def-common.RollupInterval", "text": "RollupInterval" }, - ".None>]>; }>]>; }> | undefined; handler: ({}: ", + ".None>]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; serviceNodeName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", + ", ", + "ServiceNodeMetadataResponse", + ", ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/services/{serviceName}/transaction_types\": ", { - "pluginId": "apmDataAccess", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; }; }; }) => Promise<", - "ServiceNodeMetadataResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/transaction_types\": { endpoint: \"GET /internal/apm/services/{serviceName}/transaction_types\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/transaction_types\", ", "TypeC", "<{ path: ", "TypeC", @@ -7311,45 +7391,21 @@ "section": "def-common.RollupInterval", "text": "RollupInterval" }, - ".None>]>; }>]>; }> | undefined; handler: ({}: ", + ".None>]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", + ", ", + "ServiceTransactionTypesResponse", + ", ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/services/{serviceName}/agent\": ", { - "pluginId": "apmDataAccess", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; }; }; }) => Promise<", - "ServiceTransactionTypesResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/agent\": { endpoint: \"GET /internal/apm/services/{serviceName}/agent\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/agent\", ", "TypeC", "<{ path: ", "TypeC", @@ -7361,13 +7417,21 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; }; }; }) => Promise<", + ", ", "ServiceAgentResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/metadata/icons\": { endpoint: \"GET /internal/apm/services/{serviceName}/metadata/icons\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/metadata/icons\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/metadata/icons\", ", "TypeC", "<{ path: ", "TypeC", @@ -7379,13 +7443,21 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; }; }; }) => Promise<", + ", ", "ServiceMetadataIcons", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/metadata/details\": { endpoint: \"GET /internal/apm/services/{serviceName}/metadata/details\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/metadata/details\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/metadata/details\", ", "TypeC", "<{ path: ", "TypeC", @@ -7419,23 +7491,21 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">]>; }>]>; }> | undefined; handler: ({}: ", + ">]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"POST /internal/apm/services/detailed_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }; }; }) => Promise<", - "ServiceMetadataDetails", - ">; } & ", - "APMRouteCreateOptions", - "; \"POST /internal/apm/services/detailed_statistics\": { endpoint: \"POST /internal/apm/services/detailed_statistics\"; params?: ", + "<\"POST /internal/apm/services/detailed_statistics\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -7563,55 +7633,21 @@ "TypeC", "<{ serviceNames: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { probability: number; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", + ", ", + "ServiceTransactionDetailedStatPeriodsResponse", + ", ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/services\": ", { - "pluginId": "apmDataAccess", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; } & { bucketSizeInSeconds: number; }; body: { serviceNames: string[]; }; }; }) => Promise<", - "ServiceTransactionDetailedStatPeriodsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services\": { endpoint: \"GET /internal/apm/services\"; params?: ", + "<\"GET /internal/apm/services\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -7739,55 +7775,21 @@ "Type", "; end: ", "Type", - "; }>]>]>; }> | undefined; handler: ({}: ", + "; }>]>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { searchQuery?: string | undefined; serviceGroup?: string | undefined; } & { probability: number; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".ServiceTransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" - }, - "; } & { useDurationSummary: boolean; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/service-map/dependency\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "ServicesItemsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/service-map/dependency\": { endpoint: \"GET /internal/apm/service-map/dependency\"; params?: ", + "<\"GET /internal/apm/service-map/dependency\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -7825,23 +7827,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { dependencyName: string; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/service-map/service/{serviceName}\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<", - "ServiceMapServiceDependencyInfoResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/service-map/service/{serviceName}\": { endpoint: \"GET /internal/apm/service-map/service/{serviceName}\"; params?: ", + "<\"GET /internal/apm/service-map/service/{serviceName}\", ", "TypeC", "<{ path: ", "TypeC", @@ -7879,23 +7879,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/service-map\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<", - "ServiceMapServiceNodeInfoResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/service-map\": { endpoint: \"GET /internal/apm/service-map\"; params?: ", + "<\"GET /internal/apm/service-map\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -7933,29 +7931,35 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceName?: string | undefined; serviceGroup?: string | undefined; kuery?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/observability_overview/has_data\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { start: number; end: number; }; }; }) => Promise<", - "GroupResourceNodesResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/observability_overview/has_data\": { endpoint: \"GET /internal/apm/observability_overview/has_data\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/apm/observability_overview/has_data\", undefined, ", "APMRouteHandlerResources", - ") => Promise<", + ", ", "HasDataResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/observability_overview\": { endpoint: \"GET /internal/apm/observability_overview\"; params?: ", + ">; \"GET /internal/apm/observability_overview\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/observability_overview\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -7971,13 +7975,21 @@ "Type", "; intervalString: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { bucketSize: number; intervalString: string; }; }; }) => Promise<", + ", ", "ObservabilityOverviewResponse", - ">; } & ", + ", ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\": { endpoint: \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/metrics/serverless/active_instances\", ", "TypeC", "<{ path: ", "TypeC", @@ -8019,25 +8031,23 @@ "PartialC", "<{ serverlessId: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; } & { serverlessId?: string | undefined; }; }; }) => Promise<{ activeInstances: ", + ", { activeInstances: ", "ActiveInstanceOverview", "[]; timeseries: ", "Coordinate", - "[]; }>; } & ", + "[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\": { endpoint: \"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\"; params?: ", + ">; \"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/services/{serviceName}/metrics/serverless/functions_overview\", ", "TypeC", "<{ path: ", "TypeC", @@ -8075,23 +8085,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ serverlessFunctionsOverview: ", - "ServerlessFunctionsOverviewResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\": { endpoint: \"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/metrics/serverless/summary\", ", "TypeC", "<{ path: ", "TypeC", @@ -8133,23 +8141,21 @@ "PartialC", "<{ serverlessId: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { serverlessId?: string | undefined; }; }; }) => Promise<", - "ServerlessSummaryResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\": { endpoint: \"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/metrics/serverless/charts\", ", "TypeC", "<{ path: ", "TypeC", @@ -8263,47 +8269,21 @@ "TypeC", "<{ bucketSizeInSeconds: ", "Type", - "; }>]>]>; }> | undefined; handler: ({}: ", + "; }>]>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; } & { kuery: string; } & { start: number; end: number; } & { serverlessId?: string | undefined; } & { documentType: ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionMetric | ", - { - "pluginId": "apmDataAccess", - "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.ApmDocumentType", - "text": "ApmDocumentType" - }, - ".TransactionEvent; rollupInterval: ", + ", { charts: ", + "FetchAndTransformMetrics", + "[]; }, ", + "APMRouteCreateOptions", + ">; \"GET /internal/apm/services/{serviceName}/metrics/nodes\": ", { - "pluginId": "apmDataAccess", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibApmDataAccessPluginApi", - "section": "def-common.RollupInterval", - "text": "RollupInterval" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "; } & { bucketSizeInSeconds: number; }; }; }) => Promise<{ charts: ", - "FetchAndTransformMetrics", - "[]; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/metrics/nodes\": { endpoint: \"GET /internal/apm/services/{serviceName}/metrics/nodes\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/metrics/nodes\", ", "TypeC", "<{ path: ", "TypeC", @@ -8341,23 +8321,21 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">]>; }>]>; }> | undefined; handler: ({}: ", + ">]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { kuery: string; } & { start: number; end: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/metrics/charts\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }; }; }) => Promise<{ serviceNodes: ", - "ServiceNodesResponse", - "; }>; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/metrics/charts\": { endpoint: \"GET /internal/apm/services/{serviceName}/metrics/charts\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/metrics/charts\", ", "TypeC", "<{ path: ", "TypeC", @@ -8403,23 +8381,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { agentName: string; } & { serviceNodeName?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"POST /internal/apm/latency/overall_distribution/transactions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<{ charts: ", - "FetchAndTransformMetrics", - "[]; }>; } & ", - "APMRouteCreateOptions", - "; \"POST /internal/apm/latency/overall_distribution/transactions\": { endpoint: \"POST /internal/apm/latency/overall_distribution/transactions\"; params?: ", + "<\"POST /internal/apm/latency/overall_distribution/transactions\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -8499,25 +8475,21 @@ "LiteralC", "<", "LatencyDistributionChartType", - ".dependencyLatency>]>; }>]>; }> | undefined; handler: ({}: ", + ".dependencyLatency>]>; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { body: { serviceName?: string | undefined; transactionName?: string | undefined; transactionType?: string | undefined; termFilters?: { fieldName: string; fieldValue: string | number; }[] | undefined; durationMin?: number | undefined; durationMax?: number | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { percentileThreshold: number; chartType: ", - "LatencyDistributionChartType", - "; }; }; }) => Promise<", - "OverallLatencyDistributionResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\": { endpoint: \"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/errors/{groupId}/top_erroneous_transactions\", ", "TypeC", "<{ path: ", "TypeC", @@ -8565,23 +8537,21 @@ "TypeC", "<{ numBuckets: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; groupId: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/errors/distribution\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { numBuckets: number; }; }; }) => Promise<", - "TopErroneousTransactionsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/errors/distribution\": { endpoint: \"GET /internal/apm/services/{serviceName}/errors/distribution\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/errors/distribution\", ", "TypeC", "<{ path: ", "TypeC", @@ -8627,23 +8597,21 @@ "PartialC", "<{ offset: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { groupId?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; }; }; }) => Promise<", - "ErrorDistributionResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\": { endpoint: \"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/errors/{groupId}/error/{errorId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -8685,23 +8653,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; groupId: string; errorId: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "ErrorSampleDetailsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\": { endpoint: \"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/errors/{groupId}/samples\", ", "TypeC", "<{ path: ", "TypeC", @@ -8741,23 +8707,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; groupId: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "ErrorGroupSampleIdsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\": { endpoint: \"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\"; params?: ", + "<\"POST /internal/apm/services/{serviceName}/errors/groups/detailed_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -8807,23 +8771,21 @@ "TypeC", "<{ groupIds: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; } & { offset?: string | undefined; } & { numBuckets: number; }; body: { groupIds: string[]; }; }; }) => Promise<", - "ErrorGroupPeriodsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\": { endpoint: \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics_by_transaction_name\", ", "TypeC", "<{ path: ", "TypeC", @@ -8869,23 +8831,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { transactionType: string; transactionName: string; maxNumberOfErrorGroups: number; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "ErrorGroupMainStatisticsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\": { endpoint: \"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\"; params?: ", + "<\"GET /internal/apm/services/{serviceName}/errors/groups/main_statistics\", ", "TypeC", "<{ path: ", "TypeC", @@ -8935,23 +8895,21 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { path: { serviceName: string; }; query: { sortField?: string | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; searchQuery?: string | undefined; } & { environment: \"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", - "Branded", - "; \"GET /internal/apm/environments\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { kuery: string; } & { start: number; end: number; }; }; }) => Promise<", - "ErrorGroupMainStatisticsResponse", - ">; } & ", - "APMRouteCreateOptions", - "; \"GET /internal/apm/environments\": { endpoint: \"GET /internal/apm/environments\"; params?: ", + "<\"GET /internal/apm/environments\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -8965,9 +8923,9 @@ "Type", "; end: ", "Type", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "APMRouteHandlerResources", - " & { params: { query: { serviceName?: string | undefined; } & { start: number; end: number; }; }; }) => Promise<{ environments: (\"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", + ", { environments: (\"ENVIRONMENT_NOT_DEFINED\" | \"ENVIRONMENT_ALL\" | ", "Branded", ")[]; }>; } & ", + ">)[]; }, ", "APMRouteCreateOptions", - "; \"GET /internal/apm/data_view/index_pattern\": { endpoint: \"GET /internal/apm/data_view/index_pattern\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/apm/data_view/index_pattern\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/data_view/index_pattern\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ apmDataViewIndexPattern: string; }>; } & ", + ", { apmDataViewIndexPattern: string; }, ", "APMRouteCreateOptions", - "; \"POST /internal/apm/data_view/static\": { endpoint: \"POST /internal/apm/data_view/static\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/apm/data_view/static\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/data_view/static\", undefined, ", "APMRouteHandlerResources", - ") => Promise<{ created: boolean; dataView: ", + ", { created: boolean; dataView: ", { "pluginId": "dataViews", "scope": "common", @@ -8993,9 +8967,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "; } | { created: boolean; reason?: string | undefined; }>; } & ", + "; } | { created: boolean; reason?: string | undefined; }, ", "APMRouteCreateOptions", - "; }" + ">; }" ], "path": "x-pack/plugins/observability_solution/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts", "deprecated": false, diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 5a98871616c80..5f2aadf4ec2d8 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.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 | |-------------------|-----------|------------------------|-----------------| -| 29 | 0 | 29 | 118 | +| 29 | 0 | 29 | 119 | ## Client diff --git a/api_docs/apm_data_access.devdocs.json b/api_docs/apm_data_access.devdocs.json index e6d336d1074ee..365d08f247e17 100644 --- a/api_docs/apm_data_access.devdocs.json +++ b/api_docs/apm_data_access.devdocs.json @@ -2244,7 +2244,9 @@ "section": "def-common.ApmDataSourceWithSummary", "text": "ApmDataSourceWithSummary" }, - "; bucketSizeInSeconds: number; }; documentTypeConfig: DocumentTypeConfigOf; }; }" + "; bucketSizeInSeconds: number; }; documentTypeConfig: DocumentTypeConfigOf; }; getHostServices: ({ start, end, size, filters, documentSources }: ", + "HostServicesRequest", + ") => Promise<{ services: { serviceName: string; agentName: string | null; }[]; }>; }" ], "path": "x-pack/plugins/observability_solution/apm_data_access/server/types.ts", "deprecated": false, @@ -2445,7 +2447,9 @@ "section": "def-common.ApmDataSourceWithSummary", "text": "ApmDataSourceWithSummary" }, - "; bucketSizeInSeconds: number; }; documentTypeConfig: DocumentTypeConfigOf; }; }" + "; bucketSizeInSeconds: number; }; documentTypeConfig: DocumentTypeConfigOf; }; getHostServices: ({ start, end, size, filters, documentSources }: ", + "HostServicesRequest", + ") => Promise<{ services: { serviceName: string; agentName: string | null; }[]; }>; }" ], "path": "x-pack/plugins/observability_solution/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 62074dfd57176..b46bd1a0c3436 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 93 | 0 | 93 | 0 | +| 93 | 0 | 93 | 1 | ## Server diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index 51053380bb20a..82649312c9982 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-09-11 +date: 2024-09-16 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 3267f7aae0b59..2900c30036e4d 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-09-11 +date: 2024-09-16 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 f5cf31954e28e..55d203b475c98 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index c52a9eaa37fcf..ea895dcdd8d2e 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index b08b5a41d0929..e9d9eef843f02 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.devdocs.json b/api_docs/cloud.devdocs.json index a8d45651f1f38..a421bcc26d64a 100644 --- a/api_docs/cloud.devdocs.json +++ b/api_docs/cloud.devdocs.json @@ -57,6 +57,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "cloud", + "id": "def-public.CloudConfigType.csp", + "type": "string", + "tags": [], + "label": "csp", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/cloud/public/plugin.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "cloud", "id": "def-public.CloudConfigType.base_url", @@ -600,6 +614,24 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "cloud", + "id": "def-public.CloudSetup.csp", + "type": "string", + "tags": [ + "note" + ], + "label": "csp", + "description": [ + "\nThe cloud service provider identifier.\n" + ], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/cloud/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "cloud", "id": "def-public.CloudSetup.baseUrl", @@ -937,6 +969,24 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "cloud", + "id": "def-server.CloudSetup.csp", + "type": "string", + "tags": [ + "note" + ], + "label": "csp", + "description": [ + "\nThe cloud service provider identifier.\n" + ], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/cloud/server/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "cloud", "id": "def-server.CloudSetup.organizationId", diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index 7b3fcbf4b0e3c..0bfd3fd4f77b9 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.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 | |-------------------|-----------|------------------------|-----------------| -| 81 | 0 | 20 | 0 | +| 84 | 0 | 21 | 0 | ## Client diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index 0c4c8df2deb7a..b06b4188189bd 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.devdocs.json b/api_docs/cloud_defend.devdocs.json index fc5809fff4cc6..4e6084a486171 100644 --- a/api_docs/cloud_defend.devdocs.json +++ b/api_docs/cloud_defend.devdocs.json @@ -404,7 +404,7 @@ "label": "type", "description": [], "signature": [ - "\"file\" | \"process\"" + "\"process\" | \"file\"" ], "path": "x-pack/plugins/cloud_defend/common/v1.ts", "deprecated": false, @@ -667,7 +667,7 @@ "label": "type", "description": [], "signature": [ - "\"file\" | \"process\"" + "\"process\" | \"file\"" ], "path": "x-pack/plugins/cloud_defend/common/v1.ts", "deprecated": false, @@ -816,7 +816,7 @@ "\ncloud_defend/control types" ], "signature": [ - "\"file\" | \"process\"" + "\"process\" | \"file\"" ], "path": "x-pack/plugins/cloud_defend/common/v1.ts", "deprecated": false, diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index 2855653f79e0d..346048dff210d 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-09-11 +date: 2024-09-16 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 e156dca38d884..5355d303114ad 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-09-11 +date: 2024-09-16 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 df489ccf8223f..a146286825fcc 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 7675ecd3720c5..269ed079e6d4b 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index cd6fefca7b175..29cb35ccf33c1 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-09-11 +date: 2024-09-16 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 5843e8b140100..877a9fd6ce269 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-09-11 +date: 2024-09-16 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 599b9ec9af532..694a647e81678 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 47162fe5df7ed..f31e8d8618d6b 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-09-11 +date: 2024-09-16 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 721256871c9ad..f9b744f0ea11a 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-09-11 +date: 2024-09-16 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 9d77d50b3d137..a5d021e9a0505 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -4472,7 +4472,7 @@ "section": "def-common.DataView", "text": "DataView" }, - " | undefined, params: TabifyDocsOptions | undefined) => Record" + " | undefined, params: (TabifyDocsOptions & { flattenedFieldsComparator?: ((a: string | symbol, b: string | symbol) => 0 | 1 | -1) | undefined; }) | undefined) => Record" ], "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", "deprecated": false, @@ -4522,14 +4522,14 @@ { "parentPluginId": "data", "id": "def-public.flattenHit.$3", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "params", "description": [ "Parameters how to flatten the hit" ], "signature": [ - "TabifyDocsOptions | undefined" + "(TabifyDocsOptions & { flattenedFieldsComparator?: ((a: string | symbol, b: string | symbol) => 0 | 1 | -1) | undefined; }) | undefined" ], "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", "deprecated": false, @@ -9614,7 +9614,7 @@ }, "; history: ", "SearchRequest", - ">[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: >[]; destroy: () => void; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: Promise) => void; getSearchRequestBody: () => any; destroy: () => void; loadDataViewFields: (dataView: ", + " | undefined) => Promise) => void; getSearchRequestBody: () => any; loadDataViewFields: (dataView: ", { "pluginId": "dataViews", "scope": "common", @@ -23162,7 +23162,7 @@ "section": "def-common.DataView", "text": "DataView" }, - " | undefined, params: TabifyDocsOptions | undefined) => Record" + " | undefined, params: (TabifyDocsOptions & { flattenedFieldsComparator?: ((a: string | symbol, b: string | symbol) => 0 | 1 | -1) | undefined; }) | undefined) => Record" ], "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", "deprecated": false, @@ -23212,14 +23212,14 @@ { "parentPluginId": "data", "id": "def-common.flattenHit.$3", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "params", "description": [ "Parameters how to flatten the hit" ], "signature": [ - "TabifyDocsOptions | undefined" + "(TabifyDocsOptions & { flattenedFieldsComparator?: ((a: string | symbol, b: string | symbol) => 0 | 1 | -1) | undefined; }) | undefined" ], "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", "deprecated": false, diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 16bf6bf005afd..2b609646c8ef7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_quality.mdx b/api_docs/data_quality.mdx index 1117c8a78a606..be2d80e86e248 100644 --- a/api_docs/data_quality.mdx +++ b/api_docs/data_quality.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataQuality title: "dataQuality" image: https://source.unsplash.com/400x175/?github description: API docs for the dataQuality plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataQuality'] --- import dataQualityObj from './data_quality.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 8ab5184aae2c8..5cc04a4ab8957 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.devdocs.json b/api_docs/data_search.devdocs.json index a6b790106808f..abd2db64b8431 100644 --- a/api_docs/data_search.devdocs.json +++ b/api_docs/data_search.devdocs.json @@ -159,7 +159,7 @@ "\nCurrent session management\n{@link ISessionService}" ], "signature": [ - "{ start: () => string; clear: () => void; save: () => Promise; destroy: () => void; readonly state$: ", + "{ start: () => string; clear: () => void; destroy: () => void; save: () => Promise; readonly state$: ", "Observable", "<", { @@ -615,7 +615,7 @@ "\nCurrent session management\n{@link ISessionService}" ], "signature": [ - "{ start: () => string; clear: () => void; save: () => Promise; destroy: () => void; readonly state$: ", + "{ start: () => string; clear: () => void; destroy: () => void; save: () => Promise; readonly state$: ", "Observable", "<", { @@ -1141,7 +1141,7 @@ "label": "ISessionService", "description": [], "signature": [ - "{ start: () => string; clear: () => void; save: () => Promise; destroy: () => void; readonly state$: ", + "{ start: () => string; clear: () => void; destroy: () => void; save: () => Promise; readonly state$: ", "Observable", "<", { @@ -7004,7 +7004,7 @@ }, "; history: ", "SearchRequest", - ">[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: >[]; destroy: () => void; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: Promise) => void; getSearchRequestBody: () => any; destroy: () => void; loadDataViewFields: (dataView: ", + " | undefined) => Promise) => void; getSearchRequestBody: () => any; loadDataViewFields: (dataView: ", { "pluginId": "dataViews", "scope": "common", @@ -33580,7 +33580,7 @@ }, "; history: ", "SearchRequest", - ">[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: >[]; destroy: () => void; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: Promise) => void; getSearchRequestBody: () => any; destroy: () => void; loadDataViewFields: (dataView: ", + " | undefined) => Promise) => void; getSearchRequestBody: () => any; loadDataViewFields: (dataView: ", { "pluginId": "dataViews", "scope": "common", diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index d3530e1801a04..37a07d0ea1ac6 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_search.devdocs.json'; diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index b483828f435f4..c57fc4d611383 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-09-11 +date: 2024-09-16 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 288d97df56d98..6b12ca5a703f6 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-09-11 +date: 2024-09-16 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 93f20037624ba..8302b0bf3e709 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViewManagement'] --- import dataViewManagementObj from './data_view_management.devdocs.json'; diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index 8fb18dc942759..100593d0e55ef 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.devdocs.json'; diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index e58edf14936f1..971a21d9e5557 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-09-11 +date: 2024-09-16 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 4c475fed8fdc0..103f09c82d1ef 100644 --- a/api_docs/dataset_quality.devdocs.json +++ b/api_docs/dataset_quality.devdocs.json @@ -230,31 +230,63 @@ "label": "APIClientRequestParamsOf", "description": [], "signature": [ - "{ \"GET /internal/dataset_quality/integrations/{integration}/dashboards\": { endpoint: \"GET /internal/dataset_quality/integrations/{integration}/dashboards\"; params?: ", + "{ \"GET /internal/dataset_quality/integrations/{integration}/dashboards\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/integrations/{integration}/dashboards\", ", "TypeC", "<{ path: ", "TypeC", "<{ integration: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { integration: string; }; }; }) => Promise<{ dashboards: { id: string; title: string; }[]; }>; } & ", + ", { dashboards: { id: string; title: string; }[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/integrations\": { endpoint: \"GET /internal/dataset_quality/integrations\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/dataset_quality/integrations\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/integrations\", undefined, ", "DatasetQualityRouteHandlerResources", - ") => Promise<{ integrations: ({ name: string; } & { title?: string | undefined; version?: string | undefined; icons?: ({ src: string; } & { path?: string | undefined; size?: string | undefined; title?: string | undefined; type?: string | undefined; })[] | undefined; datasets?: { [x: string]: string; } | undefined; })[]; }>; } & ", + ", { integrations: ({ name: string; } & { title?: string | undefined; version?: string | undefined; icons?: ({ src: string; } & { path?: string | undefined; size?: string | undefined; title?: string | undefined; type?: string | undefined; })[] | undefined; datasets?: { [x: string]: string; } | undefined; })[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/settings\", ", "TypeC", "<{ path: ", "TypeC", "<{ dataStream: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | null | undefined; integration?: string | undefined; datasetUserPrivileges?: ({ canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }) | undefined; }>; } & ", + ", { createdOn?: number | null | undefined; integration?: string | undefined; datasetUserPrivileges?: ({ canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }) | undefined; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/details\", ", "TypeC", "<{ path: ", "TypeC", @@ -266,11 +298,19 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; query: { start: number; end: number; }; }; }) => Promise<{ lastActivity?: number | undefined; degradedDocsCount?: number | undefined; docsCount?: number | undefined; sizeBytes?: number | null | undefined; services?: { [x: string]: string[]; } | undefined; hosts?: { [x: string]: string[]; } | undefined; userPrivileges?: { canMonitor: boolean; } | undefined; }>; } & ", + ", { lastActivity?: number | undefined; degradedDocsCount?: number | undefined; docsCount?: number | undefined; sizeBytes?: number | null | undefined; services?: { [x: string]: string[]; } | undefined; hosts?: { [x: string]: string[]; } | undefined; userPrivileges?: { canMonitor: boolean; } | undefined; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_field/{degradedField}/values\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_field/{degradedField}/values\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_field/{degradedField}/values\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_field/{degradedField}/values\", ", "TypeC", "<{ path: ", "TypeC", @@ -278,11 +318,19 @@ "StringC", "; degradedField: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; degradedField: string; }; }; }) => Promise<{ field: string; values: string[]; }>; } & ", + ", { field: string; values: string[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_fields\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_fields\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_fields\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_fields\", ", "TypeC", "<{ path: ", "TypeC", @@ -294,11 +342,19 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; query: { start: number; end: number; }; }; }) => Promise<{ degradedFields: { name: string; count: number; lastOccurrence: number | null; timeSeries: { x: number; y: number; }[]; }[]; }>; } & ", + ", { degradedFields: { name: string; count: number; lastOccurrence: number | null; timeSeries: { x: number; y: number; }[]; }[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/non_aggregatable\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/non_aggregatable\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/non_aggregatable\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/non_aggregatable\", ", "TypeC", "<{ path: ", "TypeC", @@ -316,11 +372,19 @@ "TypeC", "<{ type: ", "KeyofC", - "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>]>; }> | undefined; handler: ({}: ", + "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>]>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; query: { start: number; end: number; } & { type: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\"; }; }; }) => Promise<{ aggregatable: boolean; datasets: string[]; }>; } & ", + ", { aggregatable: boolean; datasets: string[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/non_aggregatable\": { endpoint: \"GET /internal/dataset_quality/data_streams/non_aggregatable\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/non_aggregatable\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/non_aggregatable\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -338,11 +402,19 @@ "PartialC", "<{ dataStream: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { types: (\"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\")[]; } & { dataStream?: string | undefined; }; }; }) => Promise<{ aggregatable: boolean; datasets: string[]; }>; } & ", + ", { aggregatable: boolean; datasets: string[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/degraded_docs\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/degraded_docs\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -360,11 +432,19 @@ "PartialC", "<{ datasetQuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { type: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\"; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ degradedDocs: { dataset: string; count: number; docsCount: number; percentage: number; }[]; }>; } & ", + ", { degradedDocs: { dataset: string; count: number; docsCount: number; percentage: number; }[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/stats\": { endpoint: \"GET /internal/dataset_quality/data_streams/stats\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/stats\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/stats\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -376,11 +456,19 @@ "PartialC", "<{ datasetQuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { query: { types: (\"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\")[]; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ datasetUserPrivileges: { canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }; dataStreamsStats: ({ name: string; userPrivileges: { canMonitor: boolean; }; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; totalDocs?: number | null | undefined; })[]; }>; } & ", + ", { datasetUserPrivileges: { canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }; dataStreamsStats: ({ name: string; userPrivileges: { canMonitor: boolean; }; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; totalDocs?: number | null | undefined; })[]; }, ", "DatasetQualityRouteCreateOptions", - "; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + ">; }[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " Promise; } & ", + " | undefined, any, any, ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -396,7 +484,7 @@ "section": "def-common.ServerRouteCreateOptions", "text": "ServerRouteCreateOptions" }, - " ? TRouteParamsRT extends ", + "> ? TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -404,7 +492,7 @@ "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, - " ? ClientRequestParamsOfType : {} : never" + " ? ClientRequestParamsOfType : TRouteParamsRT extends undefined ? {} : never : never" ], "path": "x-pack/plugins/observability_solution/dataset_quality/common/rest/create_call_dataset_quality_api.ts", "deprecated": false, @@ -419,31 +507,63 @@ "label": "APIReturnType", "description": [], "signature": [ - "{ \"GET /internal/dataset_quality/integrations/{integration}/dashboards\": { endpoint: \"GET /internal/dataset_quality/integrations/{integration}/dashboards\"; params?: ", + "{ \"GET /internal/dataset_quality/integrations/{integration}/dashboards\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/integrations/{integration}/dashboards\", ", "TypeC", "<{ path: ", "TypeC", "<{ integration: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { integration: string; }; }; }) => Promise<{ dashboards: { id: string; title: string; }[]; }>; } & ", + ", { dashboards: { id: string; title: string; }[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/integrations\": { endpoint: \"GET /internal/dataset_quality/integrations\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/dataset_quality/integrations\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/integrations\", undefined, ", "DatasetQualityRouteHandlerResources", - ") => Promise<{ integrations: ({ name: string; } & { title?: string | undefined; version?: string | undefined; icons?: ({ src: string; } & { path?: string | undefined; size?: string | undefined; title?: string | undefined; type?: string | undefined; })[] | undefined; datasets?: { [x: string]: string; } | undefined; })[]; }>; } & ", + ", { integrations: ({ name: string; } & { title?: string | undefined; version?: string | undefined; icons?: ({ src: string; } & { path?: string | undefined; size?: string | undefined; title?: string | undefined; type?: string | undefined; })[] | undefined; datasets?: { [x: string]: string; } | undefined; })[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/settings\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/settings\", ", "TypeC", "<{ path: ", "TypeC", "<{ dataStream: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn?: number | null | undefined; integration?: string | undefined; datasetUserPrivileges?: ({ canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }) | undefined; }>; } & ", + ", { createdOn?: number | null | undefined; integration?: string | undefined; datasetUserPrivileges?: ({ canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }) | undefined; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/details\", ", "TypeC", "<{ path: ", "TypeC", @@ -455,11 +575,19 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; query: { start: number; end: number; }; }; }) => Promise<{ lastActivity?: number | undefined; degradedDocsCount?: number | undefined; docsCount?: number | undefined; sizeBytes?: number | null | undefined; services?: { [x: string]: string[]; } | undefined; hosts?: { [x: string]: string[]; } | undefined; userPrivileges?: { canMonitor: boolean; } | undefined; }>; } & ", + ", { lastActivity?: number | undefined; degradedDocsCount?: number | undefined; docsCount?: number | undefined; sizeBytes?: number | null | undefined; services?: { [x: string]: string[]; } | undefined; hosts?: { [x: string]: string[]; } | undefined; userPrivileges?: { canMonitor: boolean; } | undefined; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_field/{degradedField}/values\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_field/{degradedField}/values\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_field/{degradedField}/values\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_field/{degradedField}/values\", ", "TypeC", "<{ path: ", "TypeC", @@ -467,11 +595,19 @@ "StringC", "; degradedField: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; degradedField: string; }; }; }) => Promise<{ field: string; values: string[]; }>; } & ", + ", { field: string; values: string[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_fields\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_fields\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_fields\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/degraded_fields\", ", "TypeC", "<{ path: ", "TypeC", @@ -483,11 +619,19 @@ "Type", "; end: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; query: { start: number; end: number; }; }; }) => Promise<{ degradedFields: { name: string; count: number; lastOccurrence: number | null; timeSeries: { x: number; y: number; }[]; }[]; }>; } & ", + ", { degradedFields: { name: string; count: number; lastOccurrence: number | null; timeSeries: { x: number; y: number; }[]; }[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/{dataStream}/non_aggregatable\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/non_aggregatable\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/{dataStream}/non_aggregatable\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/{dataStream}/non_aggregatable\", ", "TypeC", "<{ path: ", "TypeC", @@ -505,11 +649,19 @@ "TypeC", "<{ type: ", "KeyofC", - "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>]>; }> | undefined; handler: ({}: ", + "<{ logs: null; metrics: null; traces: null; synthetics: null; profiling: null; }>; }>]>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { path: { dataStream: string; }; query: { start: number; end: number; } & { type: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\"; }; }; }) => Promise<{ aggregatable: boolean; datasets: string[]; }>; } & ", + ", { aggregatable: boolean; datasets: string[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/non_aggregatable\": { endpoint: \"GET /internal/dataset_quality/data_streams/non_aggregatable\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/non_aggregatable\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/non_aggregatable\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -527,11 +679,19 @@ "PartialC", "<{ dataStream: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { types: (\"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\")[]; } & { dataStream?: string | undefined; }; }; }) => Promise<{ aggregatable: boolean; datasets: string[]; }>; } & ", + ", { aggregatable: boolean; datasets: string[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/degraded_docs\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/degraded_docs\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -549,11 +709,19 @@ "PartialC", "<{ datasetQuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { query: { start: number; end: number; } & { type: \"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\"; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ degradedDocs: { dataset: string; count: number; docsCount: number; percentage: number; }[]; }>; } & ", + ", { degradedDocs: { dataset: string; count: number; docsCount: number; percentage: number; }[]; }, ", "DatasetQualityRouteCreateOptions", - "; \"GET /internal/dataset_quality/data_streams/stats\": { endpoint: \"GET /internal/dataset_quality/data_streams/stats\"; params?: ", + ">; \"GET /internal/dataset_quality/data_streams/stats\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/dataset_quality/data_streams/stats\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -565,11 +733,19 @@ "PartialC", "<{ datasetQuery: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "DatasetQualityRouteHandlerResources", - " & { params: { query: { types: (\"profiling\" | \"metrics\" | \"synthetics\" | \"traces\" | \"logs\")[]; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ datasetUserPrivileges: { canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }; dataStreamsStats: ({ name: string; userPrivileges: { canMonitor: boolean; }; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; totalDocs?: number | null | undefined; })[]; }>; } & ", + ", { datasetUserPrivileges: { canMonitor: boolean; } & { canRead: boolean; canViewIntegrations: boolean; }; dataStreamsStats: ({ name: string; userPrivileges: { canMonitor: boolean; }; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; totalDocs?: number | null | undefined; })[]; }, ", "DatasetQualityRouteCreateOptions", - "; }[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", + ">; }[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", "scope": "server", diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx index 3a447009bbeb0..5626a1013f4f0 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-09-11 +date: 2024-09-16 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 fb69a5617dbfb..324987e7f3b8f 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -69,7 +69,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | cloudSecurityPosture, securitySolution | - | | | cloudChat | - | | | @kbn/core-elasticsearch-server-internal, @kbn/core-plugins-server-internal, enterpriseSearch, observabilityOnboarding, console | - | -| | alerting, observabilityAIAssistant, fleet, cloudSecurityPosture, serverlessSearch, transform, upgradeAssistant, entityManager, apm, synthetics, security | - | +| | alerting, observabilityAIAssistant, fleet, cloudSecurityPosture, entityManager, serverlessSearch, transform, upgradeAssistant, apm, synthetics, security | - | | | actions, alerting | - | | | monitoring | - | | | @kbn/core-saved-objects-api-browser, @kbn/core, savedObjects, savedObjectsManagement, visualizations, savedObjectsTagging, eventAnnotation, lens, maps, graph, dashboard, savedObjectsTaggingOss, kibanaUtils, expressions, data, embeddable, uiActionsEnhanced, controls, canvas, dashboardEnhanced, globalSearchProviders | - | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index a21c354950469..5425334348f11 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -1396,7 +1396,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/constants.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/constants.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [host_isolation_exceptions_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/host_isolation_exceptions_api_client.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [host_isolation_exceptions_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/host_isolation_exceptions_api_client.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [host_isolation_exceptions_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/host_isolation_exceptions_api_client.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [lists.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [lists.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [host_isolation_exceptions_validator.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lists_integration/endpoint/validators/host_isolation_exceptions_validator.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [host_isolation_exceptions_validator.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lists_integration/endpoint/validators/host_isolation_exceptions_validator.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID), [exceptions_list_item_generator.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/endpoint/data_generators/exceptions_list_item_generator.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_ID)+ 8 more | - | | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/constants.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_NAME), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/constants.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_NAME), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/host_isolation_exceptions/index.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_NAME), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/host_isolation_exceptions/index.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_NAME) | - | | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/constants.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_DESCRIPTION), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/host_isolation_exceptions/constants.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_DESCRIPTION), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/host_isolation_exceptions/index.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_DESCRIPTION), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/host_isolation_exceptions/index.ts#:~:text=ENDPOINT_HOST_ISOLATION_EXCEPTIONS_LIST_DESCRIPTION) | - | -| | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [policy_hooks.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_hooks.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [policy_hooks.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_hooks.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [lists.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [lists.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklist_validator.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lists_integration/endpoint/validators/blocklist_validator.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID)+ 8 more | - | +| | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [blocklists_api_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/services/blocklists_api_client.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [policy_hooks.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_hooks.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [policy_hooks.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_hooks.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [lists.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [lists.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID), [exceptions_list_item_generator.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/common/endpoint/data_generators/exceptions_list_item_generator.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_ID)+ 6 more | - | | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_NAME), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_NAME), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/blocklists/index.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_NAME), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/blocklists/index.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_NAME) | - | | | [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_DESCRIPTION), [constants.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/management/pages/blocklist/constants.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_DESCRIPTION), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/blocklists/index.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_DESCRIPTION), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/scripts/endpoint/blocklists/index.ts#:~:text=ENDPOINT_BLOCKLISTS_LIST_DESCRIPTION) | - | | | [use_colors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/resolver/view/use_colors.ts#:~:text=darkMode), [use_colors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/resolver/view/use_colors.ts#:~:text=darkMode), [use_colors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/resolver/view/use_colors.ts#:~:text=darkMode), [use_colors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/resolver/view/use_colors.ts#:~:text=darkMode), [use_colors.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/public/resolver/view/use_colors.ts#:~:text=darkMode) | - | @@ -1629,7 +1629,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [search_selection.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx#:~:text=includeFields), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=includeFields) | - | +| | [search_selection.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/wizard/search_selection/search_selection.tsx#:~:text=includeFields), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx#:~:text=includeFields) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/plugin.ts#:~:text=savedObjects), [visualize_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=savedObjects) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/plugin.ts#:~:text=SavedObjectsClientContract), [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/plugin.ts#:~:text=SavedObjectsClientContract) | - | | | [visualize_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/visualize_app/components/visualize_listing.tsx#:~:text=delete) | - | @@ -1638,8 +1638,8 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/types.ts#:~:text=ResolvedSimpleSavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/types.ts#:~:text=ResolvedSimpleSavedObject) | - | | | [services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/services.ts#:~:text=SavedObjectsStart), [services.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/services.ts#:~:text=SavedObjectsStart) | - | | | [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectAttribute), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectAttribute) | - | -| | [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [visualize_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx#:~:text=SavedObjectAttributes), [visualize_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx#:~:text=SavedObjectAttributes), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=SavedObjectAttributes), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=SavedObjectAttributes) | - | -| | [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx#:~:text=SavedObjectReference)+ 10 more | - | +| | [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectAttributes), [visualize_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx#:~:text=SavedObjectAttributes), [visualize_embeddable.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx#:~:text=SavedObjectAttributes), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx#:~:text=SavedObjectAttributes), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx#:~:text=SavedObjectAttributes) | - | +| | [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualization_references.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [saved_visualize_utils.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/utils/saved_visualize_utils.ts#:~:text=SavedObjectReference), [visualize_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx#:~:text=SavedObjectReference)+ 10 more | - | | | [visualization.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/server/saved_objects/visualization.ts#:~:text=migrations) | - | | | [visualization.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/server/saved_objects/visualization.ts#:~:text=schemas) | - | | | [visualization.ts](https://github.com/elastic/kibana/tree/main/src/plugins/visualizations/server/saved_objects/visualization.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index f9eaae88d42de..5c74ba7845e44 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 40c5a4fa80dd1..c1e6520ee8963 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-09-11 +date: 2024-09-16 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 b55e78eeafff9..870d48408426d 100644 --- a/api_docs/discover.devdocs.json +++ b/api_docs/discover.devdocs.json @@ -1562,9 +1562,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "> | undefined; lift: (operator: ", "Operator", "<", { @@ -1584,8 +1584,8 @@ }, ", R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "savedSearch", @@ -1594,9 +1594,7 @@ "section": "def-common.SavedSearch", "text": "SavedSearch" }, - ">; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "savedSearch", "scope": "common", @@ -1604,9 +1602,9 @@ "section": "def-common.SavedSearch", "text": "SavedSearch" }, - "> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + ") => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "savedSearch", "scope": "common", @@ -1614,7 +1612,9 @@ "section": "def-common.SavedSearch", "text": "SavedSearch" }, - ">> | ((value: ", + ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "savedSearch", "scope": "common", @@ -1622,9 +1622,7 @@ "section": "def-common.SavedSearch", "text": "SavedSearch" }, - ") => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "savedSearch", "scope": "common", @@ -1632,9 +1630,7 @@ "section": "def-common.SavedSearch", "text": "SavedSearch" }, - ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "savedSearch", "scope": "common", @@ -1642,7 +1638,9 @@ "section": "def-common.SavedSearch", "text": "SavedSearch" }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + " | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "savedSearch", "scope": "common", @@ -1650,7 +1648,9 @@ "section": "def-common.SavedSearch", "text": "SavedSearch" }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + ">[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "savedSearch", "scope": "common", @@ -1658,7 +1658,7 @@ "section": "def-common.SavedSearch", "text": "SavedSearch" }, - " | undefined>; }; }" + ">; }" ], "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false, diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 189d6f6fd1e2c..0ab2219b2ef49 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discover'] --- import discoverObj from './discover.devdocs.json'; diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index 12037a475cdda..27da0dc2a563b 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/discover_shared.mdx b/api_docs/discover_shared.mdx index df18c266a8bc6..117c2246e4cd7 100644 --- a/api_docs/discover_shared.mdx +++ b/api_docs/discover_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverShared title: "discoverShared" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverShared plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverShared'] --- import discoverSharedObj from './discover_shared.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index f4e73bc9eb4bc..348cef252ef76 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-09-11 +date: 2024-09-16 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 2ea883a26f65b..dc7a18796d77d 100644 --- a/api_docs/elastic_assistant.devdocs.json +++ b/api_docs/elastic_assistant.devdocs.json @@ -1641,7 +1641,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - " | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }, any>" + " | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }, any>" ], "path": "x-pack/plugins/elastic_assistant/server/types.ts", "deprecated": false, diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index 1ef34b685c47f..4d5e76e5c56c8 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; diff --git a/api_docs/embeddable.devdocs.json b/api_docs/embeddable.devdocs.json index 5fd493a81847e..617d9afca361c 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -2484,9 +2484,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "> | undefined; lift: (operator: ", "Operator", "<", { @@ -2506,8 +2506,8 @@ }, ", R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/presentation-publishing", @@ -2516,9 +2516,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ">; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -2526,9 +2524,9 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - "> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + ") => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -2536,7 +2534,9 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ">> | ((value: ", + ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -2544,9 +2544,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ") => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -2554,9 +2552,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -2564,7 +2560,9 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + " | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -2572,7 +2570,9 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + ">[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -2580,7 +2580,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - " | undefined>; }; }" + ">; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -2886,9 +2886,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "[] | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -2908,8 +2908,8 @@ }, "[] | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "dataViews", @@ -2918,9 +2918,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "dataViews", "scope": "common", @@ -2928,9 +2926,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + "[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "dataViews", "scope": "common", @@ -2938,7 +2936,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>> | ((value: ", + "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "dataViews", "scope": "common", @@ -2946,9 +2946,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "dataViews", "scope": "common", @@ -2956,9 +2954,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "dataViews", "scope": "common", @@ -2966,7 +2962,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + "[] | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "dataViews", "scope": "common", @@ -2974,7 +2972,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + "[] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "dataViews", "scope": "common", @@ -2982,7 +2982,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>; }; }" + "[] | undefined>; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -3370,9 +3370,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + " | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -3408,8 +3408,8 @@ }, " | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/es-query", @@ -3426,9 +3426,7 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -3444,9 +3442,9 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -3462,7 +3460,9 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>> | ((value: ", + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -3478,9 +3478,7 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -3496,9 +3494,7 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -3514,7 +3510,9 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + " | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -3530,7 +3528,9 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -3546,7 +3546,7 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>; }; }" + " | undefined>; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -3694,23 +3694,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -3858,23 +3858,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -4142,9 +4142,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "[] | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -4164,8 +4164,8 @@ }, "[] | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/es-query", @@ -4174,9 +4174,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4184,9 +4182,9 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + "[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4194,7 +4192,9 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>> | ((value: ", + "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4202,9 +4202,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4212,9 +4210,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4222,7 +4218,9 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + "[] | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4230,7 +4228,9 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + "[] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4238,7 +4238,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; }; }" + "[] | undefined>; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -4506,9 +4506,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + " | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -4528,8 +4528,8 @@ }, " | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/presentation-publishing", @@ -4538,9 +4538,7 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -4548,9 +4546,9 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -4558,7 +4556,9 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>> | ((value: ", + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -4566,9 +4566,7 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -4576,9 +4574,7 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -4586,7 +4582,9 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + " | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -4594,7 +4592,9 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -4602,7 +4602,7 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>; }; }" + " | undefined>; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -4764,23 +4764,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -5079,9 +5079,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + " | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -5101,8 +5101,8 @@ }, " | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/es-query", @@ -5111,9 +5111,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5121,9 +5119,9 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5131,7 +5129,9 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>> | ((value: ", + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5139,9 +5139,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5149,9 +5147,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5159,7 +5155,9 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + " | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5167,7 +5165,9 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5175,7 +5175,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>; }; }" + " | undefined>; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -5323,23 +5323,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -5517,23 +5517,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -5702,23 +5702,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -6084,23 +6084,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -8860,8 +8860,8 @@ "pluginId": "@kbn/presentation-containers", "scope": "public", "docId": "kibKbnPresentationContainersPluginApi", - "section": "def-public.PresentationContainer", - "text": "PresentationContainer" + "section": "def-public.CanAddNewPanel", + "text": "CanAddNewPanel" }, "; onAddPanel?: ((id: string) => void) | undefined; onClose?: (() => void) | undefined; }) => ", { @@ -8899,8 +8899,8 @@ "pluginId": "@kbn/presentation-containers", "scope": "public", "docId": "kibKbnPresentationContainersPluginApi", - "section": "def-public.PresentationContainer", - "text": "PresentationContainer" + "section": "def-public.CanAddNewPanel", + "text": "CanAddNewPanel" } ], "path": "src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx", diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index ffe539cb3cb1a..ad028690f665a 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index e80f0ec89335b..1075d2e29b4e5 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-09-11 +date: 2024-09-16 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 75b081c73e7fc..eb49e8bff6a78 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-09-11 +date: 2024-09-16 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 686c9e6b8fe2f..cc143c729bd61 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/entities_data_access.mdx b/api_docs/entities_data_access.mdx index 45943b46ee136..6986fb214184f 100644 --- a/api_docs/entities_data_access.mdx +++ b/api_docs/entities_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/entitiesDataAccess title: "entitiesDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the entitiesDataAccess plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'entitiesDataAccess'] --- import entitiesDataAccessObj from './entities_data_access.devdocs.json'; diff --git a/api_docs/entity_manager.devdocs.json b/api_docs/entity_manager.devdocs.json index 95789c85be15d..617634d5c931c 100644 --- a/api_docs/entity_manager.devdocs.json +++ b/api_docs/entity_manager.devdocs.json @@ -243,7 +243,15 @@ "label": "EntityManagerRouteRepository", "description": [], "signature": [ - "{ \"PATCH /internal/entities/definition/{id}\": { endpoint: \"PATCH /internal/entities/definition/{id}\"; params?: Zod.ZodObject<{ path: Zod.ZodObject<{ id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; }, { id: string; }>; query: Zod.ZodObject<{ installOnly: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { installOnly: boolean; }, { installOnly?: boolean | \"true\" | \"false\" | undefined; }>; body: Zod.ZodObject; filter: Zod.ZodOptional>; version: Zod.ZodOptional>; name: Zod.ZodOptional; description: Zod.ZodOptional>; history: Zod.ZodOptional; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>>; metrics: Zod.ZodOptional; query: Zod.ZodObject<{ installOnly: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { installOnly: boolean; }, { installOnly?: boolean | \"true\" | \"false\" | undefined; }>; body: Zod.ZodObject; filter: Zod.ZodOptional>; version: Zod.ZodOptional>; name: Zod.ZodOptional; description: Zod.ZodOptional>; history: Zod.ZodOptional; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>>; metrics: Zod.ZodOptional, \"many\">>>; indexPatterns: Zod.ZodOptional>; metadata: Zod.ZodOptional; limit: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { source: string; destination?: string | undefined; limit?: number | undefined; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, { destination: string; limit: number; source: string; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, Zod.ZodEffects]>, { destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; }, string | { source: string; destination?: string | undefined; limit?: number | undefined; }>, \"many\">>>; identityFields: Zod.ZodOptional, Zod.ZodEffects]>, \"many\">>; displayNameTemplate: Zod.ZodOptional; staticFields: Zod.ZodOptional>>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }>>>; }, { history: Zod.ZodOptional; interval: Zod.ZodOptional>; settings: Zod.ZodOptional; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>>; }, \"strip\", Zod.ZodTypeAny, { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; }, { interval?: string | undefined; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; }>>; version: Zod.ZodEffects; }>, \"strip\", Zod.ZodTypeAny, { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }>, \"many\">>>; indexPatterns: Zod.ZodOptional>; metadata: Zod.ZodOptional; aggregation: Zod.ZodDefault; limit: Zod.ZodDefault; }, \"strip\", Zod.ZodTypeAny, { type: \"terms\"; limit: number; }, { type: \"terms\"; limit?: number | undefined; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"top_value\">; sort: Zod.ZodRecord, Zod.ZodLiteral<\"desc\">]>>; lookbackPeriod: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }>]>>>; }, \"strip\", Zod.ZodTypeAny, { source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; destination?: string | undefined; }, { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, Zod.ZodEffects]>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, \"many\">>>; identityFields: Zod.ZodOptional, Zod.ZodEffects]>, \"many\">>; displayNameTemplate: Zod.ZodOptional; staticFields: Zod.ZodOptional>>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }>>>; }, { history: Zod.ZodOptional; interval: Zod.ZodOptional>; settings: Zod.ZodOptional; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>>; }, \"strip\", Zod.ZodTypeAny, { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; }, { interval?: string | undefined; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; }>>; version: Zod.ZodEffects; }>, \"strip\", Zod.ZodTypeAny, { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -291,7 +299,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }, { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }, { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -299,7 +307,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: (string | { source: string; destination?: string | undefined; limit?: number | undefined; })[] | undefined; identityFields?: (string | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { installOnly: boolean; }; body: { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: (string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; })[] | undefined; identityFields?: (string | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { installOnly: boolean; }; body: { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -307,7 +315,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }; path: { id: string; }; }, { query: { installOnly?: boolean | \"true\" | \"false\" | undefined; }; body: { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }; path: { id: string; }; }, { query: { installOnly?: boolean | \"true\" | \"false\" | undefined; }; body: { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -315,25 +323,9 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: (string | { source: string; destination?: string | undefined; limit?: number | undefined; })[] | undefined; identityFields?: (string | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }; path: { id: string; }; }> | undefined; handler: ({}: ", - "EntityManagerRouteDependencies", - " & ", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.DefaultRouteHandlerResources", - "text": "DefaultRouteHandlerResources" - }, - " & { params: ZodMaybeOptional<{ query: { installOnly: boolean; }; body: { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", - { - "pluginId": "@kbn/entities-schema", - "scope": "common", - "docId": "kibKbnEntitiesSchemaPluginApi", - "section": "def-common.BasicAggregations", - "text": "BasicAggregations" - }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }; path: { id: string; }; }>; }) => Promise<", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: (string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; })[] | undefined; identityFields?: (string | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }; path: { id: string; }; }>, ", + "EntityManagerRouteHandlerResources", + ", ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -341,7 +333,7 @@ "section": "def-server.IKibanaResponse", "text": "IKibanaResponse" }, - ">; } & ", + ", ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -349,17 +341,17 @@ "section": "def-common.DefaultRouteCreateOptions", "text": "DefaultRouteCreateOptions" }, - "; \"POST /internal/entities/definition/{id}/_reset\": { endpoint: \"POST /internal/entities/definition/{id}/_reset\"; params?: Zod.ZodObject<{ path: Zod.ZodObject<{ id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; }, { id: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { id: string; }; }, { path: { id: string; }; }> | undefined; handler: ({}: ", - "EntityManagerRouteDependencies", - " & ", + ">; \"POST /internal/entities/definition/{id}/_reset\": ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.DefaultRouteHandlerResources", - "text": "DefaultRouteHandlerResources" + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - " & { params: ZodMaybeOptional<{ path: { id: string; }; }>; }) => Promise<", + "<\"POST /internal/entities/definition/{id}/_reset\", Zod.ZodObject<{ path: Zod.ZodObject<{ id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; }, { id: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { id: string; }; }, { path: { id: string; }; }>, ", + "EntityManagerRouteHandlerResources", + ", ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -367,7 +359,7 @@ "section": "def-server.IKibanaResponse", "text": "IKibanaResponse" }, - ">; } & ", + ", ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -375,17 +367,17 @@ "section": "def-common.DefaultRouteCreateOptions", "text": "DefaultRouteCreateOptions" }, - "; \"GET /internal/entities/definition\": { endpoint: \"GET /internal/entities/definition\"; params?: Zod.ZodObject<{ query: Zod.ZodObject<{ page: Zod.ZodOptional; perPage: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { page?: number | undefined; perPage?: number | undefined; }, { page?: number | undefined; perPage?: number | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { page?: number | undefined; perPage?: number | undefined; }; }, { query: { page?: number | undefined; perPage?: number | undefined; }; }> | undefined; handler: ({}: ", - "EntityManagerRouteDependencies", - " & ", + ">; \"GET /internal/entities/definition/{id?}\": ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.DefaultRouteHandlerResources", - "text": "DefaultRouteHandlerResources" + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - " & { params?: ZodMaybeOptional<{ query: { page?: number | undefined; perPage?: number | undefined; }; }> | undefined; }) => Promise<", + "<\"GET /internal/entities/definition/{id?}\", Zod.ZodObject<{ query: Zod.ZodObject<{ page: Zod.ZodOptional; perPage: Zod.ZodOptional; includeState: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { includeState: boolean; page?: number | undefined; perPage?: number | undefined; }, { page?: number | undefined; perPage?: number | undefined; includeState?: boolean | \"true\" | \"false\" | undefined; }>; path: Zod.ZodObject<{ id: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; }, { id?: string | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { includeState: boolean; page?: number | undefined; perPage?: number | undefined; }; path: { id?: string | undefined; }; }, { query: { page?: number | undefined; perPage?: number | undefined; includeState?: boolean | \"true\" | \"false\" | undefined; }; path: { id?: string | undefined; }; }>, ", + "EntityManagerRouteHandlerResources", + ", ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -393,7 +385,7 @@ "section": "def-server.IKibanaResponse", "text": "IKibanaResponse" }, - ">; } & ", + ", ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -401,17 +393,17 @@ "section": "def-common.DefaultRouteCreateOptions", "text": "DefaultRouteCreateOptions" }, - "; \"DELETE /internal/entities/definition/{id}\": { endpoint: \"DELETE /internal/entities/definition/{id}\"; params?: Zod.ZodObject<{ path: Zod.ZodObject<{ id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; }, { id: string; }>; query: Zod.ZodObject<{ deleteData: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { deleteData: boolean; }, { deleteData?: boolean | \"true\" | \"false\" | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { deleteData: boolean; }; path: { id: string; }; }, { query: { deleteData?: boolean | \"true\" | \"false\" | undefined; }; path: { id: string; }; }> | undefined; handler: ({}: ", - "EntityManagerRouteDependencies", - " & ", + ">; \"DELETE /internal/entities/definition/{id}\": ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.DefaultRouteHandlerResources", - "text": "DefaultRouteHandlerResources" + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - " & { params: ZodMaybeOptional<{ query: { deleteData: boolean; }; path: { id: string; }; }>; }) => Promise<", + "<\"DELETE /internal/entities/definition/{id}\", Zod.ZodObject<{ path: Zod.ZodObject<{ id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; }, { id: string; }>; query: Zod.ZodObject<{ deleteData: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { deleteData: boolean; }, { deleteData?: boolean | \"true\" | \"false\" | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { deleteData: boolean; }; path: { id: string; }; }, { query: { deleteData?: boolean | \"true\" | \"false\" | undefined; }; path: { id: string; }; }>, ", + "EntityManagerRouteHandlerResources", + ", ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -419,7 +411,7 @@ "section": "def-server.IKibanaResponse", "text": "IKibanaResponse" }, - ">; } & ", + ", ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -427,7 +419,15 @@ "section": "def-common.DefaultRouteCreateOptions", "text": "DefaultRouteCreateOptions" }, - "; \"POST /internal/entities/definition\": { endpoint: \"POST /internal/entities/definition\"; params?: Zod.ZodObject<{ query: Zod.ZodObject<{ installOnly: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { installOnly: boolean; }, { installOnly?: boolean | \"true\" | \"false\" | undefined; }>; body: Zod.ZodObject<{ id: Zod.ZodString; version: Zod.ZodEffects; name: Zod.ZodString; description: Zod.ZodOptional; type: Zod.ZodString; filter: Zod.ZodOptional; indexPatterns: Zod.ZodArray; identityFields: Zod.ZodArray, Zod.ZodEffects]>, \"many\">; displayNameTemplate: Zod.ZodString; metadata: Zod.ZodOptional; limit: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { source: string; destination?: string | undefined; limit?: number | undefined; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, { destination: string; limit: number; source: string; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, Zod.ZodEffects]>, { destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; }, string | { source: string; destination?: string | undefined; limit?: number | undefined; }>, \"many\">>; metrics: Zod.ZodOptional; \"POST /internal/entities/definition\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/entities/definition\", Zod.ZodObject<{ query: Zod.ZodObject<{ installOnly: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { installOnly: boolean; }, { installOnly?: boolean | \"true\" | \"false\" | undefined; }>; body: Zod.ZodObject<{ id: Zod.ZodString; version: Zod.ZodEffects; name: Zod.ZodString; description: Zod.ZodOptional; type: Zod.ZodString; filter: Zod.ZodOptional; indexPatterns: Zod.ZodArray; identityFields: Zod.ZodArray, Zod.ZodEffects]>, \"many\">; displayNameTemplate: Zod.ZodString; metadata: Zod.ZodOptional; aggregation: Zod.ZodDefault; limit: Zod.ZodDefault; }, \"strip\", Zod.ZodTypeAny, { type: \"terms\"; limit: number; }, { type: \"terms\"; limit?: number | undefined; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"top_value\">; sort: Zod.ZodRecord, Zod.ZodLiteral<\"desc\">]>>; lookbackPeriod: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }>]>>>; }, \"strip\", Zod.ZodTypeAny, { source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; destination?: string | undefined; }, { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, Zod.ZodEffects]>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, \"many\">>; metrics: Zod.ZodOptional, \"many\">>; staticFields: Zod.ZodOptional>; managed: Zod.ZodDefault>; history: Zod.ZodObject<{ timestampField: Zod.ZodString; interval: Zod.ZodEffects; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }>>; installStatus: Zod.ZodOptional, Zod.ZodLiteral<\"upgrading\">, Zod.ZodLiteral<\"installed\">, Zod.ZodLiteral<\"failed\">]>>; installStartedAt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", - { - "pluginId": "@kbn/entities-schema", - "scope": "common", - "docId": "kibKbnEntitiesSchemaPluginApi", - "section": "def-common.BasicAggregations", - "text": "BasicAggregations" - }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }, { id: string; type: string; version: string; name: string; history: { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }; indexPatterns: string[]; identityFields: (string | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }>, \"many\">>; staticFields: Zod.ZodOptional>; managed: Zod.ZodDefault>; history: Zod.ZodObject<{ timestampField: Zod.ZodString; interval: Zod.ZodEffects; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }>>; installStatus: Zod.ZodOptional, Zod.ZodLiteral<\"upgrading\">, Zod.ZodLiteral<\"installed\">, Zod.ZodLiteral<\"failed\">]>>; installStartedAt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -483,7 +475,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; managed?: boolean | undefined; metadata?: (string | { source: string; destination?: string | undefined; limit?: number | undefined; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { installOnly: boolean; }; body: { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }, { id: string; type: string; version: string; name: string; history: { interval: string; timestampField: string; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }; indexPatterns: string[]; identityFields: (string | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -491,7 +483,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }; }, { query: { installOnly?: boolean | \"true\" | \"false\" | undefined; }; body: { id: string; type: string; version: string; name: string; history: { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }; indexPatterns: string[]; identityFields: (string | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; managed?: boolean | undefined; metadata?: (string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { installOnly: boolean; }; body: { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -499,17 +491,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; managed?: boolean | undefined; metadata?: (string | { source: string; destination?: string | undefined; limit?: number | undefined; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }; }> | undefined; handler: ({}: ", - "EntityManagerRouteDependencies", - " & ", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.DefaultRouteHandlerResources", - "text": "DefaultRouteHandlerResources" - }, - " & { params: ZodMaybeOptional<{ query: { installOnly: boolean; }; body: { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }; }, { query: { installOnly?: boolean | \"true\" | \"false\" | undefined; }; body: { id: string; type: string; version: string; name: string; history: { interval: string; timestampField: string; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }; indexPatterns: string[]; identityFields: (string | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -517,7 +499,9 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }; }>; }) => Promise<", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; managed?: boolean | undefined; metadata?: (string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }; }>, ", + "EntityManagerRouteHandlerResources", + ", ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -525,7 +509,7 @@ "section": "def-server.IKibanaResponse", "text": "IKibanaResponse" }, - ">; } & ", + ", ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -533,17 +517,17 @@ "section": "def-common.DefaultRouteCreateOptions", "text": "DefaultRouteCreateOptions" }, - "; \"DELETE /internal/entities/managed/enablement\": { endpoint: \"DELETE /internal/entities/managed/enablement\"; params?: Zod.ZodObject<{ query: Zod.ZodObject<{ deleteData: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { deleteData: boolean; }, { deleteData?: boolean | \"true\" | \"false\" | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { deleteData: boolean; }; }, { query: { deleteData?: boolean | \"true\" | \"false\" | undefined; }; }> | undefined; handler: ({}: ", - "EntityManagerRouteDependencies", - " & ", + ">; \"DELETE /internal/entities/managed/enablement\": ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.DefaultRouteHandlerResources", - "text": "DefaultRouteHandlerResources" + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - " & { params: ZodMaybeOptional<{ query: { deleteData: boolean; }; }>; }) => Promise<", + "<\"DELETE /internal/entities/managed/enablement\", Zod.ZodObject<{ query: Zod.ZodObject<{ deleteData: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { deleteData: boolean; }, { deleteData?: boolean | \"true\" | \"false\" | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { deleteData: boolean; }; }, { query: { deleteData?: boolean | \"true\" | \"false\" | undefined; }; }>, ", + "EntityManagerRouteHandlerResources", + ", ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -551,7 +535,7 @@ "section": "def-server.IKibanaResponse", "text": "IKibanaResponse" }, - ">; } & ", + ", ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -559,17 +543,17 @@ "section": "def-common.DefaultRouteCreateOptions", "text": "DefaultRouteCreateOptions" }, - "; \"PUT /internal/entities/managed/enablement\": { endpoint: \"PUT /internal/entities/managed/enablement\"; params?: Zod.ZodObject<{ query: Zod.ZodObject<{ installOnly: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { installOnly: boolean; }, { installOnly?: boolean | \"true\" | \"false\" | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { installOnly: boolean; }; }, { query: { installOnly?: boolean | \"true\" | \"false\" | undefined; }; }> | undefined; handler: ({}: ", - "EntityManagerRouteDependencies", - " & ", + ">; \"PUT /internal/entities/managed/enablement\": ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.DefaultRouteHandlerResources", - "text": "DefaultRouteHandlerResources" + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - " & { params: ZodMaybeOptional<{ query: { installOnly: boolean; }; }>; }) => Promise<", + "<\"PUT /internal/entities/managed/enablement\", Zod.ZodObject<{ query: Zod.ZodObject<{ installOnly: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { installOnly: boolean; }, { installOnly?: boolean | \"true\" | \"false\" | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { query: { installOnly: boolean; }; }, { query: { installOnly?: boolean | \"true\" | \"false\" | undefined; }; }>, ", + "EntityManagerRouteHandlerResources", + ", ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -577,7 +561,7 @@ "section": "def-server.IKibanaResponse", "text": "IKibanaResponse" }, - ">; } & ", + ", ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -585,17 +569,17 @@ "section": "def-common.DefaultRouteCreateOptions", "text": "DefaultRouteCreateOptions" }, - "; \"GET /internal/entities/managed/enablement\": { endpoint: \"GET /internal/entities/managed/enablement\"; params?: undefined; handler: ({}: ", - "EntityManagerRouteDependencies", - " & ", + ">; \"GET /internal/entities/managed/enablement\": ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.DefaultRouteHandlerResources", - "text": "DefaultRouteHandlerResources" + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ") => Promise<", + "<\"GET /internal/entities/managed/enablement\", undefined, ", + "EntityManagerRouteHandlerResources", + ", ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -603,7 +587,7 @@ "section": "def-server.IKibanaResponse", "text": "IKibanaResponse" }, - ">; } & ", + ", ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -611,7 +595,7 @@ "section": "def-common.DefaultRouteCreateOptions", "text": "DefaultRouteCreateOptions" }, - "; }" + ">; }" ], "path": "x-pack/plugins/observability_solution/entity_manager/server/routes/index.ts", "deprecated": false, @@ -620,19 +604,93 @@ } ], "objects": [], + "setup": { + "parentPluginId": "entityManager", + "id": "def-server.EntityManagerServerPluginSetup", + "type": "Interface", + "tags": [], + "label": "EntityManagerServerPluginSetup", + "description": [], + "path": "x-pack/plugins/observability_solution/entity_manager/server/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "setup", + "initialIsOpen": true + }, "start": { "parentPluginId": "entityManager", "id": "def-server.EntityManagerServerPluginStart", - "type": "Type", + "type": "Interface", "tags": [], "label": "EntityManagerServerPluginStart", "description": [], - "signature": [ - "{}" - ], "path": "x-pack/plugins/observability_solution/entity_manager/server/plugin.ts", "deprecated": false, "trackAdoption": false, + "children": [ + { + "parentPluginId": "entityManager", + "id": "def-server.EntityManagerServerPluginStart.getScopedClient", + "type": "Function", + "tags": [], + "label": "getScopedClient", + "description": [], + "signature": [ + "(options: { request: ", + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.KibanaRequest", + "text": "KibanaRequest" + }, + "; }) => Promise<", + "EntityClient", + ">" + ], + "path": "x-pack/plugins/observability_solution/entity_manager/server/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "entityManager", + "id": "def-server.EntityManagerServerPluginStart.getScopedClient.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "x-pack/plugins/observability_solution/entity_manager/server/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "entityManager", + "id": "def-server.EntityManagerServerPluginStart.getScopedClient.$1.request", + "type": "Object", + "tags": [], + "label": "request", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.KibanaRequest", + "text": "KibanaRequest" + }, + "" + ], + "path": "x-pack/plugins/observability_solution/entity_manager/server/plugin.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + } + ], "lifecycle": "start", "initialIsOpen": true } diff --git a/api_docs/entity_manager.mdx b/api_docs/entity_manager.mdx index 0f1a0b7a92995..247eb727bb5ab 100644 --- a/api_docs/entity_manager.mdx +++ b/api_docs/entity_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/entityManager title: "entityManager" image: https://source.unsplash.com/400x175/?github description: API docs for the entityManager plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'entityManager'] --- import entityManagerObj from './entity_manager.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entiti | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 17 | 0 | 17 | 2 | +| 20 | 0 | 20 | 3 | ## Client @@ -39,6 +39,9 @@ Contact [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entiti ## Server +### Setup + + ### Start diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index d0a63797083bc..269b8f45b676d 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/esql.mdx b/api_docs/esql.mdx index 7f07821475fd7..119acb6e5d70e 100644 --- a/api_docs/esql.mdx +++ b/api_docs/esql.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esql title: "esql" image: https://source.unsplash.com/400x175/?github description: API docs for the esql plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esql'] --- import esqlObj from './esql.devdocs.json'; diff --git a/api_docs/esql_data_grid.mdx b/api_docs/esql_data_grid.mdx index 5c8f86abd6a6c..74339796bbdfe 100644 --- a/api_docs/esql_data_grid.mdx +++ b/api_docs/esql_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esqlDataGrid title: "esqlDataGrid" image: https://source.unsplash.com/400x175/?github description: API docs for the esqlDataGrid plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esqlDataGrid'] --- import esqlDataGridObj from './esql_data_grid.devdocs.json'; diff --git a/api_docs/event_annotation.devdocs.json b/api_docs/event_annotation.devdocs.json index b82e76cd7f98c..98898fe9d597e 100644 --- a/api_docs/event_annotation.devdocs.json +++ b/api_docs/event_annotation.devdocs.json @@ -382,7 +382,7 @@ "section": "def-common.EventAnnotationGroupConfig", "text": "EventAnnotationGroupConfig" }, - ", \"ignoreGlobalFilters\" | \"annotations\" | \"indexPatternId\">[]; }) => ", + ", \"annotations\" | \"ignoreGlobalFilters\" | \"indexPatternId\">[]; }) => ", { "pluginId": "expressions", "scope": "common", @@ -434,7 +434,7 @@ "section": "def-common.EventAnnotationGroupConfig", "text": "EventAnnotationGroupConfig" }, - ", \"ignoreGlobalFilters\" | \"annotations\" | \"indexPatternId\">[]" + ", \"annotations\" | \"ignoreGlobalFilters\" | \"indexPatternId\">[]" ], "path": "packages/kbn-event-annotation-components/types.ts", "deprecated": false, diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index f5ff93cb65784..d18d268a0388c 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-09-11 +date: 2024-09-16 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 a870085e0efaa..d067c71442497 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-09-11 +date: 2024-09-16 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 5233179e19fd1..87e2bf5cae0ac 100644 --- a/api_docs/event_log.devdocs.json +++ b/api_docs/event_log.devdocs.json @@ -1450,7 +1450,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; usage?: Readonly<{ request_body_bytes?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; type_id?: string | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" + "(Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; usage?: Readonly<{ request_body_bytes?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; type_id?: string | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; created?: string | undefined; url?: string | undefined; provider?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false, @@ -1470,7 +1470,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; usage?: Readonly<{ request_body_bytes?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; type_id?: string | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; usage?: Readonly<{ request_body_bytes?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; type_id?: string | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; created?: string | undefined; url?: string | undefined; provider?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1485,7 +1485,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; usage?: Readonly<{ request_body_bytes?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; type_id?: string | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; provider?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}> | undefined" + "Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ id?: string | undefined; type?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; message?: string | undefined; tags?: string[] | undefined; rule?: Readonly<{ id?: string | undefined; version?: string | undefined; name?: string | undefined; license?: string | undefined; description?: string | undefined; uuid?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; action?: Readonly<{ id?: string | undefined; name?: string | undefined; execution?: Readonly<{ source?: string | undefined; uuid?: string | undefined; gen_ai?: Readonly<{ usage?: Readonly<{ prompt_tokens?: string | number | undefined; completion_tokens?: string | number | undefined; total_tokens?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; usage?: Readonly<{ request_body_bytes?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; type_id?: string | undefined; } & {}> | undefined; version?: string | undefined; alerting?: Readonly<{ outcome?: string | undefined; status?: string | undefined; summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; alert?: Readonly<{ rule?: Readonly<{ consumer?: string | undefined; revision?: string | number | undefined; execution?: Readonly<{ uuid?: string | undefined; status?: string | undefined; metrics?: Readonly<{ total_search_duration_ms?: string | number | undefined; total_indexing_duration_ms?: string | number | undefined; number_of_triggered_actions?: string | number | undefined; number_of_generated_actions?: string | number | undefined; alert_counts?: Readonly<{ recovered?: string | number | undefined; active?: string | number | undefined; new?: string | number | undefined; } & {}> | undefined; number_of_delayed_alerts?: string | number | undefined; number_of_searches?: string | number | undefined; es_search_duration_ms?: string | number | undefined; execution_gap_duration_s?: string | number | undefined; rule_type_run_duration_ms?: string | number | undefined; process_alerts_duration_ms?: string | number | undefined; trigger_actions_duration_ms?: string | number | undefined; process_rule_duration_ms?: string | number | undefined; claim_to_start_duration_ms?: string | number | undefined; persist_alerts_duration_ms?: string | number | undefined; prepare_rule_duration_ms?: string | number | undefined; total_run_duration_ms?: string | number | undefined; total_enrichment_duration_ms?: string | number | undefined; } & {}> | undefined; status_order?: string | number | undefined; backfill?: Readonly<{ id?: string | undefined; start?: string | undefined; interval?: string | undefined; } & {}> | undefined; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; flapping?: boolean | undefined; uuid?: string | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; space_ids?: string[] | undefined; server_uuid?: string | undefined; saved_objects?: Readonly<{ id?: string | undefined; type?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; } & {}> | undefined; event?: Readonly<{ id?: string | undefined; type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; start?: string | undefined; end?: string | undefined; outcome?: string | undefined; duration?: string | number | undefined; severity?: string | number | undefined; category?: string[] | undefined; timezone?: string | undefined; risk_score?: number | undefined; code?: string | undefined; created?: string | undefined; url?: string | undefined; provider?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; reference?: string | undefined; risk_score_norm?: number | undefined; sequence?: string | number | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; user?: Readonly<{ id?: string | undefined; name?: string | undefined; } & {}> | undefined; } & {}> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 683162dc055d8..aac4d166d85aa 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.devdocs.json'; diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 23750a173be15..d7a6fe407fc8e 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-09-11 +date: 2024-09-16 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 321c79ede411d..37aa871c2f9e1 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index 03c332ba4e12e..e8746ac39cdf7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 05d2610986b27..375884c2d42b0 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-09-11 +date: 2024-09-16 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 7bd90a695906a..308f5ebd36aa6 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-09-11 +date: 2024-09-16 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 0f191f8528808..b8f0d175507a2 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-09-11 +date: 2024-09-16 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 b0f617faea5b2..62dc073388a35 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 63f01dde86187..e6811e7f1090c 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-09-11 +date: 2024-09-16 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 3f788fb742614..50d72b87f8ead 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-09-11 +date: 2024-09-16 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 a12fe79110feb..2c28f87b7732e 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-09-11 +date: 2024-09-16 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 c0b17def4bda0..55d6f9e9a162f 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-09-11 +date: 2024-09-16 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 7e213af22d8be..47539dae74edd 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-09-11 +date: 2024-09-16 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 c75fb012b1879..d34aeab32c4cb 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index b34ea2b8ba3e7..f28a499fe5d78 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-09-11 +date: 2024-09-16 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 bd5cba1457945..79c72f7198445 100644 --- a/api_docs/expressions.devdocs.json +++ b/api_docs/expressions.devdocs.json @@ -7590,7 +7590,7 @@ "\nTracks state of execution.\n\n- `not-started` - before .start() method was called.\n- `pending` - immediately after .start() method is called.\n- `result` - when expression execution completed.\n- `error` - when execution failed with error." ], "signature": [ - "\"error\" | \"pending\" | \"not-started\" | \"result\"" + "\"error\" | \"pending\" | \"result\" | \"not-started\"" ], "path": "src/plugins/expressions/common/execution/container.ts", "deprecated": false, @@ -19098,7 +19098,7 @@ "\nTracks state of execution.\n\n- `not-started` - before .start() method was called.\n- `pending` - immediately after .start() method is called.\n- `result` - when expression execution completed.\n- `error` - when execution failed with error." ], "signature": [ - "\"error\" | \"pending\" | \"not-started\" | \"result\"" + "\"error\" | \"pending\" | \"result\" | \"not-started\"" ], "path": "src/plugins/expressions/common/execution/container.ts", "deprecated": false, @@ -31534,7 +31534,7 @@ "\nTracks state of execution.\n\n- `not-started` - before .start() method was called.\n- `pending` - immediately after .start() method is called.\n- `result` - when expression execution completed.\n- `error` - when execution failed with error." ], "signature": [ - "\"error\" | \"pending\" | \"not-started\" | \"result\"" + "\"error\" | \"pending\" | \"result\" | \"not-started\"" ], "path": "src/plugins/expressions/common/execution/container.ts", "deprecated": false, diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index f0db4e5fb7076..7aee414de7a1a 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.devdocs.json b/api_docs/features.devdocs.json index 6b01f79e4bb96..3013013b1bfb8 100644 --- a/api_docs/features.devdocs.json +++ b/api_docs/features.devdocs.json @@ -64,7 +64,15 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; composedOf?: readonly Readonly<{ feature: string; privileges: readonly string[]; }>[] | undefined; }>; }>[]; }> | undefined; hidden?: boolean | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; app?: readonly string[] | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; composedOf?: readonly Readonly<{ feature: string; privileges: readonly string[]; }>[] | undefined; }>; }>[]; }> | undefined; hidden?: boolean | undefined; scope?: readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -275,6 +283,28 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "features", + "id": "def-public.KibanaFeature.scope", + "type": "Object", + "tags": [], + "label": "scope", + "description": [], + "signature": [ + "readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/features/common/kibana_feature.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "features", "id": "def-public.KibanaFeature.toRaw", @@ -836,6 +866,30 @@ "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "features", + "id": "def-public.KibanaFeatureConfig.scope", + "type": "Object", + "tags": [], + "label": "scope", + "description": [ + "\nIndicates whether the feature is available in Security Feature Privileges and the Spaces Visibility Toggles." + ], + "signature": [ + "readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/features/common/kibana_feature.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -1034,7 +1088,22 @@ "initialIsOpen": false } ], - "enums": [], + "enums": [ + { + "parentPluginId": "features", + "id": "def-public.KibanaFeatureScope", + "type": "Enum", + "tags": [], + "label": "KibanaFeatureScope", + "description": [ + "\nEnum for allowed feature scope values.\nsecurity - The feature is available in Security Feature Privileges.\nspaces - The feature is available in the Spaces Visibility Toggles." + ], + "path": "x-pack/plugins/features/common/kibana_feature.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "misc": [], "objects": [], "setup": { @@ -1326,7 +1395,15 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; composedOf?: readonly Readonly<{ feature: string; privileges: readonly string[]; }>[] | undefined; }>; }>[]; }> | undefined; hidden?: boolean | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; app?: readonly string[] | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; composedOf?: readonly Readonly<{ feature: string; privileges: readonly string[]; }>[] | undefined; }>; }>[]; }> | undefined; hidden?: boolean | undefined; scope?: readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -1537,6 +1614,28 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "features", + "id": "def-server.KibanaFeature.scope", + "type": "Object", + "tags": [], + "label": "scope", + "description": [], + "signature": [ + "readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/features/common/kibana_feature.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "features", "id": "def-server.KibanaFeature.toRaw", @@ -2852,6 +2951,30 @@ "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "features", + "id": "def-server.KibanaFeatureConfig.scope", + "type": "Object", + "tags": [], + "label": "scope", + "description": [ + "\nIndicates whether the feature is available in Security Feature Privileges and the Spaces Visibility Toggles." + ], + "signature": [ + "readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/features/common/kibana_feature.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -3125,7 +3248,15 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; composedOf?: readonly Readonly<{ feature: string; privileges: readonly string[]; }>[] | undefined; }>; }>[]; }> | undefined; hidden?: boolean | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; app?: readonly string[] | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; requireAllSpaces?: boolean | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; composedOf?: readonly Readonly<{ feature: string; privileges: readonly string[]; }>[] | undefined; }>; }>[]; }> | undefined; hidden?: boolean | undefined; scope?: readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -3336,6 +3467,28 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "features", + "id": "def-common.KibanaFeature.scope", + "type": "Object", + "tags": [], + "label": "scope", + "description": [], + "signature": [ + "readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/features/common/kibana_feature.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "features", "id": "def-common.KibanaFeature.toRaw", @@ -3403,7 +3556,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; app?: readonly string[] | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }>" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3440,7 +3593,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; app?: readonly string[] | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3484,7 +3637,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; app?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"read\" | \"all\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; push?: readonly string[] | undefined; create?: readonly string[] | undefined; read?: readonly string[] | undefined; update?: readonly string[] | undefined; delete?: readonly string[] | undefined; settings?: readonly string[] | undefined; }> | undefined; disabled?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; app?: readonly string[] | undefined; ui: readonly string[]; catalogue?: readonly string[] | undefined; requireAllSpaces?: boolean | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; description?: string | undefined; }" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -4254,6 +4407,30 @@ "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "features", + "id": "def-common.KibanaFeatureConfig.scope", + "type": "Object", + "tags": [], + "label": "scope", + "description": [ + "\nIndicates whether the feature is available in Security Feature Privileges and the Spaces Visibility Toggles." + ], + "signature": [ + "readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined" + ], + "path": "x-pack/plugins/features/common/kibana_feature.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -4508,7 +4685,22 @@ "initialIsOpen": false } ], - "enums": [], + "enums": [ + { + "parentPluginId": "features", + "id": "def-common.KibanaFeatureScope", + "type": "Enum", + "tags": [], + "label": "KibanaFeatureScope", + "description": [ + "\nEnum for allowed feature scope values.\nsecurity - The feature is available in Security Feature Privileges.\nspaces - The feature is available in the Spaces Visibility Toggles." + ], + "path": "x-pack/plugins/features/common/kibana_feature.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "misc": [ { "parentPluginId": "features", diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 99f4356034507..3d14fcc6470f7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.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 | |-------------------|-----------|------------------------|-----------------| -| 247 | 0 | 102 | 2 | +| 255 | 0 | 105 | 2 | ## Client @@ -37,6 +37,9 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core ### Interfaces +### Enums + + ## Server ### Objects @@ -56,6 +59,9 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core ### Interfaces +### Enums + + ### Consts, variables and types diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 95f4cd1420e47..4bb84c6945011 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/fields_metadata.devdocs.json b/api_docs/fields_metadata.devdocs.json index fb8dbbf87b1f8..cf176b0b6c99b 100644 --- a/api_docs/fields_metadata.devdocs.json +++ b/api_docs/fields_metadata.devdocs.json @@ -160,7 +160,7 @@ "label": "ExtractedDatasetFields", "description": [], "signature": [ - "{ [x: string]: { name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }; }" + "{ [x: string]: { name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"metadata\" | \"integration\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }; }" ], "path": "x-pack/plugins/fields_metadata/server/services/fields_metadata/repositories/types.ts", "deprecated": false, @@ -336,7 +336,7 @@ "label": "pick", "description": [], "signature": [ - "(props: (\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]) => { name?: string | undefined; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" + "(props: (\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]) => { name?: string | undefined; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"metadata\" | \"integration\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/field_metadata.ts", "deprecated": false, @@ -368,7 +368,7 @@ "label": "toPlain", "description": [], "signature": [ - "() => { name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" + "() => { name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"metadata\" | \"integration\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/field_metadata.ts", "deprecated": false, @@ -384,7 +384,7 @@ "label": "create", "description": [], "signature": [ - "(fieldMetadata: { name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }) => ", + "(fieldMetadata: { name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"metadata\" | \"integration\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }) => ", { "pluginId": "fieldsMetadata", "scope": "common", @@ -405,7 +405,7 @@ "label": "fieldMetadata", "description": [], "signature": [ - "{ name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" + "{ name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"metadata\" | \"integration\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/field_metadata.ts", "deprecated": false, @@ -454,7 +454,7 @@ "label": "pick", "description": [], "signature": [ - "(attributes: (\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]) => Record" + "(attributes: (\"source\" | \"type\" | \"normalize\" | \"short\" | \"format\" | \"name\" | \"index\" | \"description\" | \"pattern\" | \"doc_values\" | \"ignore_above\" | \"required\" | \"beta\" | \"level\" | \"allowed_values\" | \"dashed_name\" | \"example\" | \"expected_values\" | \"flat_name\" | \"input_format\" | \"multi_fields\" | \"object_type\" | \"original_fieldset\" | \"output_format\" | \"output_precision\" | \"scaling_factor\" | \"documentation_url\")[]) => Record" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/fields_metadata_dictionary.ts", "deprecated": false, @@ -486,7 +486,7 @@ "label": "toPlain", "description": [], "signature": [ - "() => Record" + "() => Record" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/fields_metadata_dictionary.ts", "deprecated": false, @@ -556,7 +556,7 @@ "section": "def-common.FieldMetadata", "text": "FieldMetadata" }, - " extends { name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" + " extends { name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"metadata\" | \"integration\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/models/field_metadata.ts", "deprecated": false, @@ -620,7 +620,7 @@ "label": "FieldMetadataPlain", "description": [], "signature": [ - "{ name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" + "{ name: string; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"metadata\" | \"integration\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/types.ts", "deprecated": false, @@ -635,7 +635,7 @@ "label": "FieldName", "description": [], "signature": [ - "\"@timestamp\" | \"event.sequence\" | \"event.start\" | \"event.end\" | \"event.provider\" | \"event.duration\" | \"event.action\" | \"message\" | \"event.outcome\" | \"tags\" | \"event.kind\" | \"event.original\" | \"agent.name\" | \"container.id\" | \"host.name\" | \"labels\" | \"service.environment\" | \"service.name\" | \"ecs.version\" | \"agent.build.original\" | \"agent.ephemeral_id\" | \"agent.id\" | \"agent.type\" | \"agent.version\" | \"client.address\" | \"client.as.number\" | \"client.as.organization.name\" | \"client.bytes\" | \"client.domain\" | \"client.geo.city_name\" | \"client.geo.continent_code\" | \"client.geo.continent_name\" | \"client.geo.country_iso_code\" | \"client.geo.country_name\" | \"client.geo.location\" | \"client.geo.name\" | \"client.geo.postal_code\" | \"client.geo.region_iso_code\" | \"client.geo.region_name\" | \"client.geo.timezone\" | \"client.ip\" | \"client.mac\" | \"client.nat.ip\" | \"client.nat.port\" | \"client.packets\" | \"client.port\" | \"client.registered_domain\" | \"client.subdomain\" | \"client.top_level_domain\" | \"client.user.domain\" | \"client.user.email\" | \"client.user.full_name\" | \"client.user.group.domain\" | \"client.user.group.id\" | \"client.user.group.name\" | \"client.user.hash\" | \"client.user.id\" | \"client.user.name\" | \"client.user.roles\" | \"cloud.account.id\" | \"cloud.account.name\" | \"cloud.availability_zone\" | \"cloud.instance.id\" | \"cloud.instance.name\" | \"cloud.machine.type\" | \"cloud.origin.account.id\" | \"cloud.origin.account.name\" | \"cloud.origin.availability_zone\" | \"cloud.origin.instance.id\" | \"cloud.origin.instance.name\" | \"cloud.origin.machine.type\" | \"cloud.origin.project.id\" | \"cloud.origin.project.name\" | \"cloud.origin.provider\" | \"cloud.origin.region\" | \"cloud.origin.service.name\" | \"cloud.project.id\" | \"cloud.project.name\" | \"cloud.provider\" | \"cloud.region\" | \"cloud.service.name\" | \"cloud.target.account.id\" | \"cloud.target.account.name\" | \"cloud.target.availability_zone\" | \"cloud.target.instance.id\" | \"cloud.target.instance.name\" | \"cloud.target.machine.type\" | \"cloud.target.project.id\" | \"cloud.target.project.name\" | \"cloud.target.provider\" | \"cloud.target.region\" | \"cloud.target.service.name\" | \"container.cpu.usage\" | \"container.disk.read.bytes\" | \"container.disk.write.bytes\" | \"container.image.hash.all\" | \"container.image.name\" | \"container.image.tag\" | \"container.labels\" | \"container.memory.usage\" | \"container.name\" | \"container.network.egress.bytes\" | \"container.network.ingress.bytes\" | \"container.runtime\" | \"container.security_context.privileged\" | \"destination.address\" | \"destination.as.number\" | \"destination.as.organization.name\" | \"destination.bytes\" | \"destination.domain\" | \"destination.geo.city_name\" | \"destination.geo.continent_code\" | \"destination.geo.continent_name\" | \"destination.geo.country_iso_code\" | \"destination.geo.country_name\" | \"destination.geo.location\" | \"destination.geo.name\" | \"destination.geo.postal_code\" | \"destination.geo.region_iso_code\" | \"destination.geo.region_name\" | \"destination.geo.timezone\" | \"destination.ip\" | \"destination.mac\" | \"destination.nat.ip\" | \"destination.nat.port\" | \"destination.packets\" | \"destination.port\" | \"destination.registered_domain\" | \"destination.subdomain\" | \"destination.top_level_domain\" | \"destination.user.domain\" | \"destination.user.email\" | \"destination.user.full_name\" | \"destination.user.group.domain\" | \"destination.user.group.id\" | \"destination.user.group.name\" | \"destination.user.hash\" | \"destination.user.id\" | \"destination.user.name\" | \"destination.user.roles\" | \"device.id\" | \"device.manufacturer\" | \"device.model.identifier\" | \"device.model.name\" | \"dll.code_signature.digest_algorithm\" | \"dll.code_signature.exists\" | \"dll.code_signature.signing_id\" | \"dll.code_signature.status\" | \"dll.code_signature.subject_name\" | \"dll.code_signature.team_id\" | \"dll.code_signature.timestamp\" | \"dll.code_signature.trusted\" | \"dll.code_signature.valid\" | \"dll.hash.md5\" | \"dll.hash.sha1\" | \"dll.hash.sha256\" | \"dll.hash.sha384\" | \"dll.hash.sha512\" | \"dll.hash.ssdeep\" | \"dll.hash.tlsh\" | \"dll.name\" | \"dll.path\" | \"dll.pe.architecture\" | \"dll.pe.company\" | \"dll.pe.description\" | \"dll.pe.file_version\" | \"dll.pe.go_import_hash\" | \"dll.pe.go_imports\" | \"dll.pe.go_imports_names_entropy\" | \"dll.pe.go_imports_names_var_entropy\" | \"dll.pe.go_stripped\" | \"dll.pe.imphash\" | \"dll.pe.import_hash\" | \"dll.pe.imports\" | \"dll.pe.imports_names_entropy\" | \"dll.pe.imports_names_var_entropy\" | \"dll.pe.original_file_name\" | \"dll.pe.pehash\" | \"dll.pe.product\" | \"dll.pe.sections\" | \"dns.answers\" | \"dns.header_flags\" | \"dns.id\" | \"dns.op_code\" | \"dns.question.class\" | \"dns.question.name\" | \"dns.question.registered_domain\" | \"dns.question.subdomain\" | \"dns.question.top_level_domain\" | \"dns.question.type\" | \"dns.resolved_ip\" | \"dns.response_code\" | \"dns.type\" | \"email.attachments\" | \"file.extension\" | \"file.hash.md5\" | \"file.hash.sha1\" | \"file.hash.sha256\" | \"file.hash.sha384\" | \"file.hash.sha512\" | \"file.hash.ssdeep\" | \"file.hash.tlsh\" | \"file.mime_type\" | \"file.name\" | \"file.size\" | \"email.bcc.address\" | \"email.cc.address\" | \"email.content_type\" | \"email.delivery_timestamp\" | \"email.direction\" | \"email.from.address\" | \"email.local_id\" | \"email.message_id\" | \"email.origination_timestamp\" | \"email.reply_to.address\" | \"email.sender.address\" | \"email.subject\" | \"email.to.address\" | \"email.x_mailer\" | \"error.code\" | \"error.id\" | \"error.message\" | \"error.stack_trace\" | \"error.type\" | \"event.agent_id_status\" | \"event.category\" | \"event.code\" | \"event.created\" | \"event.dataset\" | \"event.hash\" | \"event.id\" | \"event.ingested\" | \"event.module\" | \"event.reason\" | \"event.reference\" | \"event.risk_score\" | \"event.risk_score_norm\" | \"event.severity\" | \"event.timezone\" | \"event.type\" | \"event.url\" | \"faas.coldstart\" | \"faas.execution\" | \"faas.id\" | \"faas.name\" | \"faas.version\" | \"file.accessed\" | \"file.attributes\" | \"file.code_signature.digest_algorithm\" | \"file.code_signature.exists\" | \"file.code_signature.signing_id\" | \"file.code_signature.status\" | \"file.code_signature.subject_name\" | \"file.code_signature.team_id\" | \"file.code_signature.timestamp\" | \"file.code_signature.trusted\" | \"file.code_signature.valid\" | \"file.created\" | \"file.ctime\" | \"file.device\" | \"file.directory\" | \"file.drive_letter\" | \"file.elf.architecture\" | \"file.elf.byte_order\" | \"file.elf.cpu_type\" | \"file.elf.creation_date\" | \"file.elf.exports\" | \"file.elf.go_import_hash\" | \"file.elf.go_imports\" | \"file.elf.go_imports_names_entropy\" | \"file.elf.go_imports_names_var_entropy\" | \"file.elf.go_stripped\" | \"file.elf.header.abi_version\" | \"file.elf.header.class\" | \"file.elf.header.data\" | \"file.elf.header.entrypoint\" | \"file.elf.header.object_version\" | \"file.elf.header.os_abi\" | \"file.elf.header.type\" | \"file.elf.header.version\" | \"file.elf.import_hash\" | \"file.elf.imports\" | \"file.elf.imports_names_entropy\" | \"file.elf.imports_names_var_entropy\" | \"file.elf.sections\" | \"file.elf.segments\" | \"file.elf.shared_libraries\" | \"file.elf.telfhash\" | \"file.fork_name\" | \"file.gid\" | \"file.group\" | \"file.inode\" | \"file.macho.go_import_hash\" | \"file.macho.go_imports\" | \"file.macho.go_imports_names_entropy\" | \"file.macho.go_imports_names_var_entropy\" | \"file.macho.go_stripped\" | \"file.macho.import_hash\" | \"file.macho.imports\" | \"file.macho.imports_names_entropy\" | \"file.macho.imports_names_var_entropy\" | \"file.macho.sections\" | \"file.macho.symhash\" | \"file.mode\" | \"file.mtime\" | \"file.owner\" | \"file.path\" | \"file.pe.architecture\" | \"file.pe.company\" | \"file.pe.description\" | \"file.pe.file_version\" | \"file.pe.go_import_hash\" | \"file.pe.go_imports\" | \"file.pe.go_imports_names_entropy\" | \"file.pe.go_imports_names_var_entropy\" | \"file.pe.go_stripped\" | \"file.pe.imphash\" | \"file.pe.import_hash\" | \"file.pe.imports\" | \"file.pe.imports_names_entropy\" | \"file.pe.imports_names_var_entropy\" | \"file.pe.original_file_name\" | \"file.pe.pehash\" | \"file.pe.product\" | \"file.pe.sections\" | \"file.target_path\" | \"file.type\" | \"file.uid\" | \"file.x509.alternative_names\" | \"file.x509.issuer.common_name\" | \"file.x509.issuer.country\" | \"file.x509.issuer.distinguished_name\" | \"file.x509.issuer.locality\" | \"file.x509.issuer.organization\" | \"file.x509.issuer.organizational_unit\" | \"file.x509.issuer.state_or_province\" | \"file.x509.not_after\" | \"file.x509.not_before\" | \"file.x509.public_key_algorithm\" | \"file.x509.public_key_curve\" | \"file.x509.public_key_exponent\" | \"file.x509.public_key_size\" | \"file.x509.serial_number\" | \"file.x509.signature_algorithm\" | \"file.x509.subject.common_name\" | \"file.x509.subject.country\" | \"file.x509.subject.distinguished_name\" | \"file.x509.subject.locality\" | \"file.x509.subject.organization\" | \"file.x509.subject.organizational_unit\" | \"file.x509.subject.state_or_province\" | \"file.x509.version_number\" | \"group.domain\" | \"group.id\" | \"group.name\" | \"host.architecture\" | \"host.boot.id\" | \"host.cpu.usage\" | \"host.disk.read.bytes\" | \"host.disk.write.bytes\" | \"host.domain\" | \"host.geo.city_name\" | \"host.geo.continent_code\" | \"host.geo.continent_name\" | \"host.geo.country_iso_code\" | \"host.geo.country_name\" | \"host.geo.location\" | \"host.geo.name\" | \"host.geo.postal_code\" | \"host.geo.region_iso_code\" | \"host.geo.region_name\" | \"host.geo.timezone\" | \"host.hostname\" | \"host.id\" | \"host.ip\" | \"host.mac\" | \"host.network.egress.bytes\" | \"host.network.egress.packets\" | \"host.network.ingress.bytes\" | \"host.network.ingress.packets\" | \"host.os.family\" | \"host.os.full\" | \"host.os.kernel\" | \"host.os.name\" | \"host.os.platform\" | \"host.os.type\" | \"host.os.version\" | \"host.pid_ns_ino\" | \"host.risk.calculated_level\" | \"host.risk.calculated_score\" | \"host.risk.calculated_score_norm\" | \"host.risk.static_level\" | \"host.risk.static_score\" | \"host.risk.static_score_norm\" | \"host.type\" | \"host.uptime\" | \"http.request.body.bytes\" | \"http.request.body.content\" | \"http.request.bytes\" | \"http.request.id\" | \"http.request.method\" | \"http.request.mime_type\" | \"http.request.referrer\" | \"http.response.body.bytes\" | \"http.response.body.content\" | \"http.response.bytes\" | \"http.response.mime_type\" | \"http.response.status_code\" | \"http.version\" | \"log.file.path\" | \"log.level\" | \"log.logger\" | \"log.origin.file.line\" | \"log.origin.file.name\" | \"log.origin.function\" | \"log.syslog\" | \"network.application\" | \"network.bytes\" | \"network.community_id\" | \"network.direction\" | \"network.forwarded_ip\" | \"network.iana_number\" | \"network.inner\" | \"network.name\" | \"network.packets\" | \"network.protocol\" | \"network.transport\" | \"network.type\" | \"network.vlan.id\" | \"network.vlan.name\" | \"observer.egress\" | \"observer.geo.city_name\" | \"observer.geo.continent_code\" | \"observer.geo.continent_name\" | \"observer.geo.country_iso_code\" | \"observer.geo.country_name\" | \"observer.geo.location\" | \"observer.geo.name\" | \"observer.geo.postal_code\" | \"observer.geo.region_iso_code\" | \"observer.geo.region_name\" | \"observer.geo.timezone\" | \"observer.hostname\" | \"observer.ingress\" | \"observer.ip\" | \"observer.mac\" | \"observer.name\" | \"observer.os.family\" | \"observer.os.full\" | \"observer.os.kernel\" | \"observer.os.name\" | \"observer.os.platform\" | \"observer.os.type\" | \"observer.os.version\" | \"observer.product\" | \"observer.serial_number\" | \"observer.type\" | \"observer.vendor\" | \"observer.version\" | \"orchestrator.api_version\" | \"orchestrator.cluster.id\" | \"orchestrator.cluster.name\" | \"orchestrator.cluster.url\" | \"orchestrator.cluster.version\" | \"orchestrator.namespace\" | \"orchestrator.organization\" | \"orchestrator.resource.annotation\" | \"orchestrator.resource.id\" | \"orchestrator.resource.ip\" | \"orchestrator.resource.label\" | \"orchestrator.resource.name\" | \"orchestrator.resource.parent.type\" | \"orchestrator.resource.type\" | \"orchestrator.type\" | \"organization.id\" | \"organization.name\" | \"package.architecture\" | \"package.build_version\" | \"package.checksum\" | \"package.description\" | \"package.install_scope\" | \"package.installed\" | \"package.license\" | \"package.name\" | \"package.path\" | \"package.reference\" | \"package.size\" | \"package.type\" | \"package.version\" | \"process.args\" | \"process.args_count\" | \"process.code_signature.digest_algorithm\" | \"process.code_signature.exists\" | \"process.code_signature.signing_id\" | \"process.code_signature.status\" | \"process.code_signature.subject_name\" | \"process.code_signature.team_id\" | \"process.code_signature.timestamp\" | \"process.code_signature.trusted\" | \"process.code_signature.valid\" | \"process.command_line\" | \"process.elf.architecture\" | \"process.elf.byte_order\" | \"process.elf.cpu_type\" | \"process.elf.creation_date\" | \"process.elf.exports\" | \"process.elf.go_import_hash\" | \"process.elf.go_imports\" | \"process.elf.go_imports_names_entropy\" | \"process.elf.go_imports_names_var_entropy\" | \"process.elf.go_stripped\" | \"process.elf.header.abi_version\" | \"process.elf.header.class\" | \"process.elf.header.data\" | \"process.elf.header.entrypoint\" | \"process.elf.header.object_version\" | \"process.elf.header.os_abi\" | \"process.elf.header.type\" | \"process.elf.header.version\" | \"process.elf.import_hash\" | \"process.elf.imports\" | \"process.elf.imports_names_entropy\" | \"process.elf.imports_names_var_entropy\" | \"process.elf.sections\" | \"process.elf.segments\" | \"process.elf.shared_libraries\" | \"process.elf.telfhash\" | \"process.end\" | \"process.entity_id\" | \"process.entry_leader.args\" | \"process.entry_leader.args_count\" | \"process.entry_leader.attested_groups.name\" | \"process.entry_leader.attested_user.id\" | \"process.entry_leader.attested_user.name\" | \"process.entry_leader.command_line\" | \"process.entry_leader.entity_id\" | \"process.entry_leader.entry_meta.source.ip\" | \"process.entry_leader.entry_meta.type\" | \"process.entry_leader.executable\" | \"process.entry_leader.group.id\" | \"process.entry_leader.group.name\" | \"process.entry_leader.interactive\" | \"process.entry_leader.name\" | \"process.entry_leader.parent.entity_id\" | \"process.entry_leader.parent.pid\" | \"process.entry_leader.parent.session_leader.entity_id\" | \"process.entry_leader.parent.session_leader.pid\" | \"process.entry_leader.parent.session_leader.start\" | \"process.entry_leader.parent.session_leader.vpid\" | \"process.entry_leader.parent.start\" | \"process.entry_leader.parent.vpid\" | \"process.entry_leader.pid\" | \"process.entry_leader.real_group.id\" | \"process.entry_leader.real_group.name\" | \"process.entry_leader.real_user.id\" | \"process.entry_leader.real_user.name\" | \"process.entry_leader.same_as_process\" | \"process.entry_leader.saved_group.id\" | \"process.entry_leader.saved_group.name\" | \"process.entry_leader.saved_user.id\" | \"process.entry_leader.saved_user.name\" | \"process.entry_leader.start\" | \"process.entry_leader.supplemental_groups.id\" | \"process.entry_leader.supplemental_groups.name\" | \"process.entry_leader.tty\" | \"process.entry_leader.user.id\" | \"process.entry_leader.user.name\" | \"process.entry_leader.vpid\" | \"process.entry_leader.working_directory\" | \"process.env_vars\" | \"process.executable\" | \"process.exit_code\" | \"process.group_leader.args\" | \"process.group_leader.args_count\" | \"process.group_leader.command_line\" | \"process.group_leader.entity_id\" | \"process.group_leader.executable\" | \"process.group_leader.group.id\" | \"process.group_leader.group.name\" | \"process.group_leader.interactive\" | \"process.group_leader.name\" | \"process.group_leader.pid\" | \"process.group_leader.real_group.id\" | \"process.group_leader.real_group.name\" | \"process.group_leader.real_user.id\" | \"process.group_leader.real_user.name\" | \"process.group_leader.same_as_process\" | \"process.group_leader.saved_group.id\" | \"process.group_leader.saved_group.name\" | \"process.group_leader.saved_user.id\" | \"process.group_leader.saved_user.name\" | \"process.group_leader.start\" | \"process.group_leader.supplemental_groups.id\" | \"process.group_leader.supplemental_groups.name\" | \"process.group_leader.tty\" | \"process.group_leader.user.id\" | \"process.group_leader.user.name\" | \"process.group_leader.vpid\" | \"process.group_leader.working_directory\" | \"process.hash.md5\" | \"process.hash.sha1\" | \"process.hash.sha256\" | \"process.hash.sha384\" | \"process.hash.sha512\" | \"process.hash.ssdeep\" | \"process.hash.tlsh\" | \"process.interactive\" | \"process.io\" | \"process.macho.go_import_hash\" | \"process.macho.go_imports\" | \"process.macho.go_imports_names_entropy\" | \"process.macho.go_imports_names_var_entropy\" | \"process.macho.go_stripped\" | \"process.macho.import_hash\" | \"process.macho.imports\" | \"process.macho.imports_names_entropy\" | \"process.macho.imports_names_var_entropy\" | \"process.macho.sections\" | \"process.macho.symhash\" | \"process.name\" | \"process.parent.args\" | \"process.parent.args_count\" | \"process.parent.code_signature.digest_algorithm\" | \"process.parent.code_signature.exists\" | \"process.parent.code_signature.signing_id\" | \"process.parent.code_signature.status\" | \"process.parent.code_signature.subject_name\" | \"process.parent.code_signature.team_id\" | \"process.parent.code_signature.timestamp\" | \"process.parent.code_signature.trusted\" | \"process.parent.code_signature.valid\" | \"process.parent.command_line\" | \"process.parent.elf.architecture\" | \"process.parent.elf.byte_order\" | \"process.parent.elf.cpu_type\" | \"process.parent.elf.creation_date\" | \"process.parent.elf.exports\" | \"process.parent.elf.go_import_hash\" | \"process.parent.elf.go_imports\" | \"process.parent.elf.go_imports_names_entropy\" | \"process.parent.elf.go_imports_names_var_entropy\" | \"process.parent.elf.go_stripped\" | \"process.parent.elf.header.abi_version\" | \"process.parent.elf.header.class\" | \"process.parent.elf.header.data\" | \"process.parent.elf.header.entrypoint\" | \"process.parent.elf.header.object_version\" | \"process.parent.elf.header.os_abi\" | \"process.parent.elf.header.type\" | \"process.parent.elf.header.version\" | \"process.parent.elf.import_hash\" | \"process.parent.elf.imports\" | \"process.parent.elf.imports_names_entropy\" | \"process.parent.elf.imports_names_var_entropy\" | \"process.parent.elf.sections\" | \"process.parent.elf.segments\" | \"process.parent.elf.shared_libraries\" | \"process.parent.elf.telfhash\" | \"process.parent.end\" | \"process.parent.entity_id\" | \"process.parent.executable\" | \"process.parent.exit_code\" | \"process.parent.group.id\" | \"process.parent.group.name\" | \"process.parent.group_leader.entity_id\" | \"process.parent.group_leader.pid\" | \"process.parent.group_leader.start\" | \"process.parent.group_leader.vpid\" | \"process.parent.hash.md5\" | \"process.parent.hash.sha1\" | \"process.parent.hash.sha256\" | \"process.parent.hash.sha384\" | \"process.parent.hash.sha512\" | \"process.parent.hash.ssdeep\" | \"process.parent.hash.tlsh\" | \"process.parent.interactive\" | \"process.parent.macho.go_import_hash\" | \"process.parent.macho.go_imports\" | \"process.parent.macho.go_imports_names_entropy\" | \"process.parent.macho.go_imports_names_var_entropy\" | \"process.parent.macho.go_stripped\" | \"process.parent.macho.import_hash\" | \"process.parent.macho.imports\" | \"process.parent.macho.imports_names_entropy\" | \"process.parent.macho.imports_names_var_entropy\" | \"process.parent.macho.sections\" | \"process.parent.macho.symhash\" | \"process.parent.name\" | \"process.parent.pe.architecture\" | \"process.parent.pe.company\" | \"process.parent.pe.description\" | \"process.parent.pe.file_version\" | \"process.parent.pe.go_import_hash\" | \"process.parent.pe.go_imports\" | \"process.parent.pe.go_imports_names_entropy\" | \"process.parent.pe.go_imports_names_var_entropy\" | \"process.parent.pe.go_stripped\" | \"process.parent.pe.imphash\" | \"process.parent.pe.import_hash\" | \"process.parent.pe.imports\" | \"process.parent.pe.imports_names_entropy\" | \"process.parent.pe.imports_names_var_entropy\" | \"process.parent.pe.original_file_name\" | \"process.parent.pe.pehash\" | \"process.parent.pe.product\" | \"process.parent.pe.sections\" | \"process.parent.pgid\" | \"process.parent.pid\" | \"process.parent.real_group.id\" | \"process.parent.real_group.name\" | \"process.parent.real_user.id\" | \"process.parent.real_user.name\" | \"process.parent.saved_group.id\" | \"process.parent.saved_group.name\" | \"process.parent.saved_user.id\" | \"process.parent.saved_user.name\" | \"process.parent.start\" | \"process.parent.supplemental_groups.id\" | \"process.parent.supplemental_groups.name\" | \"process.parent.thread.capabilities.effective\" | \"process.parent.thread.capabilities.permitted\" | \"process.parent.thread.id\" | \"process.parent.thread.name\" | \"process.parent.title\" | \"process.parent.tty\" | \"process.parent.uptime\" | \"process.parent.user.id\" | \"process.parent.user.name\" | \"process.parent.vpid\" | \"process.parent.working_directory\" | \"process.pe.architecture\" | \"process.pe.company\" | \"process.pe.description\" | \"process.pe.file_version\" | \"process.pe.go_import_hash\" | \"process.pe.go_imports\" | \"process.pe.go_imports_names_entropy\" | \"process.pe.go_imports_names_var_entropy\" | \"process.pe.go_stripped\" | \"process.pe.imphash\" | \"process.pe.import_hash\" | \"process.pe.imports\" | \"process.pe.imports_names_entropy\" | \"process.pe.imports_names_var_entropy\" | \"process.pe.original_file_name\" | \"process.pe.pehash\" | \"process.pe.product\" | \"process.pe.sections\" | \"process.pgid\" | \"process.pid\" | \"process.previous.args\" | \"process.previous.args_count\" | \"process.previous.executable\" | \"process.real_group.id\" | \"process.real_group.name\" | \"process.real_user.id\" | \"process.real_user.name\" | \"process.saved_group.id\" | \"process.saved_group.name\" | \"process.saved_user.id\" | \"process.saved_user.name\" | \"process.session_leader.args\" | \"process.session_leader.args_count\" | \"process.session_leader.command_line\" | \"process.session_leader.entity_id\" | \"process.session_leader.executable\" | \"process.session_leader.group.id\" | \"process.session_leader.group.name\" | \"process.session_leader.interactive\" | \"process.session_leader.name\" | \"process.session_leader.parent.entity_id\" | \"process.session_leader.parent.pid\" | \"process.session_leader.parent.session_leader.entity_id\" | \"process.session_leader.parent.session_leader.pid\" | \"process.session_leader.parent.session_leader.start\" | \"process.session_leader.parent.session_leader.vpid\" | \"process.session_leader.parent.start\" | \"process.session_leader.parent.vpid\" | \"process.session_leader.pid\" | \"process.session_leader.real_group.id\" | \"process.session_leader.real_group.name\" | \"process.session_leader.real_user.id\" | \"process.session_leader.real_user.name\" | \"process.session_leader.same_as_process\" | \"process.session_leader.saved_group.id\" | \"process.session_leader.saved_group.name\" | \"process.session_leader.saved_user.id\" | \"process.session_leader.saved_user.name\" | \"process.session_leader.start\" | \"process.session_leader.supplemental_groups.id\" | \"process.session_leader.supplemental_groups.name\" | \"process.session_leader.tty\" | \"process.session_leader.user.id\" | \"process.session_leader.user.name\" | \"process.session_leader.vpid\" | \"process.session_leader.working_directory\" | \"process.start\" | \"process.supplemental_groups.id\" | \"process.supplemental_groups.name\" | \"process.thread.capabilities.effective\" | \"process.thread.capabilities.permitted\" | \"process.thread.id\" | \"process.thread.name\" | \"process.title\" | \"process.tty\" | \"process.uptime\" | \"process.user.id\" | \"process.user.name\" | \"process.vpid\" | \"process.working_directory\" | \"registry.data.bytes\" | \"registry.data.strings\" | \"registry.data.type\" | \"registry.hive\" | \"registry.key\" | \"registry.path\" | \"registry.value\" | \"related.hash\" | \"related.hosts\" | \"related.ip\" | \"related.user\" | \"rule.author\" | \"rule.category\" | \"rule.description\" | \"rule.id\" | \"rule.license\" | \"rule.name\" | \"rule.reference\" | \"rule.ruleset\" | \"rule.uuid\" | \"rule.version\" | \"server.address\" | \"server.as.number\" | \"server.as.organization.name\" | \"server.bytes\" | \"server.domain\" | \"server.geo.city_name\" | \"server.geo.continent_code\" | \"server.geo.continent_name\" | \"server.geo.country_iso_code\" | \"server.geo.country_name\" | \"server.geo.location\" | \"server.geo.name\" | \"server.geo.postal_code\" | \"server.geo.region_iso_code\" | \"server.geo.region_name\" | \"server.geo.timezone\" | \"server.ip\" | \"server.mac\" | \"server.nat.ip\" | \"server.nat.port\" | \"server.packets\" | \"server.port\" | \"server.registered_domain\" | \"server.subdomain\" | \"server.top_level_domain\" | \"server.user.domain\" | \"server.user.email\" | \"server.user.full_name\" | \"server.user.group.domain\" | \"server.user.group.id\" | \"server.user.group.name\" | \"server.user.hash\" | \"server.user.id\" | \"server.user.name\" | \"server.user.roles\" | \"service.address\" | \"service.ephemeral_id\" | \"service.id\" | \"service.node.name\" | \"service.node.role\" | \"service.node.roles\" | \"service.origin.address\" | \"service.origin.environment\" | \"service.origin.ephemeral_id\" | \"service.origin.id\" | \"service.origin.name\" | \"service.origin.node.name\" | \"service.origin.node.role\" | \"service.origin.node.roles\" | \"service.origin.state\" | \"service.origin.type\" | \"service.origin.version\" | \"service.state\" | \"service.target.address\" | \"service.target.environment\" | \"service.target.ephemeral_id\" | \"service.target.id\" | \"service.target.name\" | \"service.target.node.name\" | \"service.target.node.role\" | \"service.target.node.roles\" | \"service.target.state\" | \"service.target.type\" | \"service.target.version\" | \"service.type\" | \"service.version\" | \"source.address\" | \"source.as.number\" | \"source.as.organization.name\" | \"source.bytes\" | \"source.domain\" | \"source.geo.city_name\" | \"source.geo.continent_code\" | \"source.geo.continent_name\" | \"source.geo.country_iso_code\" | \"source.geo.country_name\" | \"source.geo.location\" | \"source.geo.name\" | \"source.geo.postal_code\" | \"source.geo.region_iso_code\" | \"source.geo.region_name\" | \"source.geo.timezone\" | \"source.ip\" | \"source.mac\" | \"source.nat.ip\" | \"source.nat.port\" | \"source.packets\" | \"source.port\" | \"source.registered_domain\" | \"source.subdomain\" | \"source.top_level_domain\" | \"source.user.domain\" | \"source.user.email\" | \"source.user.full_name\" | \"source.user.group.domain\" | \"source.user.group.id\" | \"source.user.group.name\" | \"source.user.hash\" | \"source.user.id\" | \"source.user.name\" | \"source.user.roles\" | \"span.id\" | \"threat.enrichments\" | \"threat.feed.dashboard_id\" | \"threat.feed.description\" | \"threat.feed.name\" | \"threat.feed.reference\" | \"threat.framework\" | \"threat.group.alias\" | \"threat.group.id\" | \"threat.group.name\" | \"threat.group.reference\" | \"threat.indicator.as.number\" | \"threat.indicator.as.organization.name\" | \"threat.indicator.confidence\" | \"threat.indicator.description\" | \"threat.indicator.email.address\" | \"threat.indicator.file.accessed\" | \"threat.indicator.file.attributes\" | \"threat.indicator.file.code_signature.digest_algorithm\" | \"threat.indicator.file.code_signature.exists\" | \"threat.indicator.file.code_signature.signing_id\" | \"threat.indicator.file.code_signature.status\" | \"threat.indicator.file.code_signature.subject_name\" | \"threat.indicator.file.code_signature.team_id\" | \"threat.indicator.file.code_signature.timestamp\" | \"threat.indicator.file.code_signature.trusted\" | \"threat.indicator.file.code_signature.valid\" | \"threat.indicator.file.created\" | \"threat.indicator.file.ctime\" | \"threat.indicator.file.device\" | \"threat.indicator.file.directory\" | \"threat.indicator.file.drive_letter\" | \"threat.indicator.file.elf.architecture\" | \"threat.indicator.file.elf.byte_order\" | \"threat.indicator.file.elf.cpu_type\" | \"threat.indicator.file.elf.creation_date\" | \"threat.indicator.file.elf.exports\" | \"threat.indicator.file.elf.go_import_hash\" | \"threat.indicator.file.elf.go_imports\" | \"threat.indicator.file.elf.go_imports_names_entropy\" | \"threat.indicator.file.elf.go_imports_names_var_entropy\" | \"threat.indicator.file.elf.go_stripped\" | \"threat.indicator.file.elf.header.abi_version\" | \"threat.indicator.file.elf.header.class\" | \"threat.indicator.file.elf.header.data\" | \"threat.indicator.file.elf.header.entrypoint\" | \"threat.indicator.file.elf.header.object_version\" | \"threat.indicator.file.elf.header.os_abi\" | \"threat.indicator.file.elf.header.type\" | \"threat.indicator.file.elf.header.version\" | \"threat.indicator.file.elf.import_hash\" | \"threat.indicator.file.elf.imports\" | \"threat.indicator.file.elf.imports_names_entropy\" | \"threat.indicator.file.elf.imports_names_var_entropy\" | \"threat.indicator.file.elf.sections\" | \"threat.indicator.file.elf.segments\" | \"threat.indicator.file.elf.shared_libraries\" | \"threat.indicator.file.elf.telfhash\" | \"threat.indicator.file.extension\" | \"threat.indicator.file.fork_name\" | \"threat.indicator.file.gid\" | \"threat.indicator.file.group\" | \"threat.indicator.file.hash.md5\" | \"threat.indicator.file.hash.sha1\" | \"threat.indicator.file.hash.sha256\" | \"threat.indicator.file.hash.sha384\" | \"threat.indicator.file.hash.sha512\" | \"threat.indicator.file.hash.ssdeep\" | \"threat.indicator.file.hash.tlsh\" | \"threat.indicator.file.inode\" | \"threat.indicator.file.mime_type\" | \"threat.indicator.file.mode\" | \"threat.indicator.file.mtime\" | \"threat.indicator.file.name\" | \"threat.indicator.file.owner\" | \"threat.indicator.file.path\" | \"threat.indicator.file.pe.architecture\" | \"threat.indicator.file.pe.company\" | \"threat.indicator.file.pe.description\" | \"threat.indicator.file.pe.file_version\" | \"threat.indicator.file.pe.go_import_hash\" | \"threat.indicator.file.pe.go_imports\" | \"threat.indicator.file.pe.go_imports_names_entropy\" | \"threat.indicator.file.pe.go_imports_names_var_entropy\" | \"threat.indicator.file.pe.go_stripped\" | \"threat.indicator.file.pe.imphash\" | \"threat.indicator.file.pe.import_hash\" | \"threat.indicator.file.pe.imports\" | \"threat.indicator.file.pe.imports_names_entropy\" | \"threat.indicator.file.pe.imports_names_var_entropy\" | \"threat.indicator.file.pe.original_file_name\" | \"threat.indicator.file.pe.pehash\" | \"threat.indicator.file.pe.product\" | \"threat.indicator.file.pe.sections\" | \"threat.indicator.file.size\" | \"threat.indicator.file.target_path\" | \"threat.indicator.file.type\" | \"threat.indicator.file.uid\" | \"threat.indicator.file.x509.alternative_names\" | \"threat.indicator.file.x509.issuer.common_name\" | \"threat.indicator.file.x509.issuer.country\" | \"threat.indicator.file.x509.issuer.distinguished_name\" | \"threat.indicator.file.x509.issuer.locality\" | \"threat.indicator.file.x509.issuer.organization\" | \"threat.indicator.file.x509.issuer.organizational_unit\" | \"threat.indicator.file.x509.issuer.state_or_province\" | \"threat.indicator.file.x509.not_after\" | \"threat.indicator.file.x509.not_before\" | \"threat.indicator.file.x509.public_key_algorithm\" | \"threat.indicator.file.x509.public_key_curve\" | \"threat.indicator.file.x509.public_key_exponent\" | \"threat.indicator.file.x509.public_key_size\" | \"threat.indicator.file.x509.serial_number\" | \"threat.indicator.file.x509.signature_algorithm\" | \"threat.indicator.file.x509.subject.common_name\" | \"threat.indicator.file.x509.subject.country\" | \"threat.indicator.file.x509.subject.distinguished_name\" | \"threat.indicator.file.x509.subject.locality\" | \"threat.indicator.file.x509.subject.organization\" | \"threat.indicator.file.x509.subject.organizational_unit\" | \"threat.indicator.file.x509.subject.state_or_province\" | \"threat.indicator.file.x509.version_number\" | \"threat.indicator.first_seen\" | \"threat.indicator.geo.city_name\" | \"threat.indicator.geo.continent_code\" | \"threat.indicator.geo.continent_name\" | \"threat.indicator.geo.country_iso_code\" | \"threat.indicator.geo.country_name\" | \"threat.indicator.geo.location\" | \"threat.indicator.geo.name\" | \"threat.indicator.geo.postal_code\" | \"threat.indicator.geo.region_iso_code\" | \"threat.indicator.geo.region_name\" | \"threat.indicator.geo.timezone\" | \"threat.indicator.ip\" | \"threat.indicator.last_seen\" | \"threat.indicator.marking.tlp\" | \"threat.indicator.marking.tlp_version\" | \"threat.indicator.modified_at\" | \"threat.indicator.name\" | \"threat.indicator.port\" | \"threat.indicator.provider\" | \"threat.indicator.reference\" | \"threat.indicator.registry.data.bytes\" | \"threat.indicator.registry.data.strings\" | \"threat.indicator.registry.data.type\" | \"threat.indicator.registry.hive\" | \"threat.indicator.registry.key\" | \"threat.indicator.registry.path\" | \"threat.indicator.registry.value\" | \"threat.indicator.scanner_stats\" | \"threat.indicator.sightings\" | \"threat.indicator.type\" | \"threat.indicator.url.domain\" | \"threat.indicator.url.extension\" | \"threat.indicator.url.fragment\" | \"threat.indicator.url.full\" | \"threat.indicator.url.original\" | \"threat.indicator.url.password\" | \"threat.indicator.url.path\" | \"threat.indicator.url.port\" | \"threat.indicator.url.query\" | \"threat.indicator.url.registered_domain\" | \"threat.indicator.url.scheme\" | \"threat.indicator.url.subdomain\" | \"threat.indicator.url.top_level_domain\" | \"threat.indicator.url.username\" | \"threat.indicator.x509.alternative_names\" | \"threat.indicator.x509.issuer.common_name\" | \"threat.indicator.x509.issuer.country\" | \"threat.indicator.x509.issuer.distinguished_name\" | \"threat.indicator.x509.issuer.locality\" | \"threat.indicator.x509.issuer.organization\" | \"threat.indicator.x509.issuer.organizational_unit\" | \"threat.indicator.x509.issuer.state_or_province\" | \"threat.indicator.x509.not_after\" | \"threat.indicator.x509.not_before\" | \"threat.indicator.x509.public_key_algorithm\" | \"threat.indicator.x509.public_key_curve\" | \"threat.indicator.x509.public_key_exponent\" | \"threat.indicator.x509.public_key_size\" | \"threat.indicator.x509.serial_number\" | \"threat.indicator.x509.signature_algorithm\" | \"threat.indicator.x509.subject.common_name\" | \"threat.indicator.x509.subject.country\" | \"threat.indicator.x509.subject.distinguished_name\" | \"threat.indicator.x509.subject.locality\" | \"threat.indicator.x509.subject.organization\" | \"threat.indicator.x509.subject.organizational_unit\" | \"threat.indicator.x509.subject.state_or_province\" | \"threat.indicator.x509.version_number\" | \"threat.software.alias\" | \"threat.software.id\" | \"threat.software.name\" | \"threat.software.platforms\" | \"threat.software.reference\" | \"threat.software.type\" | \"threat.tactic.id\" | \"threat.tactic.name\" | \"threat.tactic.reference\" | \"threat.technique.id\" | \"threat.technique.name\" | \"threat.technique.reference\" | \"threat.technique.subtechnique.id\" | \"threat.technique.subtechnique.name\" | \"threat.technique.subtechnique.reference\" | \"tls.cipher\" | \"tls.client.certificate\" | \"tls.client.certificate_chain\" | \"tls.client.hash.md5\" | \"tls.client.hash.sha1\" | \"tls.client.hash.sha256\" | \"tls.client.issuer\" | \"tls.client.ja3\" | \"tls.client.not_after\" | \"tls.client.not_before\" | \"tls.client.server_name\" | \"tls.client.subject\" | \"tls.client.supported_ciphers\" | \"tls.client.x509.alternative_names\" | \"tls.client.x509.issuer.common_name\" | \"tls.client.x509.issuer.country\" | \"tls.client.x509.issuer.distinguished_name\" | \"tls.client.x509.issuer.locality\" | \"tls.client.x509.issuer.organization\" | \"tls.client.x509.issuer.organizational_unit\" | \"tls.client.x509.issuer.state_or_province\" | \"tls.client.x509.not_after\" | \"tls.client.x509.not_before\" | \"tls.client.x509.public_key_algorithm\" | \"tls.client.x509.public_key_curve\" | \"tls.client.x509.public_key_exponent\" | \"tls.client.x509.public_key_size\" | \"tls.client.x509.serial_number\" | \"tls.client.x509.signature_algorithm\" | \"tls.client.x509.subject.common_name\" | \"tls.client.x509.subject.country\" | \"tls.client.x509.subject.distinguished_name\" | \"tls.client.x509.subject.locality\" | \"tls.client.x509.subject.organization\" | \"tls.client.x509.subject.organizational_unit\" | \"tls.client.x509.subject.state_or_province\" | \"tls.client.x509.version_number\" | \"tls.curve\" | \"tls.established\" | \"tls.next_protocol\" | \"tls.resumed\" | \"tls.server.certificate\" | \"tls.server.certificate_chain\" | \"tls.server.hash.md5\" | \"tls.server.hash.sha1\" | \"tls.server.hash.sha256\" | \"tls.server.issuer\" | \"tls.server.ja3s\" | \"tls.server.not_after\" | \"tls.server.not_before\" | \"tls.server.subject\" | \"tls.server.x509.alternative_names\" | \"tls.server.x509.issuer.common_name\" | \"tls.server.x509.issuer.country\" | \"tls.server.x509.issuer.distinguished_name\" | \"tls.server.x509.issuer.locality\" | \"tls.server.x509.issuer.organization\" | \"tls.server.x509.issuer.organizational_unit\" | \"tls.server.x509.issuer.state_or_province\" | \"tls.server.x509.not_after\" | \"tls.server.x509.not_before\" | \"tls.server.x509.public_key_algorithm\" | \"tls.server.x509.public_key_curve\" | \"tls.server.x509.public_key_exponent\" | \"tls.server.x509.public_key_size\" | \"tls.server.x509.serial_number\" | \"tls.server.x509.signature_algorithm\" | \"tls.server.x509.subject.common_name\" | \"tls.server.x509.subject.country\" | \"tls.server.x509.subject.distinguished_name\" | \"tls.server.x509.subject.locality\" | \"tls.server.x509.subject.organization\" | \"tls.server.x509.subject.organizational_unit\" | \"tls.server.x509.subject.state_or_province\" | \"tls.server.x509.version_number\" | \"tls.version\" | \"tls.version_protocol\" | \"trace.id\" | \"transaction.id\" | \"url.domain\" | \"url.extension\" | \"url.fragment\" | \"url.full\" | \"url.original\" | \"url.password\" | \"url.path\" | \"url.port\" | \"url.query\" | \"url.registered_domain\" | \"url.scheme\" | \"url.subdomain\" | \"url.top_level_domain\" | \"url.username\" | \"user.changes.domain\" | \"user.changes.email\" | \"user.changes.full_name\" | \"user.changes.group.domain\" | \"user.changes.group.id\" | \"user.changes.group.name\" | \"user.changes.hash\" | \"user.changes.id\" | \"user.changes.name\" | \"user.changes.roles\" | \"user.domain\" | \"user.effective.domain\" | \"user.effective.email\" | \"user.effective.full_name\" | \"user.effective.group.domain\" | \"user.effective.group.id\" | \"user.effective.group.name\" | \"user.effective.hash\" | \"user.effective.id\" | \"user.effective.name\" | \"user.effective.roles\" | \"user.email\" | \"user.full_name\" | \"user.group.domain\" | \"user.group.id\" | \"user.group.name\" | \"user.hash\" | \"user.id\" | \"user.name\" | \"user.risk.calculated_level\" | \"user.risk.calculated_score\" | \"user.risk.calculated_score_norm\" | \"user.risk.static_level\" | \"user.risk.static_score\" | \"user.risk.static_score_norm\" | \"user.roles\" | \"user.target.domain\" | \"user.target.email\" | \"user.target.full_name\" | \"user.target.group.domain\" | \"user.target.group.id\" | \"user.target.group.name\" | \"user.target.hash\" | \"user.target.id\" | \"user.target.name\" | \"user.target.roles\" | \"user_agent.device.name\" | \"user_agent.name\" | \"user_agent.original\" | \"user_agent.os.family\" | \"user_agent.os.full\" | \"user_agent.os.kernel\" | \"user_agent.os.name\" | \"user_agent.os.platform\" | \"user_agent.os.type\" | \"user_agent.os.version\" | \"user_agent.version\" | \"vulnerability.category\" | \"vulnerability.classification\" | \"vulnerability.description\" | \"vulnerability.enumeration\" | \"vulnerability.id\" | \"vulnerability.reference\" | \"vulnerability.report_id\" | \"vulnerability.scanner.vendor\" | \"vulnerability.score.base\" | \"vulnerability.score.environmental\" | \"vulnerability.score.temporal\" | \"vulnerability.score.version\" | \"vulnerability.severity\" | \"_id\" | \"_source\" | \"_index\" | \"_routing\" | \"_ignored\" | ", + "\"@timestamp\" | \"event.sequence\" | \"event.start\" | \"event.end\" | \"event.provider\" | \"event.duration\" | \"event.action\" | \"message\" | \"event.outcome\" | \"tags\" | \"event.kind\" | \"event.original\" | \"agent.name\" | \"container.id\" | \"host.name\" | \"labels\" | \"service.environment\" | \"service.name\" | \"ecs.version\" | \"agent.build.original\" | \"agent.ephemeral_id\" | \"agent.id\" | \"agent.type\" | \"agent.version\" | \"client.address\" | \"client.as.number\" | \"client.as.organization.name\" | \"client.bytes\" | \"client.domain\" | \"client.geo.city_name\" | \"client.geo.continent_code\" | \"client.geo.continent_name\" | \"client.geo.country_iso_code\" | \"client.geo.country_name\" | \"client.geo.location\" | \"client.geo.name\" | \"client.geo.postal_code\" | \"client.geo.region_iso_code\" | \"client.geo.region_name\" | \"client.geo.timezone\" | \"client.ip\" | \"client.mac\" | \"client.nat.ip\" | \"client.nat.port\" | \"client.packets\" | \"client.port\" | \"client.registered_domain\" | \"client.subdomain\" | \"client.top_level_domain\" | \"client.user.domain\" | \"client.user.email\" | \"client.user.full_name\" | \"client.user.group.domain\" | \"client.user.group.id\" | \"client.user.group.name\" | \"client.user.hash\" | \"client.user.id\" | \"client.user.name\" | \"client.user.roles\" | \"cloud.account.id\" | \"cloud.account.name\" | \"cloud.availability_zone\" | \"cloud.instance.id\" | \"cloud.instance.name\" | \"cloud.machine.type\" | \"cloud.origin.account.id\" | \"cloud.origin.account.name\" | \"cloud.origin.availability_zone\" | \"cloud.origin.instance.id\" | \"cloud.origin.instance.name\" | \"cloud.origin.machine.type\" | \"cloud.origin.project.id\" | \"cloud.origin.project.name\" | \"cloud.origin.provider\" | \"cloud.origin.region\" | \"cloud.origin.service.name\" | \"cloud.project.id\" | \"cloud.project.name\" | \"cloud.provider\" | \"cloud.region\" | \"cloud.service.name\" | \"cloud.target.account.id\" | \"cloud.target.account.name\" | \"cloud.target.availability_zone\" | \"cloud.target.instance.id\" | \"cloud.target.instance.name\" | \"cloud.target.machine.type\" | \"cloud.target.project.id\" | \"cloud.target.project.name\" | \"cloud.target.provider\" | \"cloud.target.region\" | \"cloud.target.service.name\" | \"container.cpu.usage\" | \"container.disk.read.bytes\" | \"container.disk.write.bytes\" | \"container.image.hash.all\" | \"container.image.name\" | \"container.image.tag\" | \"container.labels\" | \"container.memory.usage\" | \"container.name\" | \"container.network.egress.bytes\" | \"container.network.ingress.bytes\" | \"container.runtime\" | \"container.security_context.privileged\" | \"destination.address\" | \"destination.as.number\" | \"destination.as.organization.name\" | \"destination.bytes\" | \"destination.domain\" | \"destination.geo.city_name\" | \"destination.geo.continent_code\" | \"destination.geo.continent_name\" | \"destination.geo.country_iso_code\" | \"destination.geo.country_name\" | \"destination.geo.location\" | \"destination.geo.name\" | \"destination.geo.postal_code\" | \"destination.geo.region_iso_code\" | \"destination.geo.region_name\" | \"destination.geo.timezone\" | \"destination.ip\" | \"destination.mac\" | \"destination.nat.ip\" | \"destination.nat.port\" | \"destination.packets\" | \"destination.port\" | \"destination.registered_domain\" | \"destination.subdomain\" | \"destination.top_level_domain\" | \"destination.user.domain\" | \"destination.user.email\" | \"destination.user.full_name\" | \"destination.user.group.domain\" | \"destination.user.group.id\" | \"destination.user.group.name\" | \"destination.user.hash\" | \"destination.user.id\" | \"destination.user.name\" | \"destination.user.roles\" | \"device.id\" | \"device.manufacturer\" | \"device.model.identifier\" | \"device.model.name\" | \"dll.code_signature.digest_algorithm\" | \"dll.code_signature.exists\" | \"dll.code_signature.signing_id\" | \"dll.code_signature.status\" | \"dll.code_signature.subject_name\" | \"dll.code_signature.team_id\" | \"dll.code_signature.timestamp\" | \"dll.code_signature.trusted\" | \"dll.code_signature.valid\" | \"dll.hash.md5\" | \"dll.hash.sha1\" | \"dll.hash.sha256\" | \"dll.hash.sha384\" | \"dll.hash.sha512\" | \"dll.hash.ssdeep\" | \"dll.hash.tlsh\" | \"dll.name\" | \"dll.path\" | \"dll.pe.architecture\" | \"dll.pe.company\" | \"dll.pe.description\" | \"dll.pe.file_version\" | \"dll.pe.go_import_hash\" | \"dll.pe.go_imports\" | \"dll.pe.go_imports_names_entropy\" | \"dll.pe.go_imports_names_var_entropy\" | \"dll.pe.go_stripped\" | \"dll.pe.imphash\" | \"dll.pe.import_hash\" | \"dll.pe.imports\" | \"dll.pe.imports_names_entropy\" | \"dll.pe.imports_names_var_entropy\" | \"dll.pe.original_file_name\" | \"dll.pe.pehash\" | \"dll.pe.product\" | \"dll.pe.sections\" | \"dns.answers\" | \"dns.header_flags\" | \"dns.id\" | \"dns.op_code\" | \"dns.question.class\" | \"dns.question.name\" | \"dns.question.registered_domain\" | \"dns.question.subdomain\" | \"dns.question.top_level_domain\" | \"dns.question.type\" | \"dns.resolved_ip\" | \"dns.response_code\" | \"dns.type\" | \"email.attachments\" | \"file.extension\" | \"file.hash.md5\" | \"file.hash.sha1\" | \"file.hash.sha256\" | \"file.hash.sha384\" | \"file.hash.sha512\" | \"file.hash.ssdeep\" | \"file.hash.tlsh\" | \"file.mime_type\" | \"file.name\" | \"file.size\" | \"email.bcc.address\" | \"email.cc.address\" | \"email.content_type\" | \"email.delivery_timestamp\" | \"email.direction\" | \"email.from.address\" | \"email.local_id\" | \"email.message_id\" | \"email.origination_timestamp\" | \"email.reply_to.address\" | \"email.sender.address\" | \"email.subject\" | \"email.to.address\" | \"email.x_mailer\" | \"error.code\" | \"error.id\" | \"error.message\" | \"error.stack_trace\" | \"error.type\" | \"event.agent_id_status\" | \"event.category\" | \"event.code\" | \"event.created\" | \"event.dataset\" | \"event.hash\" | \"event.id\" | \"event.ingested\" | \"event.module\" | \"event.reason\" | \"event.reference\" | \"event.risk_score\" | \"event.risk_score_norm\" | \"event.severity\" | \"event.timezone\" | \"event.type\" | \"event.url\" | \"faas.coldstart\" | \"faas.execution\" | \"faas.id\" | \"faas.name\" | \"faas.version\" | \"file.accessed\" | \"file.attributes\" | \"file.code_signature.digest_algorithm\" | \"file.code_signature.exists\" | \"file.code_signature.signing_id\" | \"file.code_signature.status\" | \"file.code_signature.subject_name\" | \"file.code_signature.team_id\" | \"file.code_signature.timestamp\" | \"file.code_signature.trusted\" | \"file.code_signature.valid\" | \"file.created\" | \"file.ctime\" | \"file.device\" | \"file.directory\" | \"file.drive_letter\" | \"file.elf.architecture\" | \"file.elf.byte_order\" | \"file.elf.cpu_type\" | \"file.elf.creation_date\" | \"file.elf.exports\" | \"file.elf.go_import_hash\" | \"file.elf.go_imports\" | \"file.elf.go_imports_names_entropy\" | \"file.elf.go_imports_names_var_entropy\" | \"file.elf.go_stripped\" | \"file.elf.header.abi_version\" | \"file.elf.header.class\" | \"file.elf.header.data\" | \"file.elf.header.entrypoint\" | \"file.elf.header.object_version\" | \"file.elf.header.os_abi\" | \"file.elf.header.type\" | \"file.elf.header.version\" | \"file.elf.import_hash\" | \"file.elf.imports\" | \"file.elf.imports_names_entropy\" | \"file.elf.imports_names_var_entropy\" | \"file.elf.sections\" | \"file.elf.segments\" | \"file.elf.shared_libraries\" | \"file.elf.telfhash\" | \"file.fork_name\" | \"file.gid\" | \"file.group\" | \"file.inode\" | \"file.macho.go_import_hash\" | \"file.macho.go_imports\" | \"file.macho.go_imports_names_entropy\" | \"file.macho.go_imports_names_var_entropy\" | \"file.macho.go_stripped\" | \"file.macho.import_hash\" | \"file.macho.imports\" | \"file.macho.imports_names_entropy\" | \"file.macho.imports_names_var_entropy\" | \"file.macho.sections\" | \"file.macho.symhash\" | \"file.mode\" | \"file.mtime\" | \"file.owner\" | \"file.path\" | \"file.pe.architecture\" | \"file.pe.company\" | \"file.pe.description\" | \"file.pe.file_version\" | \"file.pe.go_import_hash\" | \"file.pe.go_imports\" | \"file.pe.go_imports_names_entropy\" | \"file.pe.go_imports_names_var_entropy\" | \"file.pe.go_stripped\" | \"file.pe.imphash\" | \"file.pe.import_hash\" | \"file.pe.imports\" | \"file.pe.imports_names_entropy\" | \"file.pe.imports_names_var_entropy\" | \"file.pe.original_file_name\" | \"file.pe.pehash\" | \"file.pe.product\" | \"file.pe.sections\" | \"file.target_path\" | \"file.type\" | \"file.uid\" | \"file.x509.alternative_names\" | \"file.x509.issuer.common_name\" | \"file.x509.issuer.country\" | \"file.x509.issuer.distinguished_name\" | \"file.x509.issuer.locality\" | \"file.x509.issuer.organization\" | \"file.x509.issuer.organizational_unit\" | \"file.x509.issuer.state_or_province\" | \"file.x509.not_after\" | \"file.x509.not_before\" | \"file.x509.public_key_algorithm\" | \"file.x509.public_key_curve\" | \"file.x509.public_key_exponent\" | \"file.x509.public_key_size\" | \"file.x509.serial_number\" | \"file.x509.signature_algorithm\" | \"file.x509.subject.common_name\" | \"file.x509.subject.country\" | \"file.x509.subject.distinguished_name\" | \"file.x509.subject.locality\" | \"file.x509.subject.organization\" | \"file.x509.subject.organizational_unit\" | \"file.x509.subject.state_or_province\" | \"file.x509.version_number\" | \"group.domain\" | \"group.id\" | \"group.name\" | \"host.architecture\" | \"host.boot.id\" | \"host.cpu.usage\" | \"host.disk.read.bytes\" | \"host.disk.write.bytes\" | \"host.domain\" | \"host.geo.city_name\" | \"host.geo.continent_code\" | \"host.geo.continent_name\" | \"host.geo.country_iso_code\" | \"host.geo.country_name\" | \"host.geo.location\" | \"host.geo.name\" | \"host.geo.postal_code\" | \"host.geo.region_iso_code\" | \"host.geo.region_name\" | \"host.geo.timezone\" | \"host.hostname\" | \"host.id\" | \"host.ip\" | \"host.mac\" | \"host.network.egress.bytes\" | \"host.network.egress.packets\" | \"host.network.ingress.bytes\" | \"host.network.ingress.packets\" | \"host.os.family\" | \"host.os.full\" | \"host.os.kernel\" | \"host.os.name\" | \"host.os.platform\" | \"host.os.type\" | \"host.os.version\" | \"host.pid_ns_ino\" | \"host.risk.calculated_level\" | \"host.risk.calculated_score\" | \"host.risk.calculated_score_norm\" | \"host.risk.static_level\" | \"host.risk.static_score\" | \"host.risk.static_score_norm\" | \"host.type\" | \"host.uptime\" | \"http.request.body.bytes\" | \"http.request.body.content\" | \"http.request.bytes\" | \"http.request.id\" | \"http.request.method\" | \"http.request.mime_type\" | \"http.request.referrer\" | \"http.response.body.bytes\" | \"http.response.body.content\" | \"http.response.bytes\" | \"http.response.mime_type\" | \"http.response.status_code\" | \"http.version\" | \"log.file.path\" | \"log.level\" | \"log.logger\" | \"log.origin.file.line\" | \"log.origin.file.name\" | \"log.origin.function\" | \"log.syslog\" | \"network.application\" | \"network.bytes\" | \"network.community_id\" | \"network.direction\" | \"network.forwarded_ip\" | \"network.iana_number\" | \"network.inner\" | \"network.name\" | \"network.packets\" | \"network.protocol\" | \"network.transport\" | \"network.type\" | \"network.vlan.id\" | \"network.vlan.name\" | \"observer.egress\" | \"observer.geo.city_name\" | \"observer.geo.continent_code\" | \"observer.geo.continent_name\" | \"observer.geo.country_iso_code\" | \"observer.geo.country_name\" | \"observer.geo.location\" | \"observer.geo.name\" | \"observer.geo.postal_code\" | \"observer.geo.region_iso_code\" | \"observer.geo.region_name\" | \"observer.geo.timezone\" | \"observer.hostname\" | \"observer.ingress\" | \"observer.ip\" | \"observer.mac\" | \"observer.name\" | \"observer.os.family\" | \"observer.os.full\" | \"observer.os.kernel\" | \"observer.os.name\" | \"observer.os.platform\" | \"observer.os.type\" | \"observer.os.version\" | \"observer.product\" | \"observer.serial_number\" | \"observer.type\" | \"observer.vendor\" | \"observer.version\" | \"orchestrator.api_version\" | \"orchestrator.cluster.id\" | \"orchestrator.cluster.name\" | \"orchestrator.cluster.url\" | \"orchestrator.cluster.version\" | \"orchestrator.namespace\" | \"orchestrator.organization\" | \"orchestrator.resource.annotation\" | \"orchestrator.resource.id\" | \"orchestrator.resource.ip\" | \"orchestrator.resource.label\" | \"orchestrator.resource.name\" | \"orchestrator.resource.parent.type\" | \"orchestrator.resource.type\" | \"orchestrator.type\" | \"organization.id\" | \"organization.name\" | \"package.architecture\" | \"package.build_version\" | \"package.checksum\" | \"package.description\" | \"package.install_scope\" | \"package.installed\" | \"package.license\" | \"package.name\" | \"package.path\" | \"package.reference\" | \"package.size\" | \"package.type\" | \"package.version\" | \"process.args\" | \"process.args_count\" | \"process.code_signature.digest_algorithm\" | \"process.code_signature.exists\" | \"process.code_signature.signing_id\" | \"process.code_signature.status\" | \"process.code_signature.subject_name\" | \"process.code_signature.team_id\" | \"process.code_signature.timestamp\" | \"process.code_signature.trusted\" | \"process.code_signature.valid\" | \"process.command_line\" | \"process.elf.architecture\" | \"process.elf.byte_order\" | \"process.elf.cpu_type\" | \"process.elf.creation_date\" | \"process.elf.exports\" | \"process.elf.go_import_hash\" | \"process.elf.go_imports\" | \"process.elf.go_imports_names_entropy\" | \"process.elf.go_imports_names_var_entropy\" | \"process.elf.go_stripped\" | \"process.elf.header.abi_version\" | \"process.elf.header.class\" | \"process.elf.header.data\" | \"process.elf.header.entrypoint\" | \"process.elf.header.object_version\" | \"process.elf.header.os_abi\" | \"process.elf.header.type\" | \"process.elf.header.version\" | \"process.elf.import_hash\" | \"process.elf.imports\" | \"process.elf.imports_names_entropy\" | \"process.elf.imports_names_var_entropy\" | \"process.elf.sections\" | \"process.elf.segments\" | \"process.elf.shared_libraries\" | \"process.elf.telfhash\" | \"process.end\" | \"process.entity_id\" | \"process.entry_leader.args\" | \"process.entry_leader.args_count\" | \"process.entry_leader.attested_groups.name\" | \"process.entry_leader.attested_user.id\" | \"process.entry_leader.attested_user.name\" | \"process.entry_leader.command_line\" | \"process.entry_leader.entity_id\" | \"process.entry_leader.entry_meta.source.ip\" | \"process.entry_leader.entry_meta.type\" | \"process.entry_leader.executable\" | \"process.entry_leader.group.id\" | \"process.entry_leader.group.name\" | \"process.entry_leader.interactive\" | \"process.entry_leader.name\" | \"process.entry_leader.parent.entity_id\" | \"process.entry_leader.parent.pid\" | \"process.entry_leader.parent.session_leader.entity_id\" | \"process.entry_leader.parent.session_leader.pid\" | \"process.entry_leader.parent.session_leader.start\" | \"process.entry_leader.parent.session_leader.vpid\" | \"process.entry_leader.parent.start\" | \"process.entry_leader.parent.vpid\" | \"process.entry_leader.pid\" | \"process.entry_leader.real_group.id\" | \"process.entry_leader.real_group.name\" | \"process.entry_leader.real_user.id\" | \"process.entry_leader.real_user.name\" | \"process.entry_leader.same_as_process\" | \"process.entry_leader.saved_group.id\" | \"process.entry_leader.saved_group.name\" | \"process.entry_leader.saved_user.id\" | \"process.entry_leader.saved_user.name\" | \"process.entry_leader.start\" | \"process.entry_leader.supplemental_groups.id\" | \"process.entry_leader.supplemental_groups.name\" | \"process.entry_leader.tty\" | \"process.entry_leader.user.id\" | \"process.entry_leader.user.name\" | \"process.entry_leader.vpid\" | \"process.entry_leader.working_directory\" | \"process.env_vars\" | \"process.executable\" | \"process.exit_code\" | \"process.group_leader.args\" | \"process.group_leader.args_count\" | \"process.group_leader.command_line\" | \"process.group_leader.entity_id\" | \"process.group_leader.executable\" | \"process.group_leader.group.id\" | \"process.group_leader.group.name\" | \"process.group_leader.interactive\" | \"process.group_leader.name\" | \"process.group_leader.pid\" | \"process.group_leader.real_group.id\" | \"process.group_leader.real_group.name\" | \"process.group_leader.real_user.id\" | \"process.group_leader.real_user.name\" | \"process.group_leader.same_as_process\" | \"process.group_leader.saved_group.id\" | \"process.group_leader.saved_group.name\" | \"process.group_leader.saved_user.id\" | \"process.group_leader.saved_user.name\" | \"process.group_leader.start\" | \"process.group_leader.supplemental_groups.id\" | \"process.group_leader.supplemental_groups.name\" | \"process.group_leader.tty\" | \"process.group_leader.user.id\" | \"process.group_leader.user.name\" | \"process.group_leader.vpid\" | \"process.group_leader.working_directory\" | \"process.hash.md5\" | \"process.hash.sha1\" | \"process.hash.sha256\" | \"process.hash.sha384\" | \"process.hash.sha512\" | \"process.hash.ssdeep\" | \"process.hash.tlsh\" | \"process.interactive\" | \"process.io\" | \"process.macho.go_import_hash\" | \"process.macho.go_imports\" | \"process.macho.go_imports_names_entropy\" | \"process.macho.go_imports_names_var_entropy\" | \"process.macho.go_stripped\" | \"process.macho.import_hash\" | \"process.macho.imports\" | \"process.macho.imports_names_entropy\" | \"process.macho.imports_names_var_entropy\" | \"process.macho.sections\" | \"process.macho.symhash\" | \"process.name\" | \"process.parent.args\" | \"process.parent.args_count\" | \"process.parent.code_signature.digest_algorithm\" | \"process.parent.code_signature.exists\" | \"process.parent.code_signature.signing_id\" | \"process.parent.code_signature.status\" | \"process.parent.code_signature.subject_name\" | \"process.parent.code_signature.team_id\" | \"process.parent.code_signature.timestamp\" | \"process.parent.code_signature.trusted\" | \"process.parent.code_signature.valid\" | \"process.parent.command_line\" | \"process.parent.elf.architecture\" | \"process.parent.elf.byte_order\" | \"process.parent.elf.cpu_type\" | \"process.parent.elf.creation_date\" | \"process.parent.elf.exports\" | \"process.parent.elf.go_import_hash\" | \"process.parent.elf.go_imports\" | \"process.parent.elf.go_imports_names_entropy\" | \"process.parent.elf.go_imports_names_var_entropy\" | \"process.parent.elf.go_stripped\" | \"process.parent.elf.header.abi_version\" | \"process.parent.elf.header.class\" | \"process.parent.elf.header.data\" | \"process.parent.elf.header.entrypoint\" | \"process.parent.elf.header.object_version\" | \"process.parent.elf.header.os_abi\" | \"process.parent.elf.header.type\" | \"process.parent.elf.header.version\" | \"process.parent.elf.import_hash\" | \"process.parent.elf.imports\" | \"process.parent.elf.imports_names_entropy\" | \"process.parent.elf.imports_names_var_entropy\" | \"process.parent.elf.sections\" | \"process.parent.elf.segments\" | \"process.parent.elf.shared_libraries\" | \"process.parent.elf.telfhash\" | \"process.parent.end\" | \"process.parent.entity_id\" | \"process.parent.executable\" | \"process.parent.exit_code\" | \"process.parent.group.id\" | \"process.parent.group.name\" | \"process.parent.group_leader.entity_id\" | \"process.parent.group_leader.pid\" | \"process.parent.group_leader.start\" | \"process.parent.group_leader.vpid\" | \"process.parent.hash.md5\" | \"process.parent.hash.sha1\" | \"process.parent.hash.sha256\" | \"process.parent.hash.sha384\" | \"process.parent.hash.sha512\" | \"process.parent.hash.ssdeep\" | \"process.parent.hash.tlsh\" | \"process.parent.interactive\" | \"process.parent.macho.go_import_hash\" | \"process.parent.macho.go_imports\" | \"process.parent.macho.go_imports_names_entropy\" | \"process.parent.macho.go_imports_names_var_entropy\" | \"process.parent.macho.go_stripped\" | \"process.parent.macho.import_hash\" | \"process.parent.macho.imports\" | \"process.parent.macho.imports_names_entropy\" | \"process.parent.macho.imports_names_var_entropy\" | \"process.parent.macho.sections\" | \"process.parent.macho.symhash\" | \"process.parent.name\" | \"process.parent.pe.architecture\" | \"process.parent.pe.company\" | \"process.parent.pe.description\" | \"process.parent.pe.file_version\" | \"process.parent.pe.go_import_hash\" | \"process.parent.pe.go_imports\" | \"process.parent.pe.go_imports_names_entropy\" | \"process.parent.pe.go_imports_names_var_entropy\" | \"process.parent.pe.go_stripped\" | \"process.parent.pe.imphash\" | \"process.parent.pe.import_hash\" | \"process.parent.pe.imports\" | \"process.parent.pe.imports_names_entropy\" | \"process.parent.pe.imports_names_var_entropy\" | \"process.parent.pe.original_file_name\" | \"process.parent.pe.pehash\" | \"process.parent.pe.product\" | \"process.parent.pe.sections\" | \"process.parent.pgid\" | \"process.parent.pid\" | \"process.parent.real_group.id\" | \"process.parent.real_group.name\" | \"process.parent.real_user.id\" | \"process.parent.real_user.name\" | \"process.parent.saved_group.id\" | \"process.parent.saved_group.name\" | \"process.parent.saved_user.id\" | \"process.parent.saved_user.name\" | \"process.parent.start\" | \"process.parent.supplemental_groups.id\" | \"process.parent.supplemental_groups.name\" | \"process.parent.thread.capabilities.effective\" | \"process.parent.thread.capabilities.permitted\" | \"process.parent.thread.id\" | \"process.parent.thread.name\" | \"process.parent.title\" | \"process.parent.tty\" | \"process.parent.uptime\" | \"process.parent.user.id\" | \"process.parent.user.name\" | \"process.parent.vpid\" | \"process.parent.working_directory\" | \"process.pe.architecture\" | \"process.pe.company\" | \"process.pe.description\" | \"process.pe.file_version\" | \"process.pe.go_import_hash\" | \"process.pe.go_imports\" | \"process.pe.go_imports_names_entropy\" | \"process.pe.go_imports_names_var_entropy\" | \"process.pe.go_stripped\" | \"process.pe.imphash\" | \"process.pe.import_hash\" | \"process.pe.imports\" | \"process.pe.imports_names_entropy\" | \"process.pe.imports_names_var_entropy\" | \"process.pe.original_file_name\" | \"process.pe.pehash\" | \"process.pe.product\" | \"process.pe.sections\" | \"process.pgid\" | \"process.pid\" | \"process.previous.args\" | \"process.previous.args_count\" | \"process.previous.executable\" | \"process.real_group.id\" | \"process.real_group.name\" | \"process.real_user.id\" | \"process.real_user.name\" | \"process.saved_group.id\" | \"process.saved_group.name\" | \"process.saved_user.id\" | \"process.saved_user.name\" | \"process.session_leader.args\" | \"process.session_leader.args_count\" | \"process.session_leader.command_line\" | \"process.session_leader.entity_id\" | \"process.session_leader.executable\" | \"process.session_leader.group.id\" | \"process.session_leader.group.name\" | \"process.session_leader.interactive\" | \"process.session_leader.name\" | \"process.session_leader.parent.entity_id\" | \"process.session_leader.parent.pid\" | \"process.session_leader.parent.session_leader.entity_id\" | \"process.session_leader.parent.session_leader.pid\" | \"process.session_leader.parent.session_leader.start\" | \"process.session_leader.parent.session_leader.vpid\" | \"process.session_leader.parent.start\" | \"process.session_leader.parent.vpid\" | \"process.session_leader.pid\" | \"process.session_leader.real_group.id\" | \"process.session_leader.real_group.name\" | \"process.session_leader.real_user.id\" | \"process.session_leader.real_user.name\" | \"process.session_leader.same_as_process\" | \"process.session_leader.saved_group.id\" | \"process.session_leader.saved_group.name\" | \"process.session_leader.saved_user.id\" | \"process.session_leader.saved_user.name\" | \"process.session_leader.start\" | \"process.session_leader.supplemental_groups.id\" | \"process.session_leader.supplemental_groups.name\" | \"process.session_leader.tty\" | \"process.session_leader.user.id\" | \"process.session_leader.user.name\" | \"process.session_leader.vpid\" | \"process.session_leader.working_directory\" | \"process.start\" | \"process.supplemental_groups.id\" | \"process.supplemental_groups.name\" | \"process.thread.capabilities.effective\" | \"process.thread.capabilities.permitted\" | \"process.thread.id\" | \"process.thread.name\" | \"process.title\" | \"process.tty\" | \"process.uptime\" | \"process.user.id\" | \"process.user.name\" | \"process.vpid\" | \"process.working_directory\" | \"registry.data.bytes\" | \"registry.data.strings\" | \"registry.data.type\" | \"registry.hive\" | \"registry.key\" | \"registry.path\" | \"registry.value\" | \"related.hash\" | \"related.hosts\" | \"related.ip\" | \"related.user\" | \"rule.author\" | \"rule.category\" | \"rule.description\" | \"rule.id\" | \"rule.license\" | \"rule.name\" | \"rule.reference\" | \"rule.ruleset\" | \"rule.uuid\" | \"rule.version\" | \"server.address\" | \"server.as.number\" | \"server.as.organization.name\" | \"server.bytes\" | \"server.domain\" | \"server.geo.city_name\" | \"server.geo.continent_code\" | \"server.geo.continent_name\" | \"server.geo.country_iso_code\" | \"server.geo.country_name\" | \"server.geo.location\" | \"server.geo.name\" | \"server.geo.postal_code\" | \"server.geo.region_iso_code\" | \"server.geo.region_name\" | \"server.geo.timezone\" | \"server.ip\" | \"server.mac\" | \"server.nat.ip\" | \"server.nat.port\" | \"server.packets\" | \"server.port\" | \"server.registered_domain\" | \"server.subdomain\" | \"server.top_level_domain\" | \"server.user.domain\" | \"server.user.email\" | \"server.user.full_name\" | \"server.user.group.domain\" | \"server.user.group.id\" | \"server.user.group.name\" | \"server.user.hash\" | \"server.user.id\" | \"server.user.name\" | \"server.user.roles\" | \"service.address\" | \"service.ephemeral_id\" | \"service.id\" | \"service.node.name\" | \"service.node.role\" | \"service.node.roles\" | \"service.origin.address\" | \"service.origin.environment\" | \"service.origin.ephemeral_id\" | \"service.origin.id\" | \"service.origin.name\" | \"service.origin.node.name\" | \"service.origin.node.role\" | \"service.origin.node.roles\" | \"service.origin.state\" | \"service.origin.type\" | \"service.origin.version\" | \"service.state\" | \"service.target.address\" | \"service.target.environment\" | \"service.target.ephemeral_id\" | \"service.target.id\" | \"service.target.name\" | \"service.target.node.name\" | \"service.target.node.role\" | \"service.target.node.roles\" | \"service.target.state\" | \"service.target.type\" | \"service.target.version\" | \"service.type\" | \"service.version\" | \"source.address\" | \"source.as.number\" | \"source.as.organization.name\" | \"source.bytes\" | \"source.domain\" | \"source.geo.city_name\" | \"source.geo.continent_code\" | \"source.geo.continent_name\" | \"source.geo.country_iso_code\" | \"source.geo.country_name\" | \"source.geo.location\" | \"source.geo.name\" | \"source.geo.postal_code\" | \"source.geo.region_iso_code\" | \"source.geo.region_name\" | \"source.geo.timezone\" | \"source.ip\" | \"source.mac\" | \"source.nat.ip\" | \"source.nat.port\" | \"source.packets\" | \"source.port\" | \"source.registered_domain\" | \"source.subdomain\" | \"source.top_level_domain\" | \"source.user.domain\" | \"source.user.email\" | \"source.user.full_name\" | \"source.user.group.domain\" | \"source.user.group.id\" | \"source.user.group.name\" | \"source.user.hash\" | \"source.user.id\" | \"source.user.name\" | \"source.user.roles\" | \"span.id\" | \"threat.enrichments\" | \"threat.feed.dashboard_id\" | \"threat.feed.description\" | \"threat.feed.name\" | \"threat.feed.reference\" | \"threat.framework\" | \"threat.group.alias\" | \"threat.group.id\" | \"threat.group.name\" | \"threat.group.reference\" | \"threat.indicator.as.number\" | \"threat.indicator.as.organization.name\" | \"threat.indicator.confidence\" | \"threat.indicator.description\" | \"threat.indicator.email.address\" | \"threat.indicator.file.accessed\" | \"threat.indicator.file.attributes\" | \"threat.indicator.file.code_signature.digest_algorithm\" | \"threat.indicator.file.code_signature.exists\" | \"threat.indicator.file.code_signature.signing_id\" | \"threat.indicator.file.code_signature.status\" | \"threat.indicator.file.code_signature.subject_name\" | \"threat.indicator.file.code_signature.team_id\" | \"threat.indicator.file.code_signature.timestamp\" | \"threat.indicator.file.code_signature.trusted\" | \"threat.indicator.file.code_signature.valid\" | \"threat.indicator.file.created\" | \"threat.indicator.file.ctime\" | \"threat.indicator.file.device\" | \"threat.indicator.file.directory\" | \"threat.indicator.file.drive_letter\" | \"threat.indicator.file.elf.architecture\" | \"threat.indicator.file.elf.byte_order\" | \"threat.indicator.file.elf.cpu_type\" | \"threat.indicator.file.elf.creation_date\" | \"threat.indicator.file.elf.exports\" | \"threat.indicator.file.elf.go_import_hash\" | \"threat.indicator.file.elf.go_imports\" | \"threat.indicator.file.elf.go_imports_names_entropy\" | \"threat.indicator.file.elf.go_imports_names_var_entropy\" | \"threat.indicator.file.elf.go_stripped\" | \"threat.indicator.file.elf.header.abi_version\" | \"threat.indicator.file.elf.header.class\" | \"threat.indicator.file.elf.header.data\" | \"threat.indicator.file.elf.header.entrypoint\" | \"threat.indicator.file.elf.header.object_version\" | \"threat.indicator.file.elf.header.os_abi\" | \"threat.indicator.file.elf.header.type\" | \"threat.indicator.file.elf.header.version\" | \"threat.indicator.file.elf.import_hash\" | \"threat.indicator.file.elf.imports\" | \"threat.indicator.file.elf.imports_names_entropy\" | \"threat.indicator.file.elf.imports_names_var_entropy\" | \"threat.indicator.file.elf.sections\" | \"threat.indicator.file.elf.segments\" | \"threat.indicator.file.elf.shared_libraries\" | \"threat.indicator.file.elf.telfhash\" | \"threat.indicator.file.extension\" | \"threat.indicator.file.fork_name\" | \"threat.indicator.file.gid\" | \"threat.indicator.file.group\" | \"threat.indicator.file.hash.md5\" | \"threat.indicator.file.hash.sha1\" | \"threat.indicator.file.hash.sha256\" | \"threat.indicator.file.hash.sha384\" | \"threat.indicator.file.hash.sha512\" | \"threat.indicator.file.hash.ssdeep\" | \"threat.indicator.file.hash.tlsh\" | \"threat.indicator.file.inode\" | \"threat.indicator.file.mime_type\" | \"threat.indicator.file.mode\" | \"threat.indicator.file.mtime\" | \"threat.indicator.file.name\" | \"threat.indicator.file.owner\" | \"threat.indicator.file.path\" | \"threat.indicator.file.pe.architecture\" | \"threat.indicator.file.pe.company\" | \"threat.indicator.file.pe.description\" | \"threat.indicator.file.pe.file_version\" | \"threat.indicator.file.pe.go_import_hash\" | \"threat.indicator.file.pe.go_imports\" | \"threat.indicator.file.pe.go_imports_names_entropy\" | \"threat.indicator.file.pe.go_imports_names_var_entropy\" | \"threat.indicator.file.pe.go_stripped\" | \"threat.indicator.file.pe.imphash\" | \"threat.indicator.file.pe.import_hash\" | \"threat.indicator.file.pe.imports\" | \"threat.indicator.file.pe.imports_names_entropy\" | \"threat.indicator.file.pe.imports_names_var_entropy\" | \"threat.indicator.file.pe.original_file_name\" | \"threat.indicator.file.pe.pehash\" | \"threat.indicator.file.pe.product\" | \"threat.indicator.file.pe.sections\" | \"threat.indicator.file.size\" | \"threat.indicator.file.target_path\" | \"threat.indicator.file.type\" | \"threat.indicator.file.uid\" | \"threat.indicator.file.x509.alternative_names\" | \"threat.indicator.file.x509.issuer.common_name\" | \"threat.indicator.file.x509.issuer.country\" | \"threat.indicator.file.x509.issuer.distinguished_name\" | \"threat.indicator.file.x509.issuer.locality\" | \"threat.indicator.file.x509.issuer.organization\" | \"threat.indicator.file.x509.issuer.organizational_unit\" | \"threat.indicator.file.x509.issuer.state_or_province\" | \"threat.indicator.file.x509.not_after\" | \"threat.indicator.file.x509.not_before\" | \"threat.indicator.file.x509.public_key_algorithm\" | \"threat.indicator.file.x509.public_key_curve\" | \"threat.indicator.file.x509.public_key_exponent\" | \"threat.indicator.file.x509.public_key_size\" | \"threat.indicator.file.x509.serial_number\" | \"threat.indicator.file.x509.signature_algorithm\" | \"threat.indicator.file.x509.subject.common_name\" | \"threat.indicator.file.x509.subject.country\" | \"threat.indicator.file.x509.subject.distinguished_name\" | \"threat.indicator.file.x509.subject.locality\" | \"threat.indicator.file.x509.subject.organization\" | \"threat.indicator.file.x509.subject.organizational_unit\" | \"threat.indicator.file.x509.subject.state_or_province\" | \"threat.indicator.file.x509.version_number\" | \"threat.indicator.first_seen\" | \"threat.indicator.geo.city_name\" | \"threat.indicator.geo.continent_code\" | \"threat.indicator.geo.continent_name\" | \"threat.indicator.geo.country_iso_code\" | \"threat.indicator.geo.country_name\" | \"threat.indicator.geo.location\" | \"threat.indicator.geo.name\" | \"threat.indicator.geo.postal_code\" | \"threat.indicator.geo.region_iso_code\" | \"threat.indicator.geo.region_name\" | \"threat.indicator.geo.timezone\" | \"threat.indicator.ip\" | \"threat.indicator.last_seen\" | \"threat.indicator.marking.tlp\" | \"threat.indicator.marking.tlp_version\" | \"threat.indicator.modified_at\" | \"threat.indicator.name\" | \"threat.indicator.port\" | \"threat.indicator.provider\" | \"threat.indicator.reference\" | \"threat.indicator.registry.data.bytes\" | \"threat.indicator.registry.data.strings\" | \"threat.indicator.registry.data.type\" | \"threat.indicator.registry.hive\" | \"threat.indicator.registry.key\" | \"threat.indicator.registry.path\" | \"threat.indicator.registry.value\" | \"threat.indicator.scanner_stats\" | \"threat.indicator.sightings\" | \"threat.indicator.type\" | \"threat.indicator.url.domain\" | \"threat.indicator.url.extension\" | \"threat.indicator.url.fragment\" | \"threat.indicator.url.full\" | \"threat.indicator.url.original\" | \"threat.indicator.url.password\" | \"threat.indicator.url.path\" | \"threat.indicator.url.port\" | \"threat.indicator.url.query\" | \"threat.indicator.url.registered_domain\" | \"threat.indicator.url.scheme\" | \"threat.indicator.url.subdomain\" | \"threat.indicator.url.top_level_domain\" | \"threat.indicator.url.username\" | \"threat.indicator.x509.alternative_names\" | \"threat.indicator.x509.issuer.common_name\" | \"threat.indicator.x509.issuer.country\" | \"threat.indicator.x509.issuer.distinguished_name\" | \"threat.indicator.x509.issuer.locality\" | \"threat.indicator.x509.issuer.organization\" | \"threat.indicator.x509.issuer.organizational_unit\" | \"threat.indicator.x509.issuer.state_or_province\" | \"threat.indicator.x509.not_after\" | \"threat.indicator.x509.not_before\" | \"threat.indicator.x509.public_key_algorithm\" | \"threat.indicator.x509.public_key_curve\" | \"threat.indicator.x509.public_key_exponent\" | \"threat.indicator.x509.public_key_size\" | \"threat.indicator.x509.serial_number\" | \"threat.indicator.x509.signature_algorithm\" | \"threat.indicator.x509.subject.common_name\" | \"threat.indicator.x509.subject.country\" | \"threat.indicator.x509.subject.distinguished_name\" | \"threat.indicator.x509.subject.locality\" | \"threat.indicator.x509.subject.organization\" | \"threat.indicator.x509.subject.organizational_unit\" | \"threat.indicator.x509.subject.state_or_province\" | \"threat.indicator.x509.version_number\" | \"threat.software.alias\" | \"threat.software.id\" | \"threat.software.name\" | \"threat.software.platforms\" | \"threat.software.reference\" | \"threat.software.type\" | \"threat.tactic.id\" | \"threat.tactic.name\" | \"threat.tactic.reference\" | \"threat.technique.id\" | \"threat.technique.name\" | \"threat.technique.reference\" | \"threat.technique.subtechnique.id\" | \"threat.technique.subtechnique.name\" | \"threat.technique.subtechnique.reference\" | \"tls.cipher\" | \"tls.client.certificate\" | \"tls.client.certificate_chain\" | \"tls.client.hash.md5\" | \"tls.client.hash.sha1\" | \"tls.client.hash.sha256\" | \"tls.client.issuer\" | \"tls.client.ja3\" | \"tls.client.not_after\" | \"tls.client.not_before\" | \"tls.client.server_name\" | \"tls.client.subject\" | \"tls.client.supported_ciphers\" | \"tls.client.x509.alternative_names\" | \"tls.client.x509.issuer.common_name\" | \"tls.client.x509.issuer.country\" | \"tls.client.x509.issuer.distinguished_name\" | \"tls.client.x509.issuer.locality\" | \"tls.client.x509.issuer.organization\" | \"tls.client.x509.issuer.organizational_unit\" | \"tls.client.x509.issuer.state_or_province\" | \"tls.client.x509.not_after\" | \"tls.client.x509.not_before\" | \"tls.client.x509.public_key_algorithm\" | \"tls.client.x509.public_key_curve\" | \"tls.client.x509.public_key_exponent\" | \"tls.client.x509.public_key_size\" | \"tls.client.x509.serial_number\" | \"tls.client.x509.signature_algorithm\" | \"tls.client.x509.subject.common_name\" | \"tls.client.x509.subject.country\" | \"tls.client.x509.subject.distinguished_name\" | \"tls.client.x509.subject.locality\" | \"tls.client.x509.subject.organization\" | \"tls.client.x509.subject.organizational_unit\" | \"tls.client.x509.subject.state_or_province\" | \"tls.client.x509.version_number\" | \"tls.curve\" | \"tls.established\" | \"tls.next_protocol\" | \"tls.resumed\" | \"tls.server.certificate\" | \"tls.server.certificate_chain\" | \"tls.server.hash.md5\" | \"tls.server.hash.sha1\" | \"tls.server.hash.sha256\" | \"tls.server.issuer\" | \"tls.server.ja3s\" | \"tls.server.not_after\" | \"tls.server.not_before\" | \"tls.server.subject\" | \"tls.server.x509.alternative_names\" | \"tls.server.x509.issuer.common_name\" | \"tls.server.x509.issuer.country\" | \"tls.server.x509.issuer.distinguished_name\" | \"tls.server.x509.issuer.locality\" | \"tls.server.x509.issuer.organization\" | \"tls.server.x509.issuer.organizational_unit\" | \"tls.server.x509.issuer.state_or_province\" | \"tls.server.x509.not_after\" | \"tls.server.x509.not_before\" | \"tls.server.x509.public_key_algorithm\" | \"tls.server.x509.public_key_curve\" | \"tls.server.x509.public_key_exponent\" | \"tls.server.x509.public_key_size\" | \"tls.server.x509.serial_number\" | \"tls.server.x509.signature_algorithm\" | \"tls.server.x509.subject.common_name\" | \"tls.server.x509.subject.country\" | \"tls.server.x509.subject.distinguished_name\" | \"tls.server.x509.subject.locality\" | \"tls.server.x509.subject.organization\" | \"tls.server.x509.subject.organizational_unit\" | \"tls.server.x509.subject.state_or_province\" | \"tls.server.x509.version_number\" | \"tls.version\" | \"tls.version_protocol\" | \"trace.id\" | \"transaction.id\" | \"url.domain\" | \"url.extension\" | \"url.fragment\" | \"url.full\" | \"url.original\" | \"url.password\" | \"url.path\" | \"url.port\" | \"url.query\" | \"url.registered_domain\" | \"url.scheme\" | \"url.subdomain\" | \"url.top_level_domain\" | \"url.username\" | \"user.changes.domain\" | \"user.changes.email\" | \"user.changes.full_name\" | \"user.changes.group.domain\" | \"user.changes.group.id\" | \"user.changes.group.name\" | \"user.changes.hash\" | \"user.changes.id\" | \"user.changes.name\" | \"user.changes.roles\" | \"user.domain\" | \"user.effective.domain\" | \"user.effective.email\" | \"user.effective.full_name\" | \"user.effective.group.domain\" | \"user.effective.group.id\" | \"user.effective.group.name\" | \"user.effective.hash\" | \"user.effective.id\" | \"user.effective.name\" | \"user.effective.roles\" | \"user.email\" | \"user.full_name\" | \"user.group.domain\" | \"user.group.id\" | \"user.group.name\" | \"user.hash\" | \"user.id\" | \"user.name\" | \"user.risk.calculated_level\" | \"user.risk.calculated_score\" | \"user.risk.calculated_score_norm\" | \"user.risk.static_level\" | \"user.risk.static_score\" | \"user.risk.static_score_norm\" | \"user.roles\" | \"user.target.domain\" | \"user.target.email\" | \"user.target.full_name\" | \"user.target.group.domain\" | \"user.target.group.id\" | \"user.target.group.name\" | \"user.target.hash\" | \"user.target.id\" | \"user.target.name\" | \"user.target.roles\" | \"user_agent.device.name\" | \"user_agent.name\" | \"user_agent.original\" | \"user_agent.os.family\" | \"user_agent.os.full\" | \"user_agent.os.kernel\" | \"user_agent.os.name\" | \"user_agent.os.platform\" | \"user_agent.os.type\" | \"user_agent.os.version\" | \"user_agent.version\" | \"vulnerability.category\" | \"vulnerability.classification\" | \"vulnerability.description\" | \"vulnerability.enumeration\" | \"vulnerability.id\" | \"vulnerability.reference\" | \"vulnerability.report_id\" | \"vulnerability.scanner.vendor\" | \"vulnerability.score.base\" | \"vulnerability.score.environmental\" | \"vulnerability.score.temporal\" | \"vulnerability.score.version\" | \"vulnerability.severity\" | \"_source\" | \"_index\" | \"_id\" | \"_ignored\" | \"_routing\" | ", { "pluginId": "fieldsMetadata", "scope": "common", @@ -673,7 +673,7 @@ "label": "PartialFieldMetadataPlain", "description": [], "signature": [ - "{ name?: string | undefined; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"integration\" | \"metadata\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" + "{ name?: string | undefined; } & { allowed_values?: ({ description: string; name: string; } & { expected_event_types?: string[] | undefined; beta?: string | undefined; })[] | undefined; beta?: string | undefined; dashed_name?: string | undefined; description?: string | undefined; doc_values?: boolean | undefined; example?: unknown; expected_values?: string[] | undefined; flat_name?: string | undefined; format?: string | undefined; ignore_above?: number | undefined; index?: boolean | undefined; input_format?: string | undefined; level?: string | undefined; multi_fields?: { flat_name: string; name: string; type: string; }[] | undefined; normalize?: string[] | undefined; object_type?: string | undefined; original_fieldset?: string | undefined; output_format?: string | undefined; output_precision?: number | undefined; pattern?: string | undefined; required?: boolean | undefined; scaling_factor?: number | undefined; short?: string | undefined; source?: \"unknown\" | \"ecs\" | \"metadata\" | \"integration\" | undefined; type?: string | undefined; documentation_url?: string | undefined; }" ], "path": "x-pack/plugins/fields_metadata/common/fields_metadata/types.ts", "deprecated": false, diff --git a/api_docs/fields_metadata.mdx b/api_docs/fields_metadata.mdx index 3660d11b560cb..5d4f719e6a827 100644 --- a/api_docs/fields_metadata.mdx +++ b/api_docs/fields_metadata.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldsMetadata title: "fieldsMetadata" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldsMetadata plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldsMetadata'] --- import fieldsMetadataObj from './fields_metadata.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 008f13c234732..9b5b4af29654e 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fileUpload'] --- import fileUploadObj from './file_upload.devdocs.json'; diff --git a/api_docs/files.mdx b/api_docs/files.mdx index a7996dec4f4db..e32929eb9ce2f 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-09-11 +date: 2024-09-16 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 3b02d6f477b2c..c9177103781b2 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-09-11 +date: 2024-09-16 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 ae0ed39ae13a0..75ea32fc11c90 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -1556,6 +1556,14 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/scripts/endpoint/common/fleet_services.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/scripts/endpoint/common/fleet_services.ts" + }, { "plugin": "cloudDefend", "path": "x-pack/plugins/cloud_defend/public/test/mocks.ts" @@ -1568,14 +1576,6 @@ "plugin": "synthetics", "path": "x-pack/plugins/observability_solution/synthetics/server/synthetics_service/private_location/synthetics_private_location.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/scripts/endpoint/common/fleet_services.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/scripts/endpoint/common/fleet_services.ts" - }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts" @@ -5885,7 +5885,7 @@ "section": "def-server.Artifact", "text": "Artifact" }, - ", \"identifier\" | \"decodedSha256\">>({ identifier, decodedSha256, }: T) => string" + ", \"decodedSha256\" | \"identifier\">>({ identifier, decodedSha256, }: T) => string" ], "path": "x-pack/plugins/fleet/server/services/artifacts/mappings.ts", "deprecated": false, @@ -6251,7 +6251,7 @@ "section": "def-server.ElasticsearchClient", "text": "ElasticsearchClient" }, - " | undefined; withAgentCount?: boolean | undefined; }) => Promise<{ items: ", + " | undefined; withAgentCount?: boolean | undefined; spaceId?: string | undefined; }) => Promise<{ items: ", { "pluginId": "fleet", "scope": "common", @@ -6302,7 +6302,7 @@ "section": "def-server.ElasticsearchClient", "text": "ElasticsearchClient" }, - " | undefined; withAgentCount?: boolean | undefined; }" + " | undefined; withAgentCount?: boolean | undefined; spaceId?: string | undefined; }" ], "path": "x-pack/plugins/fleet/server/services/agent_policy.ts", "deprecated": false, @@ -11735,15 +11735,7 @@ "\nRemove an output from all package policies that are using it, and replace the output by the default ones." ], "signature": [ - "(soClient: ", - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "server", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-server.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - }, - ", esClient: ", + "(esClient: ", { "pluginId": "@kbn/core-elasticsearch-server", "scope": "server", @@ -11762,27 +11754,6 @@ "id": "def-server.PackagePolicyClient.removeOutputFromAll.$1", "type": "Object", "tags": [], - "label": "soClient", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-saved-objects-api-server", - "scope": "server", - "docId": "kibKbnCoreSavedObjectsApiServerPluginApi", - "section": "def-server.SavedObjectsClientContract", - "text": "SavedObjectsClientContract" - } - ], - "path": "x-pack/plugins/fleet/server/services/package_policy_service.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "fleet", - "id": "def-server.PackagePolicyClient.removeOutputFromAll.$2", - "type": "Object", - "tags": [], "label": "esClient", "description": [], "signature": [ @@ -11801,7 +11772,7 @@ }, { "parentPluginId": "fleet", - "id": "def-server.PackagePolicyClient.removeOutputFromAll.$3", + "id": "def-server.PackagePolicyClient.removeOutputFromAll.$2", "type": "string", "tags": [], "label": "outputId", @@ -23916,6 +23887,14 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/scripts/endpoint/common/fleet_services.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/scripts/endpoint/common/fleet_services.ts" + }, { "plugin": "cloudDefend", "path": "x-pack/plugins/cloud_defend/public/test/mocks.ts" @@ -23928,14 +23907,6 @@ "plugin": "synthetics", "path": "x-pack/plugins/observability_solution/synthetics/server/synthetics_service/private_location/synthetics_private_location.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/scripts/endpoint/common/fleet_services.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/scripts/endpoint/common/fleet_services.ts" - }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts" @@ -27995,7 +27966,7 @@ "label": "PackageSpecCategory", "description": [], "signature": [ - "\"connector\" | \"monitoring\" | \"security\" | \"observability\" | \"custom\" | \"infrastructure\" | \"cloud\" | \"enterprise_search\" | \"advanced_analytics_ueba\" | \"analytics_engine\" | \"application_observability\" | \"app_search\" | \"auditd\" | \"authentication\" | \"aws\" | \"azure\" | \"big_data\" | \"cdn_security\" | \"config_management\" | \"connector_client\" | \"containers\" | \"crawler\" | \"credential_management\" | \"crm\" | \"custom_logs\" | \"database_security\" | \"datastore\" | \"dns_security\" | \"edr_xdr\" | \"cloudsecurity_cdr\" | \"elasticsearch_sdk\" | \"elastic_stack\" | \"email_security\" | \"firewall_security\" | \"google_cloud\" | \"iam\" | \"ids_ips\" | \"java_observability\" | \"kubernetes\" | \"language_client\" | \"languages\" | \"load_balancer\" | \"message_queue\" | \"native_search\" | \"network\" | \"network_security\" | \"notification\" | \"os_system\" | \"process_manager\" | \"productivity\" | \"productivity_security\" | \"proxy_security\" | \"sdk_search\" | \"stream_processing\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"virtualization\" | \"vpn_security\" | \"vulnerability_management\" | \"web\" | \"web_application_firewall\" | \"websphere\" | \"workplace_search_content_source\" | \"workplace_search\"" + "\"connector\" | \"monitoring\" | \"security\" | \"observability\" | \"custom\" | \"infrastructure\" | \"cloud\" | \"kubernetes\" | \"enterprise_search\" | \"advanced_analytics_ueba\" | \"analytics_engine\" | \"application_observability\" | \"app_search\" | \"auditd\" | \"authentication\" | \"aws\" | \"azure\" | \"big_data\" | \"cdn_security\" | \"config_management\" | \"connector_client\" | \"containers\" | \"crawler\" | \"credential_management\" | \"crm\" | \"custom_logs\" | \"database_security\" | \"datastore\" | \"dns_security\" | \"edr_xdr\" | \"cloudsecurity_cdr\" | \"elasticsearch_sdk\" | \"elastic_stack\" | \"email_security\" | \"firewall_security\" | \"google_cloud\" | \"iam\" | \"ids_ips\" | \"java_observability\" | \"language_client\" | \"languages\" | \"load_balancer\" | \"message_queue\" | \"native_search\" | \"network\" | \"network_security\" | \"notification\" | \"os_system\" | \"process_manager\" | \"productivity\" | \"productivity_security\" | \"proxy_security\" | \"sdk_search\" | \"stream_processing\" | \"support\" | \"threat_intel\" | \"ticketing\" | \"version_control\" | \"virtualization\" | \"vpn_security\" | \"vulnerability_management\" | \"web\" | \"web_application_firewall\" | \"websphere\" | \"workplace_search_content_source\" | \"workplace_search\"" ], "path": "x-pack/plugins/fleet/common/types/models/package_spec.ts", "deprecated": false, diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index f5feff40fa517..46947a661ce66 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-09-11 +date: 2024-09-16 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 | |-------------------|-----------|------------------------|-----------------| -| 1362 | 5 | 1239 | 74 | +| 1361 | 5 | 1238 | 74 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index ebed9e4741aa1..9ec721584a40e 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-09-11 +date: 2024-09-16 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 7f3ec5061a455..fa612c8fb0153 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-09-11 +date: 2024-09-16 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 9b0d1630b9437..aaae09d932377 100644 --- a/api_docs/home.devdocs.json +++ b/api_docs/home.devdocs.json @@ -1984,7 +1984,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; } & { id: string; type: \"string\" | \"number\"; 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; } & { id: string; type: \"string\" | \"number\"; 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; } & { id: string; type: \"string\" | \"number\"; 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<{ artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjects?: any[] | undefined; euiIconType?: string | undefined; isBeta?: boolean | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { id: string; type: \"string\" | \"number\"; 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; } & { id: string; type: \"string\" | \"number\"; 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; 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; } & { id: string; type: \"string\" | \"number\"; 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, @@ -2022,7 +2022,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; } & { id: string; type: \"string\" | \"number\"; 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; } & { id: string; type: \"string\" | \"number\"; 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; } & { id: string; type: \"string\" | \"number\"; 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 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 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; } & { id: string; type: \"string\" | \"number\"; 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; } & { id: string; type: \"string\" | \"number\"; 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 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; } & { id: string; type: \"string\" | \"number\"; 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 d9f1ef02cf86f..fcca7ce317b81 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-09-11 +date: 2024-09-16 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 36f0ac8f8ad32..748320ecfc75f 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-09-11 +date: 2024-09-16 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 dd094dbec0ff0..1e4fb2a322ecd 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-09-11 +date: 2024-09-16 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 5ebfb57c30f4c..0e6c5e0f704ef 100644 --- a/api_docs/index_management.devdocs.json +++ b/api_docs/index_management.devdocs.json @@ -108,7 +108,7 @@ "tags": [], "label": "Index", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -119,7 +119,7 @@ "tags": [], "label": "name", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -133,7 +133,7 @@ "signature": [ "string | number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -147,7 +147,7 @@ "signature": [ "string | number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -158,7 +158,7 @@ "tags": [], "label": "isFrozen", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -169,7 +169,7 @@ "tags": [], "label": "hidden", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -183,7 +183,7 @@ "signature": [ "string | string[]" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -197,7 +197,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -211,7 +211,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -226,7 +226,7 @@ "IlmExplainLifecycleLifecycleExplain", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -240,7 +240,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -255,7 +255,7 @@ "HealthStatus", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -270,7 +270,7 @@ "IndicesStatsIndexMetadataState", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -284,7 +284,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -298,7 +298,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -312,7 +312,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -326,7 +326,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -340,7 +340,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -354,7 +354,7 @@ "tags": [], "label": "IndexMappingProps", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -367,15 +367,15 @@ "description": [], "signature": [ { - "pluginId": "@kbn/index-management", + "pluginId": "@kbn/index-management-shared-types", "scope": "common", - "docId": "kibKbnIndexManagementPluginApi", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", "section": "def-common.Index", "text": "Index" }, " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -389,7 +389,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -407,7 +407,7 @@ "tags": [], "label": "IndexManagementPluginSetup", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -420,14 +420,14 @@ "description": [], "signature": [ { - "pluginId": "@kbn/index-management", + "pluginId": "@kbn/index-management-shared-types", "scope": "common", - "docId": "kibKbnIndexManagementPluginApi", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", "section": "def-common.PublicApiServiceSetup", "text": "PublicApiServiceSetup" } ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -440,14 +440,14 @@ "description": [], "signature": [ { - "pluginId": "@kbn/index-management", + "pluginId": "@kbn/index-management-shared-types", "scope": "common", - "docId": "kibKbnIndexManagementPluginApi", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", "section": "def-common.ExtensionsSetup", "text": "ExtensionsSetup" } ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -462,7 +462,7 @@ "tags": [], "label": "IndexManagementPluginStart", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -475,14 +475,14 @@ "description": [], "signature": [ { - "pluginId": "@kbn/index-management", + "pluginId": "@kbn/index-management-shared-types", "scope": "common", - "docId": "kibKbnIndexManagementPluginApi", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", "section": "def-common.ExtensionsSetup", "text": "ExtensionsSetup" } ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -504,15 +504,15 @@ }, "; }) => React.FC<", { - "pluginId": "@kbn/index-management", + "pluginId": "@kbn/index-management-shared-types", "scope": "common", - "docId": "kibKbnIndexManagementPluginApi", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", "section": "def-common.IndexMappingProps", "text": "IndexMappingProps" }, ">" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -523,7 +523,7 @@ "tags": [], "label": "deps", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -544,7 +544,7 @@ }, "" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -643,7 +643,7 @@ "tags": [], "label": "Index", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -654,7 +654,7 @@ "tags": [], "label": "name", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -668,7 +668,7 @@ "signature": [ "string | number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -682,7 +682,7 @@ "signature": [ "string | number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -693,7 +693,7 @@ "tags": [], "label": "isFrozen", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -704,7 +704,7 @@ "tags": [], "label": "hidden", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -718,7 +718,7 @@ "signature": [ "string | string[]" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -732,7 +732,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -746,7 +746,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -761,7 +761,7 @@ "IlmExplainLifecycleLifecycleExplain", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -775,7 +775,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -790,7 +790,7 @@ "HealthStatus", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -805,7 +805,7 @@ "IndicesStatsIndexMetadataState", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -819,7 +819,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -833,7 +833,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -847,7 +847,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -861,7 +861,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -875,7 +875,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -2166,7 +2166,7 @@ "tags": [], "label": "Index", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -2177,7 +2177,7 @@ "tags": [], "label": "name", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2191,7 +2191,7 @@ "signature": [ "string | number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2205,7 +2205,7 @@ "signature": [ "string | number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2216,7 +2216,7 @@ "tags": [], "label": "isFrozen", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2227,7 +2227,7 @@ "tags": [], "label": "hidden", "description": [], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2241,7 +2241,7 @@ "signature": [ "string | string[]" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2255,7 +2255,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2269,7 +2269,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2284,7 +2284,7 @@ "IlmExplainLifecycleLifecycleExplain", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2298,7 +2298,7 @@ "signature": [ "boolean | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2313,7 +2313,7 @@ "HealthStatus", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2328,7 +2328,7 @@ "IndicesStatsIndexMetadataState", " | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2342,7 +2342,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2356,7 +2356,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2370,7 +2370,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2384,7 +2384,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -2398,7 +2398,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/packages/index-management/src/types.ts", + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", "deprecated": false, "trackAdoption": false } diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index e83ef6ac1b988..aab6c815de772 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/inference.devdocs.json b/api_docs/inference.devdocs.json index f3ad7f665a14c..5c522fdaadfec 100644 --- a/api_docs/inference.devdocs.json +++ b/api_docs/inference.devdocs.json @@ -209,7 +209,13 @@ "description": [], "signature": [ "({\n client,\n connectorId,\n tools,\n toolChoice,\n logger,\n ...rest\n}: { client: Pick<", - "InferenceClient", + { + "pluginId": "inference", + "scope": "server", + "docId": "kibInferencePluginApi", + "section": "def-server.InferenceClient", + "text": "InferenceClient" + }, ", \"output\" | \"chatComplete\">; connectorId: string; logger: Pick<", { "pluginId": "@kbn/logging", @@ -243,7 +249,13 @@ "description": [], "signature": [ "{ client: Pick<", - "InferenceClient", + { + "pluginId": "inference", + "scope": "server", + "docId": "kibInferencePluginApi", + "section": "def-server.InferenceClient", + "text": "InferenceClient" + }, ", \"output\" | \"chatComplete\">; connectorId: string; logger: Pick<", { "pluginId": "@kbn/logging", @@ -302,9 +314,9 @@ "signature": [ "() => ", "OperatorFunction", - ">>" + ">" ], "path": "x-pack/plugins/inference/common/output/without_output_update_events.ts", "deprecated": false, @@ -335,7 +347,182 @@ "initialIsOpen": false } ], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "inference", + "id": "def-server.InferenceClient", + "type": "Interface", + "tags": [], + "label": "InferenceClient", + "description": [], + "path": "x-pack/plugins/inference/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "inference", + "id": "def-server.InferenceClient.chatComplete", + "type": "Function", + "tags": [], + "label": "chatComplete", + "description": [ + "\n`chatComplete` requests the LLM to generate a response to\na prompt or conversation, which might be plain text\nor a tool call, or a combination of both." + ], + "signature": [ + " = ", + "ToolOptions", + ">(options: { connectorId: string; system?: string | undefined; messages: ", + { + "pluginId": "inference", + "scope": "common", + "docId": "kibInferencePluginApi", + "section": "def-common.Message", + "text": "Message" + }, + "[]; } & TToolOptions) => ", + "ChatCompletionResponse", + "" + ], + "path": "x-pack/plugins/inference/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "inference", + "id": "def-server.InferenceClient.chatComplete.$1", + "type": "CompoundType", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ connectorId: string; system?: string | undefined; messages: ", + { + "pluginId": "inference", + "scope": "common", + "docId": "kibInferencePluginApi", + "section": "def-common.Message", + "text": "Message" + }, + "[]; } & TToolOptions" + ], + "path": "x-pack/plugins/inference/common/chat_complete/index.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "inference", + "id": "def-server.InferenceClient.output", + "type": "Function", + "tags": [], + "label": "output", + "description": [ + "\n`output` asks the LLM to generate a structured (JSON)\nresponse based on a schema and a prompt or conversation." + ], + "signature": [ + "(id: TId, options: { connectorId: string; system?: string | undefined; input: string; schema?: TOutputSchema | undefined; previousMessages?: ", + { + "pluginId": "inference", + "scope": "common", + "docId": "kibInferencePluginApi", + "section": "def-common.Message", + "text": "Message" + }, + "[] | undefined; }) => ", + "Observable", + "<", + "OutputEvent", + " : undefined>>" + ], + "path": "x-pack/plugins/inference/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "inference", + "id": "def-server.InferenceClient.output.$1", + "type": "Uncategorized", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "TId" + ], + "path": "x-pack/plugins/inference/common/output/index.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "inference", + "id": "def-server.InferenceClient.output.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ connectorId: string; system?: string | undefined; input: string; schema?: TOutputSchema | undefined; previousMessages?: ", + { + "pluginId": "inference", + "scope": "common", + "docId": "kibInferencePluginApi", + "section": "def-common.Message", + "text": "Message" + }, + "[] | undefined; }" + ], + "path": "x-pack/plugins/inference/common/output/index.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "inference", + "id": "def-server.InferenceClient.getConnectorById", + "type": "Function", + "tags": [], + "label": "getConnectorById", + "description": [ + "\n`getConnectorById` returns an inference connector by id.\nNon-inference connectors will throw an error." + ], + "signature": [ + "(id: string) => Promise<", + "InferenceConnector", + ">" + ], + "path": "x-pack/plugins/inference/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "inference", + "id": "def-server.InferenceClient.getConnectorById.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/inference/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], "enums": [], "misc": [], "objects": [], @@ -375,7 +562,13 @@ ], "signature": [ "(options: InferenceClientCreateOptions) => ", - "InferenceClient" + { + "pluginId": "inference", + "scope": "server", + "docId": "kibInferencePluginApi", + "section": "def-server.InferenceClient", + "text": "InferenceClient" + } ], "path": "x-pack/plugins/inference/server/types.ts", "deprecated": false, diff --git a/api_docs/inference.mdx b/api_docs/inference.mdx index 86a6c02292b78..e32414ade4bc9 100644 --- a/api_docs/inference.mdx +++ b/api_docs/inference.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inference title: "inference" image: https://source.unsplash.com/400x175/?github description: API docs for the inference plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inference'] --- import inferenceObj from './inference.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 41 | 0 | 39 | 13 | +| 49 | 0 | 44 | 12 | ## Client @@ -45,6 +45,9 @@ Contact [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai ### Functions +### Interfaces + + ## Common ### Functions diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index 3873f0ce6a6d1..133bdddf8fd65 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-09-11 +date: 2024-09-16 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 b6d5aad68bf49..a39bbf1c195a9 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines'] --- import ingestPipelinesObj from './ingest_pipelines.devdocs.json'; diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index e7ed8d3d0db40..12c88f74c115c 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/integration_assistant.devdocs.json b/api_docs/integration_assistant.devdocs.json index e951ca8bcfc20..6955e1caf5cac 100644 --- a/api_docs/integration_assistant.devdocs.json +++ b/api_docs/integration_assistant.devdocs.json @@ -199,7 +199,7 @@ "label": "AnalyzeLogsResponse", "description": [], "signature": [ - "{ results: { samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }; additionalProcessors?: ", + "{ results: { samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }; additionalProcessors?: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -238,7 +238,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }" + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }" ], "path": "x-pack/plugins/integration_assistant/common/api/build_integration/build_integration.ts", "deprecated": false, @@ -265,7 +265,7 @@ "label": "CategorizationRequestBody", "description": [], "signature": [ - "{ connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", + "{ connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -403,7 +403,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }" + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -447,7 +447,7 @@ "label": "EcsMappingRequestBody", "description": [], "signature": [ - "{ connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; mapping?: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\"> | undefined; additionalProcessors?: ", + "{ connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; mapping?: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\"> | undefined; additionalProcessors?: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -555,7 +555,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }" + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -672,7 +672,7 @@ "label": "RelatedRequestBody", "description": [], "signature": [ - "{ connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", + "{ connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -736,7 +736,7 @@ "\nFormat of the provided log samples." ], "signature": [ - "{ name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }" + "{ name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -768,7 +768,7 @@ "label": "AnalyzeLogsResponse", "description": [], "signature": [ - "Zod.ZodObject<{ results: Zod.ZodObject<{ samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; parsedSamples: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }, { samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }>; additionalProcessors: Zod.ZodOptional; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; parsedSamples: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }, { samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }>; additionalProcessors: Zod.ZodOptional, \"many\">>; }, \"strip\", Zod.ZodTypeAny, { results: { samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }; additionalProcessors?: ", + ">, \"many\">>; }, \"strip\", Zod.ZodTypeAny, { results: { samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }; additionalProcessors?: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -792,7 +792,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }, { results: { samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }; additionalProcessors?: ", + "[] | undefined; }, { results: { samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; parsedSamples: string[]; }; additionalProcessors?: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -879,7 +879,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -895,7 +895,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -911,7 +911,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>, \"many\">; logo: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>, \"many\">; logo: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -927,7 +927,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -943,7 +943,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { integration: { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { integration: { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -959,7 +959,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }, { integration: { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }, { integration: { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -975,7 +975,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }>" + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }; }>" ], "path": "x-pack/plugins/integration_assistant/common/api/build_integration/build_integration.ts", "deprecated": false, @@ -990,7 +990,7 @@ "label": "CategorizationRequestBody", "description": [], "signature": [ - "Zod.ZodObject<{ packageName: Zod.ZodString; dataStreamName: Zod.ZodString; rawSamples: Zod.ZodArray; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; currentPipeline: Zod.ZodObject<{ name: Zod.ZodOptional; description: Zod.ZodOptional; version: Zod.ZodOptional; processors: Zod.ZodArray; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; currentPipeline: Zod.ZodObject<{ name: Zod.ZodOptional; description: Zod.ZodOptional; version: Zod.ZodOptional; processors: Zod.ZodArray; connectorId: Zod.ZodString; langSmithOptions: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", + "[] | undefined; }>; connectorId: Zod.ZodString; langSmithOptions: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1070,7 +1070,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; }, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", + "[] | undefined; }; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; }, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1434,7 +1434,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1450,7 +1450,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1466,7 +1466,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>" + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -1496,7 +1496,7 @@ "label": "EcsMappingRequestBody", "description": [], "signature": [ - "Zod.ZodObject<{ packageName: Zod.ZodString; dataStreamName: Zod.ZodString; rawSamples: Zod.ZodArray; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; mapping: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>>; additionalProcessors: Zod.ZodOptional; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; mapping: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>>; additionalProcessors: Zod.ZodOptional, \"many\">>; connectorId: Zod.ZodString; langSmithOptions: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; mapping?: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\"> | undefined; additionalProcessors?: ", + ">, \"many\">>; connectorId: Zod.ZodString; langSmithOptions: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; mapping?: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\"> | undefined; additionalProcessors?: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1520,7 +1520,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; mapping?: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\"> | undefined; additionalProcessors?: ", + "[] | undefined; }, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; mapping?: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\"> | undefined; additionalProcessors?: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1796,7 +1796,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }>; docs: Zod.ZodArray, Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">>, \"many\">; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1812,7 +1812,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }, { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1828,7 +1828,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>, \"many\">; logo: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }>, \"many\">; logo: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1844,7 +1844,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", + "[] | undefined; }; docs: Zod.objectOutputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }, { name: string; title: string; description: string; dataStreams: { name: string; title: string; description: string; inputTypes: (\"kafka\" | \"aws-cloudwatch\" | \"aws-s3\" | \"azure-blob-storage\" | \"azure-eventhub\" | \"cel\" | \"cloudfoundry\" | \"filestream\" | \"gcp-pubsub\" | \"gcs\" | \"http_endpoint\" | \"journald\" | \"tcp\" | \"udp\")[]; rawSamples: string[]; pipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -1860,7 +1860,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }>" + "[] | undefined; }; docs: Zod.objectInputType<{}, Zod.ZodTypeAny, \"passthrough\">[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; }[]; logo?: string | undefined; }>" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, @@ -1954,7 +1954,7 @@ "label": "RelatedRequestBody", "description": [], "signature": [ - "Zod.ZodObject<{ packageName: Zod.ZodString; dataStreamName: Zod.ZodString; rawSamples: Zod.ZodArray; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; currentPipeline: Zod.ZodObject<{ name: Zod.ZodOptional; description: Zod.ZodOptional; version: Zod.ZodOptional; processors: Zod.ZodArray; samplesFormat: Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>; currentPipeline: Zod.ZodObject<{ name: Zod.ZodOptional; description: Zod.ZodOptional; version: Zod.ZodOptional; processors: Zod.ZodArray; connectorId: Zod.ZodString; langSmithOptions: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", + "[] | undefined; }>; connectorId: Zod.ZodString; langSmithOptions: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -2034,7 +2034,7 @@ "section": "def-common.ESProcessorItem", "text": "ESProcessorItem" }, - "[] | undefined; }; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; }, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", + "[] | undefined; }; langSmithOptions?: { apiKey: string; projectName: string; } | undefined; }, { connectorId: string; packageName: string; rawSamples: string[]; samplesFormat: { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }; dataStreamName: string; currentPipeline: { processors: ", { "pluginId": "integrationAssistant", "scope": "common", @@ -2208,7 +2208,7 @@ "label": "SamplesFormat", "description": [], "signature": [ - "Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\" | \"unsupported\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>" + "Zod.ZodObject<{ name: Zod.ZodEnum<[\"ndjson\", \"json\", \"csv\", \"structured\", \"unstructured\", \"unsupported\"]>; multiline: Zod.ZodOptional; json_path: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }, { name: \"unsupported\" | \"json\" | \"ndjson\" | \"csv\" | \"structured\" | \"unstructured\"; multiline?: boolean | undefined; json_path?: string[] | undefined; }>" ], "path": "x-pack/plugins/integration_assistant/common/api/model/common_attributes.ts", "deprecated": false, diff --git a/api_docs/integration_assistant.mdx b/api_docs/integration_assistant.mdx index 6349cd9f80fa8..549932c21dea2 100644 --- a/api_docs/integration_assistant.mdx +++ b/api_docs/integration_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/integrationAssistant title: "integrationAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the integrationAssistant plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'integrationAssistant'] --- import integrationAssistantObj from './integration_assistant.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 01e6d23b4188a..dbe988497a1c5 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/inventory.devdocs.json b/api_docs/inventory.devdocs.json new file mode 100644 index 0000000000000..26f3f2490f5b6 --- /dev/null +++ b/api_docs/inventory.devdocs.json @@ -0,0 +1,113 @@ +{ + "id": "inventory", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [], + "setup": { + "parentPluginId": "inventory", + "id": "def-public.InventoryPublicSetup", + "type": "Interface", + "tags": [], + "label": "InventoryPublicSetup", + "description": [], + "path": "x-pack/plugins/observability_solution/inventory/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "setup", + "initialIsOpen": true + }, + "start": { + "parentPluginId": "inventory", + "id": "def-public.InventoryPublicStart", + "type": "Interface", + "tags": [], + "label": "InventoryPublicStart", + "description": [], + "path": "x-pack/plugins/observability_solution/inventory/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "start", + "initialIsOpen": true + } + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "inventory", + "id": "def-server.InventoryServerRouteRepository", + "type": "Type", + "tags": [], + "label": "InventoryServerRouteRepository", + "description": [], + "signature": [ + "{ \"GET /internal/inventory/entity_types\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/inventory/entity_types\", undefined, ", + "InventoryRouteHandlerResources", + ", { definitions: ", + "EntityTypeDefinition", + "[]; }, ", + "InventoryRouteCreateOptions", + ">; }" + ], + "path": "x-pack/plugins/observability_solution/inventory/server/routes/get_global_inventory_route_repository.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [], + "setup": { + "parentPluginId": "inventory", + "id": "def-server.InventoryServerSetup", + "type": "Interface", + "tags": [], + "label": "InventoryServerSetup", + "description": [], + "path": "x-pack/plugins/observability_solution/inventory/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "setup", + "initialIsOpen": true + }, + "start": { + "parentPluginId": "inventory", + "id": "def-server.InventoryServerStart", + "type": "Interface", + "tags": [], + "label": "InventoryServerStart", + "description": [], + "path": "x-pack/plugins/observability_solution/inventory/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "lifecycle": "start", + "initialIsOpen": true + } + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/inventory.mdx b/api_docs/inventory.mdx new file mode 100644 index 0000000000000..438359ff00cad --- /dev/null +++ b/api_docs/inventory.mdx @@ -0,0 +1,44 @@ +--- +#### +#### 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: kibInventoryPluginApi +slug: /kibana-dev-docs/api/inventory +title: "inventory" +image: https://source.unsplash.com/400x175/?github +description: API docs for the inventory plugin +date: 2024-09-16 +tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inventory'] +--- +import inventoryObj from './inventory.devdocs.json'; + + + +Contact [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 5 | 0 | 5 | 3 | + +## Client + +### Setup + + +### Start + + +## Server + +### Setup + + +### Start + + +### Consts, variables and types + + diff --git a/api_docs/investigate.mdx b/api_docs/investigate.mdx index 4bdb9c86aa722..c3c540de2f7f3 100644 --- a/api_docs/investigate.mdx +++ b/api_docs/investigate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/investigate title: "investigate" image: https://source.unsplash.com/400x175/?github description: API docs for the investigate plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'investigate'] --- import investigateObj from './investigate.devdocs.json'; diff --git a/api_docs/investigate_app.devdocs.json b/api_docs/investigate_app.devdocs.json index 932cba12f7bab..089eb27f74985 100644 --- a/api_docs/investigate_app.devdocs.json +++ b/api_docs/investigate_app.devdocs.json @@ -50,221 +50,163 @@ "label": "InvestigateAppServerRouteRepository", "description": [], "signature": [ - "{ \"GET /api/observability/investigations/{investigationId}/items 2023-10-31\": { endpoint: \"GET /api/observability/investigations/{investigationId}/items 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + "{ \"GET /api/observability/investigations/{investigationId}/items 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/observability/investigations/{investigationId}/items 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; }; }, { path: { investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; }; }; }) => Promise<({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]>; } & ", + ", ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[], ", "InvestigateAppRouteCreateOptions", - "; \"PUT /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\": { endpoint: \"PUT /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; itemId: ", - "StringC", - "; }>; body: ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>; }> | undefined; handler: ({}: ", + ">; \"PUT /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; itemId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { itemId: string; investigationId: string; }, { itemId: string; investigationId: string; }>; body: Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>; }, \"strip\", Zod.ZodTypeAny, { body: { params: Record; type: string; title: string; }; path: { itemId: string; investigationId: string; }; }, { body: { params: Record; type: string; title: string; }; path: { itemId: string; investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; itemId: string; }; body: { title: string; type: string; params: { [x: string]: any; }; }; }; }) => Promise; } & ", + ", void, ", "InvestigateAppRouteCreateOptions", - "; \"DELETE /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\": { endpoint: \"DELETE /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; itemId: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + ">; \"DELETE /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /api/observability/investigations/{investigationId}/items/{itemId} 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; itemId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { itemId: string; investigationId: string; }, { itemId: string; investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { itemId: string; investigationId: string; }; }, { path: { itemId: string; investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; itemId: string; }; }; }) => Promise; } & ", + ", void, ", "InvestigateAppRouteCreateOptions", - "; \"POST /api/observability/investigations/{investigationId}/items 2023-10-31\": { endpoint: \"POST /api/observability/investigations/{investigationId}/items 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; body: ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>; }> | undefined; handler: ({}: ", + ">; \"POST /api/observability/investigations/{investigationId}/items 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/observability/investigations/{investigationId}/items 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; body: Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>; }, \"strip\", Zod.ZodTypeAny, { body: { params: Record; type: string; title: string; }; path: { investigationId: string; }; }, { body: { params: Record; type: string; title: string; }; path: { investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; }; body: { title: string; type: string; params: { [x: string]: any; }; }; }; }) => Promise<{ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; }>; } & ", + ", { id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; }, ", "InvestigateAppRouteCreateOptions", - "; \"DELETE /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\": { endpoint: \"DELETE /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; noteId: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + ">; \"DELETE /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; noteId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; noteId: string; }, { investigationId: string; noteId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; noteId: string; }; }, { path: { investigationId: string; noteId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; noteId: string; }; }; }) => Promise; } & ", + ", void, ", "InvestigateAppRouteCreateOptions", - "; \"PUT /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\": { endpoint: \"PUT /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; noteId: ", - "StringC", - "; }>; body: ", - "TypeC", - "<{ content: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + ">; \"PUT /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /api/observability/investigations/{investigationId}/notes/{noteId} 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; noteId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; noteId: string; }, { investigationId: string; noteId: string; }>; body: Zod.ZodObject<{ content: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { content: string; }, { content: string; }>; }, \"strip\", Zod.ZodTypeAny, { body: { content: string; }; path: { investigationId: string; noteId: string; }; }, { body: { content: string; }; path: { investigationId: string; noteId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; noteId: string; }; body: { content: string; }; }; }) => Promise; } & ", + ", void, ", "InvestigateAppRouteCreateOptions", - "; \"GET /api/observability/investigations/{investigationId}/notes 2023-10-31\": { endpoint: \"GET /api/observability/investigations/{investigationId}/notes 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + ">; \"GET /api/observability/investigations/{investigationId}/notes 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/observability/investigations/{investigationId}/notes 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; }; }, { path: { investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; }; }; }) => Promise<{ id: string; content: string; createdAt: number; createdBy: string; }[]>; } & ", + ", { id: string; createdBy: string; createdAt: number; content: string; }[], ", "InvestigateAppRouteCreateOptions", - "; \"POST /api/observability/investigations/{investigationId}/notes 2023-10-31\": { endpoint: \"POST /api/observability/investigations/{investigationId}/notes 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; body: ", - "TypeC", - "<{ content: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + ">; \"POST /api/observability/investigations/{investigationId}/notes 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/observability/investigations/{investigationId}/notes 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; body: Zod.ZodObject<{ content: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { content: string; }, { content: string; }>; }, \"strip\", Zod.ZodTypeAny, { body: { content: string; }; path: { investigationId: string; }; }, { body: { content: string; }; path: { investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; }; body: { content: string; }; }; }) => Promise<{ id: string; content: string; createdAt: number; createdBy: string; }>; } & ", + ", { id: string; createdBy: string; createdAt: number; content: string; }, ", "InvestigateAppRouteCreateOptions", - "; \"DELETE /api/observability/investigations/{investigationId} 2023-10-31\": { endpoint: \"DELETE /api/observability/investigations/{investigationId} 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + ">; \"DELETE /api/observability/investigations/{investigationId} 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /api/observability/investigations/{investigationId} 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; }; }, { path: { investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; }; }; }) => Promise; } & ", + ", void, ", "InvestigateAppRouteCreateOptions", - "; \"PUT /api/observability/investigations/{investigationId} 2023-10-31\": { endpoint: \"PUT /api/observability/investigations/{investigationId} 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; body: ", - "PartialC", - "<{ title: ", - "StringC", - "; status: ", - "UnionC", - "<[", - "LiteralC", - "<\"ongoing\">, ", - "LiteralC", - "<\"closed\">]>; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; }>; }> | undefined; handler: ({}: ", + ">; \"PUT /api/observability/investigations/{investigationId} 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /api/observability/investigations/{investigationId} 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; body: Zod.ZodObject<{ title: Zod.ZodOptional; status: Zod.ZodOptional, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>>; params: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>>; tags: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }, { params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { body: { params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }; path: { investigationId: string; }; }, { body: { params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }; path: { investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; }; body: { title?: string | undefined; status?: \"closed\" | \"ongoing\" | undefined; params?: { timeRange: { from: number; to: number; }; } | undefined; }; }; }) => Promise<{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]; }>; } & ", + ", { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, ", "InvestigateAppRouteCreateOptions", - "; \"GET /api/observability/investigations/{investigationId} 2023-10-31\": { endpoint: \"GET /api/observability/investigations/{investigationId} 2023-10-31\"; params?: ", - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + ">; \"GET /api/observability/investigations/{investigationId} 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/observability/investigations/{investigationId} 2023-10-31\", Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; }; }, { path: { investigationId: string; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { path: { investigationId: string; }; }; }) => Promise<{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]; }>; } & ", + ", { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, ", "InvestigateAppRouteCreateOptions", - "; \"GET /api/observability/investigations 2023-10-31\": { endpoint: \"GET /api/observability/investigations 2023-10-31\"; params?: ", - "PartialC", - "<{ query: ", - "PartialC", - "<{ alertId: ", - "StringC", - "; page: ", - "StringC", - "; perPage: ", - "StringC", - "; }>; }> | undefined; handler: ({}: ", + ">; \"GET /api/observability/investigations 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/observability/investigations 2023-10-31\", Zod.ZodObject<{ query: Zod.ZodOptional; page: Zod.ZodOptional; perPage: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; }, { page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { query?: { page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; } | undefined; }, { query?: { page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; } | undefined; }>, ", "InvestigateAppRouteHandlerResources", - " & { params?: { query?: { alertId?: string | undefined; page?: string | undefined; perPage?: string | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: { id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]; }[]; }>; } & ", + ", { page: number; results: { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }[]; perPage: number; total: number; }, ", "InvestigateAppRouteCreateOptions", - "; \"POST /api/observability/investigations 2023-10-31\": { endpoint: \"POST /api/observability/investigations 2023-10-31\"; params?: ", - "TypeC", - "<{ body: ", - "TypeC", - "<{ id: ", - "StringC", - "; title: ", - "StringC", - "; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; origin: ", - "UnionC", - "<[", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"alert\">; id: ", - "StringC", - "; }>, ", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"blank\">; }>]>; }>; }> | undefined; handler: ({}: ", + ">; \"POST /api/observability/investigations 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/observability/investigations 2023-10-31\", Zod.ZodObject<{ body: Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; params: Zod.ZodObject<{ timeRange: Zod.ZodObject<{ from: Zod.ZodNumber; to: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { from: number; to: number; }, { from: number; to: number; }>; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>; origin: Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>]>; tags: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }>; }, \"strip\", Zod.ZodTypeAny, { body: { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }; }, { body: { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }; }>, ", "InvestigateAppRouteHandlerResources", - " & { params: { body: { id: string; title: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; }; }; }) => Promise<{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]; }>; } & ", + ", { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, ", "InvestigateAppRouteCreateOptions", - "; }" + ">; }" ], "path": "x-pack/plugins/observability_solution/investigate_app/server/routes/get_global_investigate_app_server_route_repository.ts", "deprecated": false, diff --git a/api_docs/investigate_app.mdx b/api_docs/investigate_app.mdx index 7faddb21ae3b6..800cd212dbdba 100644 --- a/api_docs/investigate_app.mdx +++ b/api_docs/investigate_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/investigateApp title: "investigateApp" image: https://source.unsplash.com/400x175/?github description: API docs for the investigateApp plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'investigateApp'] --- import investigateAppObj from './investigate_app.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index c05e1087a66ce..8d38bd5aab9a8 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-09-11 +date: 2024-09-16 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 a2dc3477c613b..6c6e95b152d4e 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-09-11 +date: 2024-09-16 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 757140692ac4b..14eab4e516aec 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_log_pattern_analysis.mdx b/api_docs/kbn_aiops_log_pattern_analysis.mdx index 59b3541b4edf7..67db1a10d31c6 100644 --- a/api_docs/kbn_aiops_log_pattern_analysis.mdx +++ b/api_docs/kbn_aiops_log_pattern_analysis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-pattern-analysis title: "@kbn/aiops-log-pattern-analysis" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-log-pattern-analysis plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-pattern-analysis'] --- import kbnAiopsLogPatternAnalysisObj from './kbn_aiops_log_pattern_analysis.devdocs.json'; diff --git a/api_docs/kbn_aiops_log_rate_analysis.mdx b/api_docs/kbn_aiops_log_rate_analysis.mdx index 866543e618463..bfb2d31be4cf6 100644 --- a/api_docs/kbn_aiops_log_rate_analysis.mdx +++ b/api_docs/kbn_aiops_log_rate_analysis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-log-rate-analysis title: "@kbn/aiops-log-rate-analysis" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-log-rate-analysis plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-log-rate-analysis'] --- import kbnAiopsLogRateAnalysisObj from './kbn_aiops_log_rate_analysis.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index ceff3aef43750..ed5c88415cf06 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_comparators.mdx b/api_docs/kbn_alerting_comparators.mdx index b9d6f19d514ce..8027193871167 100644 --- a/api_docs/kbn_alerting_comparators.mdx +++ b/api_docs/kbn_alerting_comparators.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-comparators title: "@kbn/alerting-comparators" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-comparators plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-comparators'] --- import kbnAlertingComparatorsObj from './kbn_alerting_comparators.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index 05cfbf43e286e..38e15414ee87b 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-state-types'] --- import kbnAlertingStateTypesObj from './kbn_alerting_state_types.devdocs.json'; diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx index 493c68b14061f..e5b1131bcbd42 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-types'] --- import kbnAlertingTypesObj from './kbn_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index e0f04f331b23e..7b07c4266f2c6 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_grouping.mdx b/api_docs/kbn_alerts_grouping.mdx index 5a5f326fbb268..80721130e4797 100644 --- a/api_docs/kbn_alerts_grouping.mdx +++ b/api_docs/kbn_alerts_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-grouping title: "@kbn/alerts-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-grouping plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-grouping'] --- import kbnAlertsGroupingObj from './kbn_alerts_grouping.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 1dff10df5472e..164f1b1e678cc 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index 6afc06b6b0658..b5360f43e50a1 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx index 69bf8229e117e..356b94b5b147c 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils'] --- import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index cb48088284475..e4003a21704b0 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_data_view.mdx b/api_docs/kbn_apm_data_view.mdx index 97d45d29e05a9..33fb5d7d44173 100644 --- a/api_docs/kbn_apm_data_view.mdx +++ b/api_docs/kbn_apm_data_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-data-view title: "@kbn/apm-data-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-data-view plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-data-view'] --- import kbnApmDataViewObj from './kbn_apm_data_view.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 21976a658d557..01e1c158024ea 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace'] --- import kbnApmSynthtraceObj from './kbn_apm_synthtrace.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace_client.devdocs.json b/api_docs/kbn_apm_synthtrace_client.devdocs.json index 401cd01536573..379a877390355 100644 --- a/api_docs/kbn_apm_synthtrace_client.devdocs.json +++ b/api_docs/kbn_apm_synthtrace_client.devdocs.json @@ -2627,7 +2627,7 @@ "section": "def-common.ApmFields", "text": "ApmFields" }, - ", \"@timestamp\" | \"processor.event\" | \"ecs.version\" | \"event.ingested\" | \"observer.type\" | \"observer.version\" | \"observer.version_major\" | \"metricset.name\" | \"processor.name\"> & Partial<{ 'labels.etag': string; agent_config_applied: number; 'event.agent_id_status': string; }>" + ", \"@timestamp\" | \"processor.event\" | \"ecs.version\" | \"event.ingested\" | \"observer.type\" | \"observer.version\" | \"metricset.name\" | \"observer.version_major\" | \"processor.name\"> & Partial<{ 'labels.etag': string; agent_config_applied: number; 'event.agent_id_status': string; }>" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/agent_config/agent_config_fields.ts", "deprecated": false, diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 5245d5d114552..3ce66e195254a 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-09-11 +date: 2024-09-16 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_types.mdx b/api_docs/kbn_apm_types.mdx index 1330ad11d1376..83327cef25953 100644 --- a/api_docs/kbn_apm_types.mdx +++ b/api_docs/kbn_apm_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-types title: "@kbn/apm-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-types plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-types'] --- import kbnApmTypesObj from './kbn_apm_types.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 68f277d3e4906..d53ea4526ab27 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_avc_banner.mdx b/api_docs/kbn_avc_banner.mdx index ce50e617a8440..233d64762f81d 100644 --- a/api_docs/kbn_avc_banner.mdx +++ b/api_docs/kbn_avc_banner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-avc-banner title: "@kbn/avc-banner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/avc-banner plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/avc-banner'] --- import kbnAvcBannerObj from './kbn_avc_banner.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index d0896b0d29914..431dde47131ab 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-09-11 +date: 2024-09-16 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 26605c70f5830..72e0634b95007 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-09-11 +date: 2024-09-16 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 0cd97b8adaff3..b3087deea5837 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-09-11 +date: 2024-09-16 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 cd9909704ab86..e2ab61dcb1f7f 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-09-11 +date: 2024-09-16 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 c23c5429b00d2..8847c805efde0 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cbor.mdx b/api_docs/kbn_cbor.mdx index 63c4ab8d31573..6ec6babc7fb58 100644 --- a/api_docs/kbn_cbor.mdx +++ b/api_docs/kbn_cbor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cbor title: "@kbn/cbor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cbor plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cbor'] --- import kbnCborObj from './kbn_cbor.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index 98488202a83da..1cdf8bb8fd27a 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cell-actions'] --- import kbnCellActionsObj from './kbn_cell_actions.devdocs.json'; diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 348c531d153d1..af779b6352f8f 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index 964563951c00e..3cd7fd83ef675 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-09-11 +date: 2024-09-16 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 ebe1db5bca416..d36f032077178 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-09-11 +date: 2024-09-16 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 e8786adbdcf07..4557bb5299e54 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-09-11 +date: 2024-09-16 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 eda4dcd94a645..158927f168a33 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-09-11 +date: 2024-09-16 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 06f2eedd3cdb7..458b21a9e9c26 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_cloud_security_posture.devdocs.json b/api_docs/kbn_cloud_security_posture.devdocs.json index 657c739537b92..04959cb492f0b 100644 --- a/api_docs/kbn_cloud_security_posture.devdocs.json +++ b/api_docs/kbn_cloud_security_posture.devdocs.json @@ -602,6 +602,37 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.FindingsAggs", + "type": "Interface", + "tags": [], + "label": "FindingsAggs", + "description": [], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.FindingsAggs.count", + "type": "Object", + "tags": [], + "label": "count", + "description": [], + "signature": [ + "AggregationsMultiBucketAggregateBase", + "<", + "AggregationsStringRareTermsBucketKeys", + ">" + ], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/cloud-security-posture", "id": "def-public.FindingsBaseEsQuery", @@ -637,10 +668,185 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.MisconfigurationBaseEsQuery", + "type": "Interface", + "tags": [], + "label": "MisconfigurationBaseEsQuery", + "description": [], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.MisconfigurationBaseEsQuery.query", + "type": "Object", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "{ bool: { filter: ", + "QueryDslQueryContainer", + "[]; }; } | undefined" + ], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.UseMisconfigurationOptions", + "type": "Interface", + "tags": [], + "label": "UseMisconfigurationOptions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/cloud-security-posture", + "scope": "public", + "docId": "kibKbnCloudSecurityPosturePluginApi", + "section": "def-public.UseMisconfigurationOptions", + "text": "UseMisconfigurationOptions" + }, + " extends ", + { + "pluginId": "@kbn/cloud-security-posture", + "scope": "public", + "docId": "kibKbnCloudSecurityPosturePluginApi", + "section": "def-public.MisconfigurationBaseEsQuery", + "text": "MisconfigurationBaseEsQuery" + } + ], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.UseMisconfigurationOptions.sort", + "type": "Array", + "tags": [], + "label": "sort", + "description": [], + "signature": [ + "string[][]" + ], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.UseMisconfigurationOptions.enabled", + "type": "boolean", + "tags": [], + "label": "enabled", + "description": [], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.UseMisconfigurationOptions.pageSize", + "type": "number", + "tags": [], + "label": "pageSize", + "description": [], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.UseMisconfigurationOptions.ignore_unavailable", + "type": "CompoundType", + "tags": [], + "label": "ignore_unavailable", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], "misc": [ + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.LatestFindingsRequest", + "type": "Type", + "tags": [], + "label": "LatestFindingsRequest", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-types", + "scope": "common", + "docId": "kibKbnSearchTypesPluginApi", + "section": "def-common.IKibanaSearchRequest", + "text": "IKibanaSearchRequest" + }, + "<", + "SearchRequest", + ">" + ], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/cloud-security-posture", + "id": "def-public.LatestFindingsResponse", + "type": "Type", + "tags": [], + "label": "LatestFindingsResponse", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-types", + "scope": "common", + "docId": "kibKbnSearchTypesPluginApi", + "section": "def-common.IKibanaSearchResponse", + "text": "IKibanaSearchResponse" + }, + "<", + "SearchResponse", + "<", + { + "pluginId": "@kbn/cloud-security-posture-common", + "scope": "common", + "docId": "kibKbnCloudSecurityPostureCommonPluginApi", + "section": "def-common.CspFinding", + "text": "CspFinding" + }, + ", ", + { + "pluginId": "@kbn/cloud-security-posture", + "scope": "public", + "docId": "kibKbnCloudSecurityPosturePluginApi", + "section": "def-public.FindingsAggs", + "text": "FindingsAggs" + }, + ">>" + ], + "path": "x-pack/packages/kbn-cloud-security-posture/type.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/cloud-security-posture", "id": "def-public.NavFilter", diff --git a/api_docs/kbn_cloud_security_posture.mdx b/api_docs/kbn_cloud_security_posture.mdx index 961b04113cacd..dddebd2460fa8 100644 --- a/api_docs/kbn_cloud_security_posture.mdx +++ b/api_docs/kbn_cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cloud-security-posture title: "@kbn/cloud-security-posture" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cloud-security-posture plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cloud-security-posture'] --- import kbnCloudSecurityPostureObj from './kbn_cloud_security_posture.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 63 | 1 | 63 | 0 | +| 74 | 1 | 74 | 0 | ## Client diff --git a/api_docs/kbn_cloud_security_posture_common.devdocs.json b/api_docs/kbn_cloud_security_posture_common.devdocs.json index 9d4b881e55cb5..6b7bbcb244bf2 100644 --- a/api_docs/kbn_cloud_security_posture_common.devdocs.json +++ b/api_docs/kbn_cloud_security_posture_common.devdocs.json @@ -433,7 +433,13 @@ "label": "result", "description": [], "signature": [ - "CspFindingResult" + { + "pluginId": "@kbn/cloud-security-posture-common", + "scope": "common", + "docId": "kibKbnCloudSecurityPostureCommonPluginApi", + "section": "def-common.CspFindingResult", + "text": "CspFindingResult" + } ], "path": "x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts", "deprecated": false, @@ -461,7 +467,7 @@ "label": "rule", "description": [], "signature": [ - "{ readonly impact?: string | undefined; readonly references?: string | undefined; readonly default_value?: string | undefined; readonly id: string; readonly version: string; readonly name: string; readonly tags: string[]; readonly description: string; readonly section: string; readonly audit: string; readonly benchmark: Readonly<{ posture_type?: \"kspm\" | \"cspm\" | undefined; rule_number?: string | undefined; } & { id: string; version: string; name: string; }>; readonly profile_applicability: string; readonly rationale: string; readonly rego_rule_id: string; readonly remediation: string; }" + "{ readonly references?: string | undefined; readonly impact?: string | undefined; readonly default_value?: string | undefined; readonly id: string; readonly version: string; readonly name: string; readonly tags: string[]; readonly description: string; readonly section: string; readonly audit: string; readonly benchmark: Readonly<{ posture_type?: \"kspm\" | \"cspm\" | undefined; rule_number?: string | undefined; } & { id: string; version: string; name: string; }>; readonly profile_applicability: string; readonly rationale: string; readonly rego_rule_id: string; readonly remediation: string; }" ], "path": "x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts", "deprecated": false, @@ -540,6 +546,62 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/cloud-security-posture-common", + "id": "def-common.CspFindingResult", + "type": "Interface", + "tags": [], + "label": "CspFindingResult", + "description": [], + "path": "x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/cloud-security-posture-common", + "id": "def-common.CspFindingResult.evaluation", + "type": "CompoundType", + "tags": [], + "label": "evaluation", + "description": [], + "signature": [ + "\"failed\" | \"passed\"" + ], + "path": "x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/cloud-security-posture-common", + "id": "def-common.CspFindingResult.expected", + "type": "Object", + "tags": [], + "label": "expected", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/cloud-security-posture-common", + "id": "def-common.CspFindingResult.evidence", + "type": "Object", + "tags": [], + "label": "evidence", + "description": [], + "signature": [ + "{ [x: string]: unknown; }" + ], + "path": "x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/cloud-security-posture-common", "id": "def-common.IndexDetails", diff --git a/api_docs/kbn_cloud_security_posture_common.mdx b/api_docs/kbn_cloud_security_posture_common.mdx index d3ab69c4ac537..06636275aac11 100644 --- a/api_docs/kbn_cloud_security_posture_common.mdx +++ b/api_docs/kbn_cloud_security_posture_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cloud-security-posture-common title: "@kbn/cloud-security-posture-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cloud-security-posture-common plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cloud-security-posture-common'] --- import kbnCloudSecurityPostureCommonObj from './kbn_cloud_security_posture_common.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 57 | 0 | 56 | 0 | +| 61 | 0 | 60 | 0 | ## Common diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 438df658e9924..ef1f930f73a73 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.devdocs.json'; diff --git a/api_docs/kbn_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx index a04354d7d3d0f..4cd0ac063b295 100644 --- a/api_docs/kbn_code_editor_mock.mdx +++ b/api_docs/kbn_code_editor_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor-mock title: "@kbn/code-editor-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor-mock plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock'] --- import kbnCodeEditorMockObj from './kbn_code_editor_mock.devdocs.json'; diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx index 45610348ea208..1837a351ab81f 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners'] --- import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json'; diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 157b0a45ca0b5..fa7b9b3370873 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-09-11 +date: 2024-09-16 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 eb84223c240e1..ffdcb0df99ff7 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-09-11 +date: 2024-09-16 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 d207eb021e7ed..d5c5afaa1ff4a 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.devdocs.json b/api_docs/kbn_config_schema.devdocs.json index 27e04a098acd6..cd2e91f19a014 100644 --- a/api_docs/kbn_config_schema.devdocs.json +++ b/api_docs/kbn_config_schema.devdocs.json @@ -5524,7 +5524,7 @@ "label": "metaFields", "description": [], "signature": [ - "{ readonly META_FIELD_X_OAS_ANY: \"x-oas-any-type\"; readonly META_FIELD_X_OAS_OPTIONAL: \"x-oas-optional\"; readonly META_FIELD_X_OAS_DEPRECATED: \"x-oas-deprecated\"; readonly META_FIELD_X_OAS_MAX_LENGTH: \"x-oas-max-length\"; readonly META_FIELD_X_OAS_MIN_LENGTH: \"x-oas-min-length\"; readonly META_FIELD_X_OAS_GET_ADDITIONAL_PROPERTIES: \"x-oas-get-additional-properties\"; }" + "{ readonly META_FIELD_X_OAS_DISCONTINUED: \"x-oas-discontinued\"; readonly META_FIELD_X_OAS_ANY: \"x-oas-any-type\"; readonly META_FIELD_X_OAS_OPTIONAL: \"x-oas-optional\"; readonly META_FIELD_X_OAS_DEPRECATED: \"x-oas-deprecated\"; readonly META_FIELD_X_OAS_MAX_LENGTH: \"x-oas-max-length\"; readonly META_FIELD_X_OAS_MIN_LENGTH: \"x-oas-min-length\"; readonly META_FIELD_X_OAS_GET_ADDITIONAL_PROPERTIES: \"x-oas-get-additional-properties\"; }" ], "path": "packages/kbn-config-schema/index.ts", "deprecated": false, diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 4f522fe4b49e7..7b0267bf91d70 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-09-11 +date: 2024-09-16 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 ee0f88652389a..1c6873650a77d 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_insights_public.mdx b/api_docs/kbn_content_management_content_insights_public.mdx index aa67f9fcc554e..c0c9b3b664627 100644 --- a/api_docs/kbn_content_management_content_insights_public.mdx +++ b/api_docs/kbn_content_management_content_insights_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-insights-public title: "@kbn/content-management-content-insights-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-insights-public plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-insights-public'] --- import kbnContentManagementContentInsightsPublicObj from './kbn_content_management_content_insights_public.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_insights_server.mdx b/api_docs/kbn_content_management_content_insights_server.mdx index 905797efc9158..3475f4b887614 100644 --- a/api_docs/kbn_content_management_content_insights_server.mdx +++ b/api_docs/kbn_content_management_content_insights_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-insights-server title: "@kbn/content-management-content-insights-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-insights-server plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-insights-server'] --- import kbnContentManagementContentInsightsServerObj from './kbn_content_management_content_insights_server.devdocs.json'; diff --git a/api_docs/kbn_content_management_favorites_public.mdx b/api_docs/kbn_content_management_favorites_public.mdx index 310573b8e8f81..0f9def9418f08 100644 --- a/api_docs/kbn_content_management_favorites_public.mdx +++ b/api_docs/kbn_content_management_favorites_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-favorites-public title: "@kbn/content-management-favorites-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-favorites-public plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-public'] --- import kbnContentManagementFavoritesPublicObj from './kbn_content_management_favorites_public.devdocs.json'; diff --git a/api_docs/kbn_content_management_favorites_server.mdx b/api_docs/kbn_content_management_favorites_server.mdx index 080d557be8474..93c38d33446d4 100644 --- a/api_docs/kbn_content_management_favorites_server.mdx +++ b/api_docs/kbn_content_management_favorites_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-favorites-server title: "@kbn/content-management-favorites-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-favorites-server plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-favorites-server'] --- import kbnContentManagementFavoritesServerObj from './kbn_content_management_favorites_server.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 56412090773bc..c5874a17a7e44 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-09-11 +date: 2024-09-16 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 24bc47c3801b1..1695b9b4cf7a0 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-09-11 +date: 2024-09-16 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 e08f4e095c6bd..1e6d22f0e395d 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-09-11 +date: 2024-09-16 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 2553ce20eaa1c..5297d8f4a120f 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-09-11 +date: 2024-09-16 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_user_profiles.mdx b/api_docs/kbn_content_management_user_profiles.mdx index d8bb47ff0cb33..54b5be39e5992 100644 --- a/api_docs/kbn_content_management_user_profiles.mdx +++ b/api_docs/kbn_content_management_user_profiles.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-user-profiles title: "@kbn/content-management-user-profiles" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-user-profiles plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-user-profiles'] --- import kbnContentManagementUserProfilesObj from './kbn_content_management_user_profiles.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index e20dafb41a3a9..3ff84783eec75 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-09-11 +date: 2024-09-16 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 0606b0538921b..8ec085dfba3e5 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-09-11 +date: 2024-09-16 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 cf709aeae748f..f56d94ce1c1c7 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-09-11 +date: 2024-09-16 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 7cabebce73535..d329f90a85725 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-09-11 +date: 2024-09-16 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 71b689be8a3dc..5114fb3dbf83a 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-09-11 +date: 2024-09-16 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 d2c1c5fa3e6b5..71d17250a65fb 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-09-11 +date: 2024-09-16 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 da695c8f8a5ec..26ec671e63652 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-09-11 +date: 2024-09-16 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 a3cffdf1d1ee2..6da1034bc5900 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-09-11 +date: 2024-09-16 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 76c5ff8a479d2..100ef9c48e53c 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-09-11 +date: 2024-09-16 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 046c4b9f5cefc..2068679e41060 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-09-11 +date: 2024-09-16 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 cc556d673faa6..5afc3c31f07ff 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-09-11 +date: 2024-09-16 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 4605180e455bb..c38bee8197eb4 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-09-11 +date: 2024-09-16 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 7da54f78f7ad3..99061d4ee9dbf 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-09-11 +date: 2024-09-16 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 b0e79c60a0f65..513fac7a1d164 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-09-11 +date: 2024-09-16 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 390c1ee48757a..fc1574f3ffa5d 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-09-11 +date: 2024-09-16 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 d34a500a01e25..82e8ce70f7644 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-09-11 +date: 2024-09-16 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 e1c6219b24d46..25d96744f8d90 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-09-11 +date: 2024-09-16 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 86e67643b307f..6ac844b6ab62f 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-09-11 +date: 2024-09-16 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 2ac5d7604d52e..0156d4bb6a216 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-09-11 +date: 2024-09-16 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 55570816c5e3a..c2de5533641cb 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-09-11 +date: 2024-09-16 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 2e53ee7ed732a..dbeae64609253 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-09-11 +date: 2024-09-16 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 e246bc494d1aa..55e78ca2f1354 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-09-11 +date: 2024-09-16 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 c1c3d5b8793a4..f66b6baf4e4ec 100644 --- a/api_docs/kbn_core_chrome_browser.devdocs.json +++ b/api_docs/kbn_core_chrome_browser.devdocs.json @@ -3700,7 +3700,7 @@ "label": "AppDeepLinkId", "description": [], "signature": [ - "\"fleet\" | \"graph\" | \"ml\" | \"monitoring\" | \"profiling\" | \"metrics\" | \"management\" | \"apm\" | \"synthetics\" | \"ux\" | \"logs\" | \"dashboards\" | \"slo\" | \"observabilityAIAssistant\" | \"home\" | \"canvas\" | \"integrations\" | \"discover\" | \"observability-overview\" | \"appSearch\" | \"dev_tools\" | \"maps\" | \"visualize\" | \"dev_tools:console\" | \"dev_tools:searchprofiler\" | \"dev_tools:painless_lab\" | \"dev_tools:grokdebugger\" | \"ml:notifications\" | \"ml:nodes\" | \"ml:overview\" | \"ml:memoryUsage\" | \"ml:settings\" | \"ml:dataVisualizer\" | \"ml:logPatternAnalysis\" | \"ml:logRateAnalysis\" | \"ml:singleMetricViewer\" | \"ml:anomalyDetection\" | \"ml:anomalyExplorer\" | \"ml:dataDrift\" | \"ml:dataFrameAnalytics\" | \"ml:resultExplorer\" | \"ml:analyticsMap\" | \"ml:aiOps\" | \"ml:changePointDetections\" | \"ml:modelManagement\" | \"ml:nodesOverview\" | \"ml:esqlDataVisualizer\" | \"ml:fileUpload\" | \"ml:indexDataVisualizer\" | \"ml:calendarSettings\" | \"ml:filterListsSettings\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:maintenanceWindows\" | \"management:cross_cluster_replication\" | \"management:dataViews\" | \"management:spaces\" | \"management:settings\" | \"management:users\" | \"management:migrate_data\" | \"management:search_sessions\" | \"management:data_quality\" | \"management:filesManagement\" | \"management:roles\" | \"management:reporting\" | \"management:aiAssistantManagementSelection\" | \"management:securityAiAssistantManagement\" | \"management:observabilityAiAssistantManagement\" | \"management:api_keys\" | \"management:license_management\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:role_mappings\" | \"management:rollup_jobs\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\" | \"management:upgrade_assistant\" | \"enterpriseSearch\" | \"enterpriseSearchContent\" | \"enterpriseSearchApplications\" | \"enterpriseSearchRelevance\" | \"enterpriseSearchAnalytics\" | \"workplaceSearch\" | \"serverlessElasticsearch\" | \"serverlessConnectors\" | \"searchPlayground\" | \"searchInferenceEndpoints\" | \"searchHomepage\" | \"enterpriseSearchContent:connectors\" | \"enterpriseSearchContent:searchIndices\" | \"enterpriseSearchContent:webCrawlers\" | \"enterpriseSearchApplications:searchApplications\" | \"enterpriseSearchApplications:playground\" | \"appSearch:engines\" | \"enterpriseSearchRelevance:inferenceEndpoints\" | \"observability-logs-explorer\" | \"observabilityOnboarding\" | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:alerts\" | \"observability-overview:rules\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\" | \"profiling:stacktraces\" | \"profiling:flamegraphs\" | \"profiling:functions\" | \"securitySolutionUI\" | \"securitySolutionUI:\" | \"securitySolutionUI:cases\" | \"securitySolutionUI:alerts\" | \"securitySolutionUI:rules\" | \"securitySolutionUI:policy\" | \"securitySolutionUI:overview\" | \"securitySolutionUI:dashboards\" | \"securitySolutionUI:cases_create\" | \"securitySolutionUI:cases_configure\" | \"securitySolutionUI:hosts\" | \"securitySolutionUI:users\" | \"securitySolutionUI:cloud_defend-policies\" | \"securitySolutionUI:cloud_security_posture-dashboard\" | \"securitySolutionUI:cloud_security_posture-findings\" | \"securitySolutionUI:cloud_security_posture-benchmarks\" | \"securitySolutionUI:kubernetes\" | \"securitySolutionUI:network\" | \"securitySolutionUI:data_quality\" | \"securitySolutionUI:explore\" | \"securitySolutionUI:assets\" | \"securitySolutionUI:cloud_defend\" | \"securitySolutionUI:administration\" | \"securitySolutionUI:attack_discovery\" | \"securitySolutionUI:blocklist\" | \"securitySolutionUI:cloud_security_posture-rules\" | \"securitySolutionUI:detections\" | \"securitySolutionUI:detection_response\" | \"securitySolutionUI:endpoints\" | \"securitySolutionUI:event_filters\" | \"securitySolutionUI:exceptions\" | \"securitySolutionUI:host_isolation_exceptions\" | \"securitySolutionUI:hosts-all\" | \"securitySolutionUI:hosts-anomalies\" | \"securitySolutionUI:hosts-risk\" | \"securitySolutionUI:hosts-events\" | \"securitySolutionUI:hosts-sessions\" | \"securitySolutionUI:hosts-uncommon_processes\" | \"securitySolutionUI:investigations\" | \"securitySolutionUI:get_started\" | \"securitySolutionUI:machine_learning-landing\" | \"securitySolutionUI:network-anomalies\" | \"securitySolutionUI:network-dns\" | \"securitySolutionUI:network-events\" | \"securitySolutionUI:network-flows\" | \"securitySolutionUI:network-http\" | \"securitySolutionUI:network-tls\" | \"securitySolutionUI:response_actions_history\" | \"securitySolutionUI:rules-add\" | \"securitySolutionUI:rules-create\" | \"securitySolutionUI:rules-landing\" | \"securitySolutionUI:threat_intelligence\" | \"securitySolutionUI:timelines\" | \"securitySolutionUI:timelines-templates\" | \"securitySolutionUI:trusted_apps\" | \"securitySolutionUI:users-all\" | \"securitySolutionUI:users-anomalies\" | \"securitySolutionUI:users-authentications\" | \"securitySolutionUI:users-events\" | \"securitySolutionUI:users-risk\" | \"securitySolutionUI:entity_analytics\" | \"securitySolutionUI:entity_analytics-management\" | \"securitySolutionUI:entity_analytics-asset-classification\" | \"securitySolutionUI:coverage-overview\" | \"securitySolutionUI:notes-management\" | \"fleet:settings\" | \"fleet:policies\" | \"fleet:data_streams\" | \"fleet:enrollment_tokens\" | \"fleet:uninstall_tokens\" | \"fleet:agents\"" + "\"fleet\" | \"graph\" | \"ml\" | \"monitoring\" | \"profiling\" | \"metrics\" | \"management\" | \"apm\" | \"synthetics\" | \"ux\" | \"logs\" | \"dashboards\" | \"slo\" | \"observabilityAIAssistant\" | \"home\" | \"integrations\" | \"canvas\" | \"discover\" | \"observability-overview\" | \"appSearch\" | \"dev_tools\" | \"maps\" | \"visualize\" | \"dev_tools:console\" | \"dev_tools:searchprofiler\" | \"dev_tools:painless_lab\" | \"dev_tools:grokdebugger\" | \"ml:notifications\" | \"ml:nodes\" | \"ml:overview\" | \"ml:memoryUsage\" | \"ml:settings\" | \"ml:dataVisualizer\" | \"ml:logPatternAnalysis\" | \"ml:logRateAnalysis\" | \"ml:singleMetricViewer\" | \"ml:anomalyDetection\" | \"ml:anomalyExplorer\" | \"ml:dataDrift\" | \"ml:dataFrameAnalytics\" | \"ml:resultExplorer\" | \"ml:analyticsMap\" | \"ml:aiOps\" | \"ml:changePointDetections\" | \"ml:modelManagement\" | \"ml:nodesOverview\" | \"ml:esqlDataVisualizer\" | \"ml:fileUpload\" | \"ml:indexDataVisualizer\" | \"ml:calendarSettings\" | \"ml:filterListsSettings\" | \"ml:suppliedConfigurations\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:maintenanceWindows\" | \"management:cross_cluster_replication\" | \"management:dataViews\" | \"management:spaces\" | \"management:settings\" | \"management:users\" | \"management:migrate_data\" | \"management:search_sessions\" | \"management:data_quality\" | \"management:filesManagement\" | \"management:roles\" | \"management:reporting\" | \"management:aiAssistantManagementSelection\" | \"management:securityAiAssistantManagement\" | \"management:observabilityAiAssistantManagement\" | \"management:api_keys\" | \"management:license_management\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:role_mappings\" | \"management:rollup_jobs\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\" | \"management:upgrade_assistant\" | \"enterpriseSearch\" | \"enterpriseSearchContent\" | \"enterpriseSearchApplications\" | \"enterpriseSearchRelevance\" | \"enterpriseSearchAnalytics\" | \"workplaceSearch\" | \"serverlessElasticsearch\" | \"serverlessConnectors\" | \"searchPlayground\" | \"searchInferenceEndpoints\" | \"searchHomepage\" | \"enterpriseSearchContent:connectors\" | \"enterpriseSearchContent:searchIndices\" | \"enterpriseSearchContent:webCrawlers\" | \"enterpriseSearchApplications:searchApplications\" | \"enterpriseSearchApplications:playground\" | \"appSearch:engines\" | \"enterpriseSearchRelevance:inferenceEndpoints\" | \"observability-logs-explorer\" | \"observabilityOnboarding\" | \"inventory\" | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:alerts\" | \"observability-overview:rules\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:services\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\" | \"profiling:functions\" | \"profiling:stacktraces\" | \"profiling:flamegraphs\" | \"inventory:datastreams\" | \"securitySolutionUI\" | \"securitySolutionUI:\" | \"securitySolutionUI:cases\" | \"securitySolutionUI:alerts\" | \"securitySolutionUI:rules\" | \"securitySolutionUI:policy\" | \"securitySolutionUI:overview\" | \"securitySolutionUI:dashboards\" | \"securitySolutionUI:kubernetes\" | \"securitySolutionUI:cases_create\" | \"securitySolutionUI:cases_configure\" | \"securitySolutionUI:hosts\" | \"securitySolutionUI:users\" | \"securitySolutionUI:cloud_defend-policies\" | \"securitySolutionUI:cloud_security_posture-dashboard\" | \"securitySolutionUI:cloud_security_posture-findings\" | \"securitySolutionUI:cloud_security_posture-benchmarks\" | \"securitySolutionUI:network\" | \"securitySolutionUI:data_quality\" | \"securitySolutionUI:explore\" | \"securitySolutionUI:assets\" | \"securitySolutionUI:cloud_defend\" | \"securitySolutionUI:administration\" | \"securitySolutionUI:attack_discovery\" | \"securitySolutionUI:blocklist\" | \"securitySolutionUI:cloud_security_posture-rules\" | \"securitySolutionUI:detections\" | \"securitySolutionUI:detection_response\" | \"securitySolutionUI:endpoints\" | \"securitySolutionUI:event_filters\" | \"securitySolutionUI:exceptions\" | \"securitySolutionUI:host_isolation_exceptions\" | \"securitySolutionUI:hosts-all\" | \"securitySolutionUI:hosts-anomalies\" | \"securitySolutionUI:hosts-risk\" | \"securitySolutionUI:hosts-events\" | \"securitySolutionUI:hosts-sessions\" | \"securitySolutionUI:hosts-uncommon_processes\" | \"securitySolutionUI:investigations\" | \"securitySolutionUI:get_started\" | \"securitySolutionUI:machine_learning-landing\" | \"securitySolutionUI:network-anomalies\" | \"securitySolutionUI:network-dns\" | \"securitySolutionUI:network-events\" | \"securitySolutionUI:network-flows\" | \"securitySolutionUI:network-http\" | \"securitySolutionUI:network-tls\" | \"securitySolutionUI:response_actions_history\" | \"securitySolutionUI:rules-add\" | \"securitySolutionUI:rules-create\" | \"securitySolutionUI:rules-landing\" | \"securitySolutionUI:threat_intelligence\" | \"securitySolutionUI:timelines\" | \"securitySolutionUI:timelines-templates\" | \"securitySolutionUI:trusted_apps\" | \"securitySolutionUI:users-all\" | \"securitySolutionUI:users-anomalies\" | \"securitySolutionUI:users-authentications\" | \"securitySolutionUI:users-events\" | \"securitySolutionUI:users-risk\" | \"securitySolutionUI:entity_analytics\" | \"securitySolutionUI:entity_analytics-management\" | \"securitySolutionUI:entity_analytics-asset-classification\" | \"securitySolutionUI:coverage-overview\" | \"securitySolutionUI:notes-management\" | \"fleet:settings\" | \"fleet:agents\" | \"fleet:policies\" | \"fleet:data_streams\" | \"fleet:enrollment_tokens\" | \"fleet:uninstall_tokens\"" ], "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", "deprecated": false, diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 66b2a10592a10..36cc7511677d7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 2a72f96e664e6..94bc58481f62d 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-09-11 +date: 2024-09-16 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 4370f71f7269e..a81585f3e2bf6 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-09-11 +date: 2024-09-16 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 418d8993c6441..8bbfd04b44d91 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-09-11 +date: 2024-09-16 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 95d204d37aa8b..1e3f4df6d6712 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-09-11 +date: 2024-09-16 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 e583666f8717a..e87533f446bf6 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-09-11 +date: 2024-09-16 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 da7922d100b21..45f604e553f9b 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-09-11 +date: 2024-09-16 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 fa80f277f039f..e99e65bcbc9b4 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-09-11 +date: 2024-09-16 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 44fae0cc586ca..129b273546d49 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-09-11 +date: 2024-09-16 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 f4f4fe27acf84..c0175f3203325 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-09-11 +date: 2024-09-16 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 c8c4b0f64f44e..d8e1c14611fe9 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-09-11 +date: 2024-09-16 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 f3f6b1eac5d95..5ee9a49bb3711 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-09-11 +date: 2024-09-16 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 c4641e7592f27..39d097b05c6af 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-09-11 +date: 2024-09-16 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 95171fc3dc84a..2c304f1621f00 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-09-11 +date: 2024-09-16 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 74c1d61a2cff6..c8f71ac2048aa 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-09-11 +date: 2024-09-16 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 67d62bb9da191..2fc8ee5cc6e08 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-09-11 +date: 2024-09-16 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 83e36d12c652b..4b559adbb8f57 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-09-11 +date: 2024-09-16 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 cc8224eb6d231..e23684271a62e 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-09-11 +date: 2024-09-16 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 7097898c180ea..2d8544beb3963 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-09-11 +date: 2024-09-16 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 9f18805206dd5..37fb3282ccb11 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-09-11 +date: 2024-09-16 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 53dd9cc6369cd..23d413a014cff 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-09-11 +date: 2024-09-16 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 b398624bfbd11..223057aa76828 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-09-11 +date: 2024-09-16 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 7c5e4da66fb02..00d95d44e6784 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-mocks'] --- import kbnCoreElasticsearchClientServerMocksObj from './kbn_core_elasticsearch_client_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index c1b5c69e55d08..46652758eac87 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-server'] --- import kbnCoreElasticsearchServerObj from './kbn_core_elasticsearch_server.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index 848130cf38e6c..ceb10897fa4d2 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-09-11 +date: 2024-09-16 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 dc356f89e2ef7..5672e3320fe34 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-09-11 +date: 2024-09-16 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 ca01d4a33ddf6..ff771cdf88623 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-09-11 +date: 2024-09-16 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 1c84328c2c275..f0da8bfb29d36 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-09-11 +date: 2024-09-16 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 80f8f5f2226d6..11f2e73fe7d36 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-09-11 +date: 2024-09-16 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 5d043baabfb2f..0ec0b27c0fdf0 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-09-11 +date: 2024-09-16 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 1a4e85c515d15..21be12294aade 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-09-11 +date: 2024-09-16 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 781e276c5dac0..fe4eb753599fd 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-09-11 +date: 2024-09-16 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 82df57923195d..c3b0dc19d8f24 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-09-11 +date: 2024-09-16 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 1a95518ae42e3..bed630363560a 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-09-11 +date: 2024-09-16 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 6b1a34f9232ee..295607d98d13d 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-09-11 +date: 2024-09-16 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 e8708bc3acd26..89a791ab6f81e 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-09-11 +date: 2024-09-16 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 0f4e24986238f..fd33da167c615 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-09-11 +date: 2024-09-16 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 909cf0bacbc61..61be0b0a4ed55 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-09-11 +date: 2024-09-16 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 f112828ca4c4c..dc22767351e39 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-09-11 +date: 2024-09-16 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 e4ce9904ed257..4551c3ba09b3e 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-09-11 +date: 2024-09-16 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 6b2122d72f708..db09c2a9a7868 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-09-11 +date: 2024-09-16 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 da0270f10bc1c..1a579720428f7 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-09-11 +date: 2024-09-16 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 40ec05005f78c..d731693893a86 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-request-handler-context-server'] --- import kbnCoreHttpRequestHandlerContextServerObj from './kbn_core_http_request_handler_context_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 0dd338e9b89f1..c3df575a1da21 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-09-11 +date: 2024-09-16 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 4a295e78a9fd2..8a0577c4b90d0 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-internal'] --- import kbnCoreHttpResourcesServerInternalObj from './kbn_core_http_resources_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index 48e2d69cbc9fd..da5066b59b6bc 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-09-11 +date: 2024-09-16 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 abc08f28a8d0a..211118bbfe356 100644 --- a/api_docs/kbn_core_http_router_server_internal.devdocs.json +++ b/api_docs/kbn_core_http_router_server_internal.devdocs.json @@ -179,7 +179,7 @@ }, "<", "Method", - ">, \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ">, \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -187,7 +187,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts", "deprecated": false, @@ -258,7 +258,7 @@ }, "<", "Method", - ">, \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ">, \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -266,7 +266,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts", "deprecated": false, @@ -337,7 +337,7 @@ }, "<", "Method", - ">, \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ">, \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -345,7 +345,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts", "deprecated": false, @@ -416,7 +416,7 @@ }, "<", "Method", - ">, \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ">, \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -424,7 +424,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts", "deprecated": false, @@ -495,7 +495,7 @@ }, "<", "Method", - ">, \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ">, \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -503,7 +503,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts", "deprecated": false, diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 73795b0c85ff8..bebfe0c6ea899 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.devdocs.json b/api_docs/kbn_core_http_router_server_mocks.devdocs.json index 0d1fa572942e6..a1827393c0cb2 100644 --- a/api_docs/kbn_core_http_router_server_mocks.devdocs.json +++ b/api_docs/kbn_core_http_router_server_mocks.devdocs.json @@ -72,7 +72,7 @@ "section": "def-server.RouteConfigOptions", "text": "RouteConfigOptions" }, - ", \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ", \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -80,7 +80,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-router-server-mocks/src/versioned_router.mock.ts", "deprecated": false, @@ -692,6 +692,45 @@ } ] }, + { + "parentPluginId": "@kbn/core-http-router-server-mocks", + "id": "def-server.mockRouter.createFakeKibanaRequest", + "type": "Function", + "tags": [], + "label": "createFakeKibanaRequest", + "description": [], + "signature": [ + "({ headers, }: { headers?: Record | undefined; }) => ", + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.KibanaRequest", + "text": "KibanaRequest" + }, + "" + ], + "path": "packages/core/http/core-http-router-server-mocks/src/router.mock.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/core-http-router-server-mocks", + "id": "def-server.mockRouter.createFakeKibanaRequest.$1", + "type": "Object", + "tags": [], + "label": "__0", + "description": [], + "signature": [ + "{ headers?: Record | undefined; }" + ], + "path": "packages/core/http/core-http-router-server-mocks/src/router.mock.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/core-http-router-server-mocks", "id": "def-server.mockRouter.createResponseFactory", diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index c769027fbb6b1..d92f6c6db61b8 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.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 | |-------------------|-----------|------------------------|-----------------| -| 13 | 0 | 13 | 1 | +| 15 | 0 | 15 | 1 | ## Server diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index 642396d2160ae..3ceda5885b570 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -12941,6 +12941,22 @@ "path": "packages/core/http/core-http-server/src/router/route.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-http-server", + "id": "def-server.RouteConfigOptions.discontinued", + "type": "string", + "tags": [], + "label": "discontinued", + "description": [ + "\nRelease version or date that this route will be removed\nUse with `deprecated: true`\n" + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/http/core-http-server/src/router/route.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -14526,6 +14542,10 @@ "plugin": "ml", "path": "x-pack/plugins/ml/server/routes/modules.ts" }, + { + "plugin": "ml", + "path": "x-pack/plugins/ml/server/routes/modules.ts" + }, { "plugin": "ml", "path": "x-pack/plugins/ml/server/routes/filters.ts" @@ -15273,7 +15293,7 @@ "section": "def-server.RouteConfigOptions", "text": "RouteConfigOptions" }, - ", \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ", \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -15281,7 +15301,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-server/src/versioning/types.ts", "deprecated": false, @@ -15572,7 +15592,7 @@ "section": "def-server.RouteConfigOptions", "text": "RouteConfigOptions" }, - ", \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ", \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -15580,7 +15600,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-server/src/versioning/types.ts", "deprecated": false, @@ -16659,7 +16679,7 @@ "section": "def-server.RouteConfigOptions", "text": "RouteConfigOptions" }, - ", \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ", \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -16667,7 +16687,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-server/src/versioning/types.ts", "deprecated": false, @@ -16798,7 +16818,7 @@ "section": "def-server.RouteConfigOptions", "text": "RouteConfigOptions" }, - ", \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ", \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -16806,7 +16826,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-server/src/versioning/types.ts", "deprecated": false, @@ -17069,7 +17089,7 @@ "section": "def-server.RouteConfigOptions", "text": "RouteConfigOptions" }, - ", \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ", \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -17077,7 +17097,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-server/src/versioning/types.ts", "deprecated": false, @@ -19790,7 +19810,7 @@ "section": "def-server.RouteConfigOptions", "text": "RouteConfigOptions" }, - ", \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ", \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -19798,7 +19818,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-server/src/versioning/types.ts", "deprecated": false, @@ -19866,7 +19886,7 @@ "section": "def-server.RouteConfigOptions", "text": "RouteConfigOptions" }, - ", \"description\" | \"deprecated\" | \"access\"> | undefined; access: ", + ", \"description\" | \"deprecated\" | \"access\" | \"discontinued\"> | undefined; access: ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -19874,7 +19894,7 @@ "section": "def-server.RouteAccess", "text": "RouteAccess" }, - "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; }" + "; enableQueryVersion?: boolean | undefined; summary?: string | undefined; description?: string | undefined; deprecated?: boolean | undefined; discontinued?: string | undefined; }" ], "path": "packages/core/http/core-http-server/src/versioning/types.ts", "deprecated": false, diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 760ef4bf8652b..8267ac272233d 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-09-11 +date: 2024-09-16 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 | |-------------------|-----------|------------------------|-----------------| -| 495 | 2 | 193 | 0 | +| 496 | 2 | 193 | 0 | ## Server diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 8879bd03d7ff1..e8fb07352b982 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-09-11 +date: 2024-09-16 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 10509278f278f..e7856f80d70b4 100644 --- a/api_docs/kbn_core_http_server_mocks.devdocs.json +++ b/api_docs/kbn_core_http_server_mocks.devdocs.json @@ -760,6 +760,45 @@ } ] }, + { + "parentPluginId": "@kbn/core-http-server-mocks", + "id": "def-server.httpServerMock.createFakeKibanaRequest", + "type": "Function", + "tags": [], + "label": "createFakeKibanaRequest", + "description": [], + "signature": [ + "({ headers, }: { headers?: Record | undefined; }) => ", + { + "pluginId": "@kbn/core-http-server", + "scope": "server", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-server.KibanaRequest", + "text": "KibanaRequest" + }, + "" + ], + "path": "packages/core/http/core-http-server-mocks/src/http_server.mocks.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/core-http-server-mocks", + "id": "def-server.httpServerMock.createFakeKibanaRequest.$1", + "type": "Object", + "tags": [], + "label": "__0", + "description": [], + "signature": [ + "{ headers?: Record | undefined; }" + ], + "path": "packages/core/http/core-http-router-server-mocks/src/router.mock.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/core-http-server-mocks", "id": "def-server.httpServerMock.createRawRequest", diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 14b0a93140f87..d9b26755f3bee 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.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 | |-------------------|-----------|------------------------|-----------------| -| 44 | 0 | 43 | 0 | +| 46 | 0 | 45 | 0 | ## Server diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index 2826bdc599ee6..9e8140935a19e 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-09-11 +date: 2024-09-16 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 b1c07e3925abe..3d00ba9302dfb 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-09-11 +date: 2024-09-16 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 26451e38ad119..eae90099a6639 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-09-11 +date: 2024-09-16 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 a95cc54dbab5c..ef5ec29bbb9ad 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-09-11 +date: 2024-09-16 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 3a696feb36144..9c1b3c95106c2 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-09-11 +date: 2024-09-16 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 1ca545780c94f..f010c8b75273f 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-09-11 +date: 2024-09-16 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 ee24b452b1125..32d348478ffef 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-09-11 +date: 2024-09-16 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 6c9a5c71dd214..f1208b2d1da65 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-integrations-browser-mocks'] --- import kbnCoreIntegrationsBrowserMocksObj from './kbn_core_integrations_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index d2fd5730ab5cc..c91fcf1bb2342 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-09-11 +date: 2024-09-16 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 fc54dcc2d1432..8d702b8382f38 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-09-11 +date: 2024-09-16 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 3a54345ef1cc7..cdde236c79842 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-09-11 +date: 2024-09-16 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 5b0ae5b0fb06f..87528841eea11 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-09-11 +date: 2024-09-16 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 15f218b139c61..e5ea66d095629 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_core_logging_common_internal.devdocs.json index c38854fc7076a..b0f256dca83de 100644 --- a/api_docs/kbn_core_logging_common_internal.devdocs.json +++ b/api_docs/kbn_core_logging_common_internal.devdocs.json @@ -129,7 +129,7 @@ "label": "level", "description": [], "signature": [ - "\"error\" | \"info\" | \"all\" | \"debug\" | \"off\" | \"warn\" | \"trace\" | \"fatal\"" + "\"error\" | \"info\" | \"all\" | \"off\" | \"trace\" | \"debug\" | \"warn\" | \"fatal\"" ], "path": "packages/core/logging/core-logging-common-internal/src/browser_config.ts", "deprecated": false, diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index d22d807e08be9..15c7161f20b31 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_core_logging_server.devdocs.json index 12c6cae65c063..07d366fbb77aa 100644 --- a/api_docs/kbn_core_logging_server.devdocs.json +++ b/api_docs/kbn_core_logging_server.devdocs.json @@ -215,7 +215,7 @@ "label": "level", "description": [], "signature": [ - "\"error\" | \"info\" | \"all\" | \"debug\" | \"off\" | \"warn\" | \"trace\" | \"fatal\"" + "\"error\" | \"info\" | \"all\" | \"off\" | \"trace\" | \"debug\" | \"warn\" | \"fatal\"" ], "path": "packages/core/logging/core-logging-server/src/logger.ts", "deprecated": false, diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index ec4b8db93e193..f3938004d1bf4 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_core_logging_server_internal.devdocs.json index 7ba217539542e..0c45a970a97a6 100644 --- a/api_docs/kbn_core_logging_server_internal.devdocs.json +++ b/api_docs/kbn_core_logging_server_internal.devdocs.json @@ -199,7 +199,7 @@ "section": "def-common.Type", "text": "Type" }, - "[]>; }>" + "[]>; }>" ], "path": "packages/core/logging/core-logging-server-internal/src/logging_config.ts", "deprecated": false, @@ -247,7 +247,7 @@ "section": "def-common.Type", "text": "Type" }, - "<\"error\" | \"info\" | \"all\" | \"debug\" | \"off\" | \"warn\" | \"trace\" | \"fatal\">; }>" + "<\"error\" | \"info\" | \"all\" | \"off\" | \"trace\" | \"debug\" | \"warn\" | \"fatal\">; }>" ], "path": "packages/core/logging/core-logging-server-internal/src/logging_config.ts", "deprecated": false, diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 17e63aa4c4706..2eedaaf5c530d 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-09-11 +date: 2024-09-16 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 28316c292aaea..8da2b1f519cf6 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-09-11 +date: 2024-09-16 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 55c6946163da4..ead61b1758574 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-09-11 +date: 2024-09-16 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 5347e17a96d8f..e80ad71c5139c 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-09-11 +date: 2024-09-16 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 53a5b01d69638..2372703cf6d21 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-09-11 +date: 2024-09-16 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 521097303f2ab..2d049dae63595 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-09-11 +date: 2024-09-16 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 3e4c81d88fdb0..fdf27ca280067 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-09-11 +date: 2024-09-16 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 f3e5a56532427..3bdddcb8eca75 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-09-11 +date: 2024-09-16 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 ba759295987e3..bcda7033730f3 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-09-11 +date: 2024-09-16 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 7263fa426b564..887b3b3b9471c 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-09-11 +date: 2024-09-16 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 a55e2e6fc9953..cd64a225c7a76 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-node-server-mocks'] --- import kbnCoreNodeServerMocksObj from './kbn_core_node_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index c64e47544fdd3..8cce4107aa925 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-09-11 +date: 2024-09-16 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 850a43717791b..df3f6e41e3e1b 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-09-11 +date: 2024-09-16 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 4a0abcc89bd34..3cc718ccb17f8 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-09-11 +date: 2024-09-16 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 dbb687feab20c..89305a5b91734 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-09-11 +date: 2024-09-16 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 d140266cd2f56..1e1af76e01831 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-09-11 +date: 2024-09-16 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 bba2de7e6650b..f378a489ec147 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-09-11 +date: 2024-09-16 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 5b633624d6083..a0568812f41ac 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-09-11 +date: 2024-09-16 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 6e5ca681eeaac..652a957d550ec 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-09-11 +date: 2024-09-16 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 ca4d172c2a470..b9efa108d2f86 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-09-11 +date: 2024-09-16 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 3a105c218fdc0..6348383b66a9e 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-09-11 +date: 2024-09-16 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 e9ccaeb7d943c..c8bcbd18ff193 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-09-11 +date: 2024-09-16 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 4490c653159f4..2e73a3b7ecffb 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-09-11 +date: 2024-09-16 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 0f228542cfaf1..6a7c04d0a3449 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-09-11 +date: 2024-09-16 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 4003a8a32db1b..085f9d9e67bf3 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-09-11 +date: 2024-09-16 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 b2689c57b34c3..b3833f739d3ed 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-09-11 +date: 2024-09-16 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 9f30d8d7d5505..7d277c1218886 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-09-11 +date: 2024-09-16 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 377afcc802e78..64639b5376cf3 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-09-11 +date: 2024-09-16 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 12dc800b1c90f..f5e1821fe2df7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-root-server-internal'] --- import kbnCoreRootServerInternalObj from './kbn_core_root_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 0b6294af12c29..6d3a27d87f263 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 190d288bef963..a4bcf57e3681c 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-09-11 +date: 2024-09-16 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 8faafa1926599..043e473a20ff9 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.mdx b/api_docs/kbn_core_saved_objects_base_server_internal.mdx index 2338b601b233f..fdab7bdf94f1d 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx index 8a63edac29290..30d014db8ed89 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 7dee816c95327..67387b08b956e 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-09-11 +date: 2024-09-16 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 9fe3dba2eb0a8..c68f30a6e4de0 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-09-11 +date: 2024-09-16 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 ebe9c4fce69dd..6702daa6184db 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-09-11 +date: 2024-09-16 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 531010a06f546..6c85981032c4b 100644 --- a/api_docs/kbn_core_saved_objects_common.devdocs.json +++ b/api_docs/kbn_core_saved_objects_common.devdocs.json @@ -1657,19 +1657,19 @@ }, { "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx" + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx" }, { "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx" + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx" }, { "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx" }, { "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx" }, { "plugin": "canvas", @@ -1912,11 +1912,11 @@ }, { "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx" }, { "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx" }, { "plugin": "visualizations", diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index e32a3ab04ee63..826ec0fdd6ee6 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-09-11 +date: 2024-09-16 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 a30d711841126..ed5f3c383f41c 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-09-11 +date: 2024-09-16 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 a26e579189d3d..797909c8702cb 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-import-export-server-mocks'] --- import kbnCoreSavedObjectsImportExportServerMocksObj from './kbn_core_saved_objects_import_export_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx index 82ed26c2dcd65..ec8afbba97d31 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx index 93ed325abca3f..b631da28cb914 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index ebba4ab955d9d..1d93a99a4a400 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-09-11 +date: 2024-09-16 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 b919737cde1f6..1b7ed797bbe8e 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-09-11 +date: 2024-09-16 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 0cf82ec4a01fc..24be9a429b1b3 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-09-11 +date: 2024-09-16 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 be5ff48e22240..7c68d79393db2 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser.mdx b/api_docs/kbn_core_security_browser.mdx index 2128b18b6684e..188d36b3a2be4 100644 --- a/api_docs/kbn_core_security_browser.mdx +++ b/api_docs/kbn_core_security_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser title: "@kbn/core-security-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser'] --- import kbnCoreSecurityBrowserObj from './kbn_core_security_browser.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser_internal.mdx b/api_docs/kbn_core_security_browser_internal.mdx index c405dd63bf439..f43f182f98229 100644 --- a/api_docs/kbn_core_security_browser_internal.mdx +++ b/api_docs/kbn_core_security_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-internal title: "@kbn/core-security-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser-internal plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-internal'] --- import kbnCoreSecurityBrowserInternalObj from './kbn_core_security_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_security_browser_mocks.devdocs.json b/api_docs/kbn_core_security_browser_mocks.devdocs.json index 624b4b5bedcb1..f6b6c98008760 100644 --- a/api_docs/kbn_core_security_browser_mocks.devdocs.json +++ b/api_docs/kbn_core_security_browser_mocks.devdocs.json @@ -146,7 +146,7 @@ "section": "def-common.AuthenticatedUser", "text": "AuthenticatedUser" }, - ", \"roles\"> & { roles: string[]; }>) => { username: string; enabled: boolean; email: string; full_name: string; profile_uid: string; metadata: { _reserved: boolean; _deprecated?: boolean | undefined; _deprecated_reason?: string | undefined; }; authentication_provider: ", + ", \"roles\"> & { roles: string[]; }>) => { username: string; enabled: boolean; metadata: { _reserved: boolean; _deprecated?: boolean | undefined; _deprecated_reason?: string | undefined; }; email: string; full_name: string; profile_uid: string; authentication_provider: ", { "pluginId": "@kbn/core-security-common", "scope": "common", diff --git a/api_docs/kbn_core_security_browser_mocks.mdx b/api_docs/kbn_core_security_browser_mocks.mdx index a14d8b4ae3db8..bd82e6ac32142 100644 --- a/api_docs/kbn_core_security_browser_mocks.mdx +++ b/api_docs/kbn_core_security_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-browser-mocks title: "@kbn/core-security-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-browser-mocks plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-browser-mocks'] --- import kbnCoreSecurityBrowserMocksObj from './kbn_core_security_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_security_common.mdx b/api_docs/kbn_core_security_common.mdx index 4824a03092627..0cad54309f9bb 100644 --- a/api_docs/kbn_core_security_common.mdx +++ b/api_docs/kbn_core_security_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-common title: "@kbn/core-security-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-common plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-common'] --- import kbnCoreSecurityCommonObj from './kbn_core_security_common.devdocs.json'; diff --git a/api_docs/kbn_core_security_server.mdx b/api_docs/kbn_core_security_server.mdx index d2341b46d7304..ac179f1ea4c61 100644 --- a/api_docs/kbn_core_security_server.mdx +++ b/api_docs/kbn_core_security_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server title: "@kbn/core-security-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server'] --- import kbnCoreSecurityServerObj from './kbn_core_security_server.devdocs.json'; diff --git a/api_docs/kbn_core_security_server_internal.mdx b/api_docs/kbn_core_security_server_internal.mdx index 3b36bb7af131b..4dae3f48804d6 100644 --- a/api_docs/kbn_core_security_server_internal.mdx +++ b/api_docs/kbn_core_security_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-internal title: "@kbn/core-security-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server-internal plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-internal'] --- import kbnCoreSecurityServerInternalObj from './kbn_core_security_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_security_server_mocks.devdocs.json b/api_docs/kbn_core_security_server_mocks.devdocs.json index 52fdee77888f7..215a6b44c44fd 100644 --- a/api_docs/kbn_core_security_server_mocks.devdocs.json +++ b/api_docs/kbn_core_security_server_mocks.devdocs.json @@ -312,7 +312,7 @@ "section": "def-common.AuthenticatedUser", "text": "AuthenticatedUser" }, - ", \"roles\"> & { roles: string[]; }>) => { username: string; enabled: boolean; email: string; full_name: string; profile_uid: string; metadata: { _reserved: boolean; _deprecated?: boolean | undefined; _deprecated_reason?: string | undefined; }; authentication_provider: ", + ", \"roles\"> & { roles: string[]; }>) => { username: string; enabled: boolean; metadata: { _reserved: boolean; _deprecated?: boolean | undefined; _deprecated_reason?: string | undefined; }; email: string; full_name: string; profile_uid: string; authentication_provider: ", { "pluginId": "@kbn/core-security-common", "scope": "common", diff --git a/api_docs/kbn_core_security_server_mocks.mdx b/api_docs/kbn_core_security_server_mocks.mdx index 737396799b83f..21ec8acd07f01 100644 --- a/api_docs/kbn_core_security_server_mocks.mdx +++ b/api_docs/kbn_core_security_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-security-server-mocks title: "@kbn/core-security-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-security-server-mocks plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-security-server-mocks'] --- import kbnCoreSecurityServerMocksObj from './kbn_core_security_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 74551b6a648d9..88c7ba4e9e23e 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-09-11 +date: 2024-09-16 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 e5f89c1db638d..100d54f6e4879 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-09-11 +date: 2024-09-16 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 746af2a397e9a..fd3dd82aa754d 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-09-11 +date: 2024-09-16 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 b57560f587b6d..a1926e3fb486e 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-09-11 +date: 2024-09-16 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 19376a2e3a706..e75ab77fb3fc8 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-09-11 +date: 2024-09-16 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 b90735973b296..ec9eff57347c2 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-09-11 +date: 2024-09-16 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 7d08088d55258..9608a2c90110c 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-09-11 +date: 2024-09-16 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 996bf5a73b3ff..f9d1b537e58ce 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-09-11 +date: 2024-09-16 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 a15f7d313efe5..2cbee006f1e5b 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-09-11 +date: 2024-09-16 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 b15c3b503014e..626449c698a16 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-09-11 +date: 2024-09-16 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 42ceb22039153..f48630a187b03 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-09-11 +date: 2024-09-16 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 0afddd2ee22f4..f297480ed6b3a 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-09-11 +date: 2024-09-16 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 6737d23628408..34161d02910e2 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-09-11 +date: 2024-09-16 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 033c5461c8764..e4e9dd21291f1 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-09-11 +date: 2024-09-16 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 61022bcd3e2bb..e98a69122cfba 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-09-11 +date: 2024-09-16 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 6f02d4b683567..3faefc8b89cf4 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-browser-mocks'] --- import kbnCoreUiSettingsBrowserMocksObj from './kbn_core_ui_settings_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_common.mdx b/api_docs/kbn_core_ui_settings_common.mdx index 36facc4718cdb..c53ffcc1bea3b 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-09-11 +date: 2024-09-16 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 82f3e864d513b..ff54486e38222 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-09-11 +date: 2024-09-16 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 a611d2aebe46f..9e6afde1a2a67 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-09-11 +date: 2024-09-16 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 f690f8752a334..46d2ecbc68a86 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-09-11 +date: 2024-09-16 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 b0525a9873c15..e05b557faef7c 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-09-11 +date: 2024-09-16 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 fbf9b6d4d9a31..bfef508232741 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-09-11 +date: 2024-09-16 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 54a784df068c6..e9a49cba00b5f 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_profile_browser.mdx b/api_docs/kbn_core_user_profile_browser.mdx index 5b8305db99452..d1f14e2c46d63 100644 --- a/api_docs/kbn_core_user_profile_browser.mdx +++ b/api_docs/kbn_core_user_profile_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser title: "@kbn/core-user-profile-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-profile-browser plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser'] --- import kbnCoreUserProfileBrowserObj from './kbn_core_user_profile_browser.devdocs.json'; diff --git a/api_docs/kbn_core_user_profile_browser_internal.mdx b/api_docs/kbn_core_user_profile_browser_internal.mdx index c32699c31195d..6eafd8e35bca7 100644 --- a/api_docs/kbn_core_user_profile_browser_internal.mdx +++ b/api_docs/kbn_core_user_profile_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-internal title: "@kbn/core-user-profile-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-profile-browser-internal plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-internal'] --- import kbnCoreUserProfileBrowserInternalObj from './kbn_core_user_profile_browser_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_profile_browser_mocks.mdx b/api_docs/kbn_core_user_profile_browser_mocks.mdx index 1fc5807f95031..7485b3ebbb913 100644 --- a/api_docs/kbn_core_user_profile_browser_mocks.mdx +++ b/api_docs/kbn_core_user_profile_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-browser-mocks title: "@kbn/core-user-profile-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-profile-browser-mocks plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-browser-mocks'] --- import kbnCoreUserProfileBrowserMocksObj from './kbn_core_user_profile_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_profile_common.mdx b/api_docs/kbn_core_user_profile_common.mdx index d0a41eeebd89c..bec4a7e4c6527 100644 --- a/api_docs/kbn_core_user_profile_common.mdx +++ b/api_docs/kbn_core_user_profile_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-common title: "@kbn/core-user-profile-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-profile-common plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-common'] --- import kbnCoreUserProfileCommonObj from './kbn_core_user_profile_common.devdocs.json'; diff --git a/api_docs/kbn_core_user_profile_server.mdx b/api_docs/kbn_core_user_profile_server.mdx index a7366a3667b42..4a08cd62b359f 100644 --- a/api_docs/kbn_core_user_profile_server.mdx +++ b/api_docs/kbn_core_user_profile_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server title: "@kbn/core-user-profile-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-profile-server plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server'] --- import kbnCoreUserProfileServerObj from './kbn_core_user_profile_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_profile_server_internal.mdx b/api_docs/kbn_core_user_profile_server_internal.mdx index 820f1678ac60e..fb80b2213934b 100644 --- a/api_docs/kbn_core_user_profile_server_internal.mdx +++ b/api_docs/kbn_core_user_profile_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-internal title: "@kbn/core-user-profile-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-profile-server-internal plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-internal'] --- import kbnCoreUserProfileServerInternalObj from './kbn_core_user_profile_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_profile_server_mocks.mdx b/api_docs/kbn_core_user_profile_server_mocks.mdx index 8474ed5756616..304e9c4a6129b 100644 --- a/api_docs/kbn_core_user_profile_server_mocks.mdx +++ b/api_docs/kbn_core_user_profile_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-profile-server-mocks title: "@kbn/core-user-profile-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-profile-server-mocks plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-profile-server-mocks'] --- import kbnCoreUserProfileServerMocksObj from './kbn_core_user_profile_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index ac33e785c6fe6..48149a8705613 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index a14d96067c108..e3036ccf40e2d 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-09-11 +date: 2024-09-16 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 8a5091455fd4b..218f5ce1b4fbe 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-09-11 +date: 2024-09-16 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 02f7434ac3384..f93d62ab7b860 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-09-11 +date: 2024-09-16 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 c9e388d16dab9..a604b5f7d67ba 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-09-11 +date: 2024-09-16 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 9a0ba12a699a3..677464e163f5f 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-09-11 +date: 2024-09-16 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 63e200712b82e..9212af971bc9a 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx index 50ef39571861d..ffe5bc0599ed1 100644 --- a/api_docs/kbn_data_forge.mdx +++ b/api_docs/kbn_data_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-forge title: "@kbn/data-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-forge plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge'] --- import kbnDataForgeObj from './kbn_data_forge.devdocs.json'; diff --git a/api_docs/kbn_data_service.devdocs.json b/api_docs/kbn_data_service.devdocs.json index b24f002b7e097..765fae9a12b9b 100644 --- a/api_docs/kbn_data_service.devdocs.json +++ b/api_docs/kbn_data_service.devdocs.json @@ -37,7 +37,7 @@ "section": "def-common.DataView", "text": "DataView" }, - " | undefined, params: TabifyDocsOptions | undefined) => Record" + " | undefined, params: (TabifyDocsOptions & { flattenedFieldsComparator?: ((a: string | symbol, b: string | symbol) => 0 | 1 | -1) | undefined; }) | undefined) => Record" ], "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", "deprecated": false, @@ -87,14 +87,14 @@ { "parentPluginId": "@kbn/data-service", "id": "def-common.flattenHit.$3", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "params", "description": [ "Parameters how to flatten the hit" ], "signature": [ - "TabifyDocsOptions | undefined" + "(TabifyDocsOptions & { flattenedFieldsComparator?: ((a: string | symbol, b: string | symbol) => 0 | 1 | -1) | undefined; }) | undefined" ], "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", "deprecated": false, @@ -145,6 +145,54 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/data-service", + "id": "def-common.getFlattenedFieldsComparator", + "type": "Function", + "tags": [], + "label": "getFlattenedFieldsComparator", + "description": [], + "signature": [ + "(indexPattern?: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " | undefined) => (a: string | symbol, b: string | symbol) => 0 | 1 | -1" + ], + "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-service", + "id": "def-common.getFlattenedFieldsComparator.$1", + "type": "Object", + "tags": [], + "label": "indexPattern", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " | undefined" + ], + "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/data-service", "id": "def-common.tabifyDocs", @@ -241,6 +289,52 @@ "interfaces": [], "enums": [], "misc": [ + { + "parentPluginId": "@kbn/data-service", + "id": "def-common.FlattenedFieldsComparator", + "type": "Type", + "tags": [], + "label": "FlattenedFieldsComparator", + "description": [], + "signature": [ + "(a: string | symbol, b: string | symbol) => 0 | 1 | -1" + ], + "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/data-service", + "id": "def-common.FlattenedFieldsComparator.$1", + "type": "CompoundType", + "tags": [], + "label": "a", + "description": [], + "signature": [ + "string | symbol" + ], + "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-service", + "id": "def-common.FlattenedFieldsComparator.$2", + "type": "CompoundType", + "tags": [], + "label": "b", + "description": [], + "signature": [ + "string | symbol" + ], + "path": "packages/kbn-data-service/src/search/tabify/tabify_docs.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/data-service", "id": "def-common.GetConfigFn", diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index 998cb58f9117d..21167e1c0c3f9 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.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 | |-------------------|-----------|------------------------|-----------------| -| 14 | 0 | 9 | 0 | +| 19 | 0 | 14 | 0 | ## Common diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx index 7bbe622f6caa4..a1bfc3a561eb5 100644 --- a/api_docs/kbn_data_stream_adapter.mdx +++ b/api_docs/kbn_data_stream_adapter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-stream-adapter title: "@kbn/data-stream-adapter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-stream-adapter plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter'] --- import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json'; diff --git a/api_docs/kbn_data_view_utils.mdx b/api_docs/kbn_data_view_utils.mdx index b4b5a4aee56bc..7e5d95f6a35ac 100644 --- a/api_docs/kbn_data_view_utils.mdx +++ b/api_docs/kbn_data_view_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-view-utils title: "@kbn/data-view-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-view-utils plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-view-utils'] --- import kbnDataViewUtilsObj from './kbn_data_view_utils.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 49ac49daea755..5805ff251e48b 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-09-11 +date: 2024-09-16 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 b8a5f4a964753..3eaf1529882b6 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-09-11 +date: 2024-09-16 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 d196148d77f00..59577356c8116 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_fleet.devdocs.json b/api_docs/kbn_deeplinks_fleet.devdocs.json index 4a55c23d6c208..9aad269525c69 100644 --- a/api_docs/kbn_deeplinks_fleet.devdocs.json +++ b/api_docs/kbn_deeplinks_fleet.devdocs.json @@ -45,7 +45,7 @@ "label": "DeepLinkId", "description": [], "signature": [ - "\"fleet\" | \"fleet:settings\" | \"fleet:policies\" | \"fleet:data_streams\" | \"fleet:enrollment_tokens\" | \"fleet:uninstall_tokens\" | \"fleet:agents\"" + "\"fleet\" | \"fleet:settings\" | \"fleet:agents\" | \"fleet:policies\" | \"fleet:data_streams\" | \"fleet:enrollment_tokens\" | \"fleet:uninstall_tokens\"" ], "path": "packages/deeplinks/fleet/deep_links.ts", "deprecated": false, @@ -60,7 +60,7 @@ "label": "LinkId", "description": [], "signature": [ - "\"settings\" | \"policies\" | \"data_streams\" | \"enrollment_tokens\" | \"uninstall_tokens\" | \"agents\"" + "\"settings\" | \"agents\" | \"policies\" | \"data_streams\" | \"enrollment_tokens\" | \"uninstall_tokens\"" ], "path": "packages/deeplinks/fleet/deep_links.ts", "deprecated": false, diff --git a/api_docs/kbn_deeplinks_fleet.mdx b/api_docs/kbn_deeplinks_fleet.mdx index 5b5d5cc4f3e79..64db325878077 100644 --- a/api_docs/kbn_deeplinks_fleet.mdx +++ b/api_docs/kbn_deeplinks_fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-fleet title: "@kbn/deeplinks-fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-fleet plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-fleet'] --- import kbnDeeplinksFleetObj from './kbn_deeplinks_fleet.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index 1fd3e0b3718e1..1500804687668 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.devdocs.json b/api_docs/kbn_deeplinks_ml.devdocs.json index 8b5cc6186492b..62df1cb97552b 100644 --- a/api_docs/kbn_deeplinks_ml.devdocs.json +++ b/api_docs/kbn_deeplinks_ml.devdocs.json @@ -45,7 +45,7 @@ "label": "DeepLinkId", "description": [], "signature": [ - "\"ml\" | \"ml:notifications\" | \"ml:nodes\" | \"ml:overview\" | \"ml:memoryUsage\" | \"ml:settings\" | \"ml:dataVisualizer\" | \"ml:logPatternAnalysis\" | \"ml:logRateAnalysis\" | \"ml:singleMetricViewer\" | \"ml:anomalyDetection\" | \"ml:anomalyExplorer\" | \"ml:dataDrift\" | \"ml:dataFrameAnalytics\" | \"ml:resultExplorer\" | \"ml:analyticsMap\" | \"ml:aiOps\" | \"ml:changePointDetections\" | \"ml:modelManagement\" | \"ml:nodesOverview\" | \"ml:esqlDataVisualizer\" | \"ml:fileUpload\" | \"ml:indexDataVisualizer\" | \"ml:calendarSettings\" | \"ml:filterListsSettings\"" + "\"ml\" | \"ml:notifications\" | \"ml:nodes\" | \"ml:overview\" | \"ml:memoryUsage\" | \"ml:settings\" | \"ml:dataVisualizer\" | \"ml:logPatternAnalysis\" | \"ml:logRateAnalysis\" | \"ml:singleMetricViewer\" | \"ml:anomalyDetection\" | \"ml:anomalyExplorer\" | \"ml:dataDrift\" | \"ml:dataFrameAnalytics\" | \"ml:resultExplorer\" | \"ml:analyticsMap\" | \"ml:aiOps\" | \"ml:changePointDetections\" | \"ml:modelManagement\" | \"ml:nodesOverview\" | \"ml:esqlDataVisualizer\" | \"ml:fileUpload\" | \"ml:indexDataVisualizer\" | \"ml:calendarSettings\" | \"ml:filterListsSettings\" | \"ml:suppliedConfigurations\"" ], "path": "packages/deeplinks/ml/deep_links.ts", "deprecated": false, @@ -60,7 +60,7 @@ "label": "LinkId", "description": [], "signature": [ - "\"notifications\" | \"nodes\" | \"overview\" | \"memoryUsage\" | \"settings\" | \"dataVisualizer\" | \"logPatternAnalysis\" | \"logRateAnalysis\" | \"singleMetricViewer\" | \"anomalyDetection\" | \"anomalyExplorer\" | \"dataDrift\" | \"dataFrameAnalytics\" | \"resultExplorer\" | \"analyticsMap\" | \"aiOps\" | \"changePointDetections\" | \"modelManagement\" | \"nodesOverview\" | \"esqlDataVisualizer\" | \"fileUpload\" | \"indexDataVisualizer\" | \"calendarSettings\" | \"filterListsSettings\"" + "\"notifications\" | \"nodes\" | \"overview\" | \"memoryUsage\" | \"settings\" | \"dataVisualizer\" | \"logPatternAnalysis\" | \"logRateAnalysis\" | \"singleMetricViewer\" | \"anomalyDetection\" | \"anomalyExplorer\" | \"dataDrift\" | \"dataFrameAnalytics\" | \"resultExplorer\" | \"analyticsMap\" | \"aiOps\" | \"changePointDetections\" | \"modelManagement\" | \"nodesOverview\" | \"esqlDataVisualizer\" | \"fileUpload\" | \"indexDataVisualizer\" | \"calendarSettings\" | \"filterListsSettings\" | \"suppliedConfigurations\"" ], "path": "packages/deeplinks/ml/deep_links.ts", "deprecated": false, diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index 1905a3053dfd9..f54e6a8337ef7 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-09-11 +date: 2024-09-16 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 35fde7e1e3c3d..2a82d0cbccbf1 100644 --- a/api_docs/kbn_deeplinks_observability.devdocs.json +++ b/api_docs/kbn_deeplinks_observability.devdocs.json @@ -843,7 +843,7 @@ "label": "AppId", "description": [], "signature": [ - "\"profiling\" | \"metrics\" | \"apm\" | \"synthetics\" | \"ux\" | \"logs\" | \"slo\" | \"observabilityAIAssistant\" | \"observability-overview\" | \"observability-logs-explorer\" | \"observabilityOnboarding\"" + "\"profiling\" | \"metrics\" | \"apm\" | \"synthetics\" | \"ux\" | \"logs\" | \"slo\" | \"observabilityAIAssistant\" | \"observability-overview\" | \"observability-logs-explorer\" | \"observabilityOnboarding\" | \"inventory\"" ], "path": "packages/deeplinks/observability/deep_links.ts", "deprecated": false, @@ -924,7 +924,7 @@ "section": "def-common.AppId", "text": "AppId" }, - " | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:alerts\" | \"observability-overview:rules\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\" | \"profiling:stacktraces\" | \"profiling:flamegraphs\" | \"profiling:functions\"" + " | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:alerts\" | \"observability-overview:rules\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"metrics:assetDetails\" | \"apm:services\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:overview\" | \"synthetics:certificates\" | \"profiling:functions\" | \"profiling:stacktraces\" | \"profiling:flamegraphs\" | \"inventory:datastreams\"" ], "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 b4bf9ff4eb075..2e07fa3b3de57 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,14 +8,14 @@ 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; -Contact [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) for questions regarding this plugin. +Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) for questions regarding this plugin. **Code health stats** diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index 933a13423fe98..b7e70207b1528 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_security.devdocs.json b/api_docs/kbn_deeplinks_security.devdocs.json index 5eec00a0d9340..b1e26ac98f9d7 100644 --- a/api_docs/kbn_deeplinks_security.devdocs.json +++ b/api_docs/kbn_deeplinks_security.devdocs.json @@ -58,7 +58,7 @@ "label": "DeepLinkId", "description": [], "signature": [ - "\"securitySolutionUI\" | \"securitySolutionUI:\" | \"securitySolutionUI:cases\" | \"securitySolutionUI:alerts\" | \"securitySolutionUI:rules\" | \"securitySolutionUI:policy\" | \"securitySolutionUI:overview\" | \"securitySolutionUI:dashboards\" | \"securitySolutionUI:cases_create\" | \"securitySolutionUI:cases_configure\" | \"securitySolutionUI:hosts\" | \"securitySolutionUI:users\" | \"securitySolutionUI:cloud_defend-policies\" | \"securitySolutionUI:cloud_security_posture-dashboard\" | \"securitySolutionUI:cloud_security_posture-findings\" | \"securitySolutionUI:cloud_security_posture-benchmarks\" | \"securitySolutionUI:kubernetes\" | \"securitySolutionUI:network\" | \"securitySolutionUI:data_quality\" | \"securitySolutionUI:explore\" | \"securitySolutionUI:assets\" | \"securitySolutionUI:cloud_defend\" | \"securitySolutionUI:administration\" | \"securitySolutionUI:attack_discovery\" | \"securitySolutionUI:blocklist\" | \"securitySolutionUI:cloud_security_posture-rules\" | \"securitySolutionUI:detections\" | \"securitySolutionUI:detection_response\" | \"securitySolutionUI:endpoints\" | \"securitySolutionUI:event_filters\" | \"securitySolutionUI:exceptions\" | \"securitySolutionUI:host_isolation_exceptions\" | \"securitySolutionUI:hosts-all\" | \"securitySolutionUI:hosts-anomalies\" | \"securitySolutionUI:hosts-risk\" | \"securitySolutionUI:hosts-events\" | \"securitySolutionUI:hosts-sessions\" | \"securitySolutionUI:hosts-uncommon_processes\" | \"securitySolutionUI:investigations\" | \"securitySolutionUI:get_started\" | \"securitySolutionUI:machine_learning-landing\" | \"securitySolutionUI:network-anomalies\" | \"securitySolutionUI:network-dns\" | \"securitySolutionUI:network-events\" | \"securitySolutionUI:network-flows\" | \"securitySolutionUI:network-http\" | \"securitySolutionUI:network-tls\" | \"securitySolutionUI:response_actions_history\" | \"securitySolutionUI:rules-add\" | \"securitySolutionUI:rules-create\" | \"securitySolutionUI:rules-landing\" | \"securitySolutionUI:threat_intelligence\" | \"securitySolutionUI:timelines\" | \"securitySolutionUI:timelines-templates\" | \"securitySolutionUI:trusted_apps\" | \"securitySolutionUI:users-all\" | \"securitySolutionUI:users-anomalies\" | \"securitySolutionUI:users-authentications\" | \"securitySolutionUI:users-events\" | \"securitySolutionUI:users-risk\" | \"securitySolutionUI:entity_analytics\" | \"securitySolutionUI:entity_analytics-management\" | \"securitySolutionUI:entity_analytics-asset-classification\" | \"securitySolutionUI:coverage-overview\" | \"securitySolutionUI:notes-management\"" + "\"securitySolutionUI\" | \"securitySolutionUI:\" | \"securitySolutionUI:cases\" | \"securitySolutionUI:alerts\" | \"securitySolutionUI:rules\" | \"securitySolutionUI:policy\" | \"securitySolutionUI:overview\" | \"securitySolutionUI:dashboards\" | \"securitySolutionUI:kubernetes\" | \"securitySolutionUI:cases_create\" | \"securitySolutionUI:cases_configure\" | \"securitySolutionUI:hosts\" | \"securitySolutionUI:users\" | \"securitySolutionUI:cloud_defend-policies\" | \"securitySolutionUI:cloud_security_posture-dashboard\" | \"securitySolutionUI:cloud_security_posture-findings\" | \"securitySolutionUI:cloud_security_posture-benchmarks\" | \"securitySolutionUI:network\" | \"securitySolutionUI:data_quality\" | \"securitySolutionUI:explore\" | \"securitySolutionUI:assets\" | \"securitySolutionUI:cloud_defend\" | \"securitySolutionUI:administration\" | \"securitySolutionUI:attack_discovery\" | \"securitySolutionUI:blocklist\" | \"securitySolutionUI:cloud_security_posture-rules\" | \"securitySolutionUI:detections\" | \"securitySolutionUI:detection_response\" | \"securitySolutionUI:endpoints\" | \"securitySolutionUI:event_filters\" | \"securitySolutionUI:exceptions\" | \"securitySolutionUI:host_isolation_exceptions\" | \"securitySolutionUI:hosts-all\" | \"securitySolutionUI:hosts-anomalies\" | \"securitySolutionUI:hosts-risk\" | \"securitySolutionUI:hosts-events\" | \"securitySolutionUI:hosts-sessions\" | \"securitySolutionUI:hosts-uncommon_processes\" | \"securitySolutionUI:investigations\" | \"securitySolutionUI:get_started\" | \"securitySolutionUI:machine_learning-landing\" | \"securitySolutionUI:network-anomalies\" | \"securitySolutionUI:network-dns\" | \"securitySolutionUI:network-events\" | \"securitySolutionUI:network-flows\" | \"securitySolutionUI:network-http\" | \"securitySolutionUI:network-tls\" | \"securitySolutionUI:response_actions_history\" | \"securitySolutionUI:rules-add\" | \"securitySolutionUI:rules-create\" | \"securitySolutionUI:rules-landing\" | \"securitySolutionUI:threat_intelligence\" | \"securitySolutionUI:timelines\" | \"securitySolutionUI:timelines-templates\" | \"securitySolutionUI:trusted_apps\" | \"securitySolutionUI:users-all\" | \"securitySolutionUI:users-anomalies\" | \"securitySolutionUI:users-authentications\" | \"securitySolutionUI:users-events\" | \"securitySolutionUI:users-risk\" | \"securitySolutionUI:entity_analytics\" | \"securitySolutionUI:entity_analytics-management\" | \"securitySolutionUI:entity_analytics-asset-classification\" | \"securitySolutionUI:coverage-overview\" | \"securitySolutionUI:notes-management\"" ], "path": "packages/deeplinks/security/index.ts", "deprecated": false, @@ -73,7 +73,7 @@ "label": "LinkId", "description": [], "signature": [ - "\"\" | \"cases\" | \"alerts\" | \"rules\" | \"policy\" | \"overview\" | \"dashboards\" | \"cases_create\" | \"cases_configure\" | \"hosts\" | \"users\" | \"cloud_defend-policies\" | \"cloud_security_posture-dashboard\" | \"cloud_security_posture-findings\" | \"cloud_security_posture-benchmarks\" | \"kubernetes\" | \"network\" | \"data_quality\" | \"explore\" | \"assets\" | \"cloud_defend\" | \"administration\" | \"attack_discovery\" | \"blocklist\" | \"cloud_security_posture-rules\" | \"detections\" | \"detection_response\" | \"endpoints\" | \"event_filters\" | \"exceptions\" | \"host_isolation_exceptions\" | \"hosts-all\" | \"hosts-anomalies\" | \"hosts-risk\" | \"hosts-events\" | \"hosts-sessions\" | \"hosts-uncommon_processes\" | \"investigations\" | \"get_started\" | \"machine_learning-landing\" | \"network-anomalies\" | \"network-dns\" | \"network-events\" | \"network-flows\" | \"network-http\" | \"network-tls\" | \"response_actions_history\" | \"rules-add\" | \"rules-create\" | \"rules-landing\" | \"threat_intelligence\" | \"timelines\" | \"timelines-templates\" | \"trusted_apps\" | \"users-all\" | \"users-anomalies\" | \"users-authentications\" | \"users-events\" | \"users-risk\" | \"entity_analytics\" | \"entity_analytics-management\" | \"entity_analytics-asset-classification\" | \"coverage-overview\" | \"notes-management\"" + "\"\" | \"cases\" | \"alerts\" | \"rules\" | \"policy\" | \"overview\" | \"dashboards\" | \"kubernetes\" | \"cases_create\" | \"cases_configure\" | \"hosts\" | \"users\" | \"cloud_defend-policies\" | \"cloud_security_posture-dashboard\" | \"cloud_security_posture-findings\" | \"cloud_security_posture-benchmarks\" | \"network\" | \"data_quality\" | \"explore\" | \"assets\" | \"cloud_defend\" | \"administration\" | \"attack_discovery\" | \"blocklist\" | \"cloud_security_posture-rules\" | \"detections\" | \"detection_response\" | \"endpoints\" | \"event_filters\" | \"exceptions\" | \"host_isolation_exceptions\" | \"hosts-all\" | \"hosts-anomalies\" | \"hosts-risk\" | \"hosts-events\" | \"hosts-sessions\" | \"hosts-uncommon_processes\" | \"investigations\" | \"get_started\" | \"machine_learning-landing\" | \"network-anomalies\" | \"network-dns\" | \"network-events\" | \"network-flows\" | \"network-http\" | \"network-tls\" | \"response_actions_history\" | \"rules-add\" | \"rules-create\" | \"rules-landing\" | \"threat_intelligence\" | \"timelines\" | \"timelines-templates\" | \"trusted_apps\" | \"users-all\" | \"users-anomalies\" | \"users-authentications\" | \"users-events\" | \"users-risk\" | \"entity_analytics\" | \"entity_analytics-management\" | \"entity_analytics-asset-classification\" | \"coverage-overview\" | \"notes-management\"" ], "path": "packages/deeplinks/security/index.ts", "deprecated": false, diff --git a/api_docs/kbn_deeplinks_security.mdx b/api_docs/kbn_deeplinks_security.mdx index c369071ab2ef2..3f9609d4cfd24 100644 --- a/api_docs/kbn_deeplinks_security.mdx +++ b/api_docs/kbn_deeplinks_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-security title: "@kbn/deeplinks-security" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-security plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-security'] --- import kbnDeeplinksSecurityObj from './kbn_deeplinks_security.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_shared.mdx b/api_docs/kbn_deeplinks_shared.mdx index 94d07c81e1617..6431437e9e6dc 100644 --- a/api_docs/kbn_deeplinks_shared.mdx +++ b/api_docs/kbn_deeplinks_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-shared title: "@kbn/deeplinks-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-shared plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-shared'] --- import kbnDeeplinksSharedObj from './kbn_deeplinks_shared.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index 500dce059c12f..349db2ce9357d 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-09-11 +date: 2024-09-16 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 11e07557e49ff..9276e1a95b531 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-09-11 +date: 2024-09-16 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 af2047304aed0..7aa84b34f6c33 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_default_nav_ml.devdocs.json index 4fe6bb317c90f..2ff964424c0c5 100644 --- a/api_docs/kbn_default_nav_ml.devdocs.json +++ b/api_docs/kbn_default_nav_ml.devdocs.json @@ -172,7 +172,7 @@ "label": "children", "description": [], "signature": [ - "({ link: \"ml:overview\"; } | { link: \"ml:notifications\"; } | { link: \"ml:memoryUsage\"; } | { title: string; link: \"ml:anomalyDetection\"; renderAs: \"accordion\"; children: ({ title: string; link: \"ml:anomalyDetection\"; breadcrumbStatus: \"hidden\"; } | { link: \"ml:anomalyExplorer\"; } | { link: \"ml:singleMetricViewer\"; } | { link: \"ml:settings\"; })[]; } | { link: \"ml:dataFrameAnalytics\"; title: string; renderAs: \"accordion\"; children: ({ title: string; link: \"ml:dataFrameAnalytics\"; breadcrumbStatus: \"hidden\"; } | { link: \"ml:resultExplorer\"; } | { link: \"ml:analyticsMap\"; })[]; } | { id: \"model_management\"; title: string; renderAs: \"accordion\"; children: ({ link: \"ml:nodesOverview\"; } | { link: \"ml:nodes\"; })[]; } | { id: \"data_visualizer\"; title: string; renderAs: \"accordion\"; children: ({ title: string; link: \"ml:fileUpload\"; } | { title: string; link: \"ml:indexDataVisualizer\"; getIsActive: ({ pathNameSerialized, prepend }: { pathNameSerialized: string; location: ", + "({ link: \"ml:overview\"; } | { link: \"ml:notifications\"; } | { link: \"ml:memoryUsage\"; } | { title: string; link: \"ml:anomalyDetection\"; renderAs: \"accordion\"; children: ({ title: string; link: \"ml:anomalyDetection\"; breadcrumbStatus: \"hidden\"; } | { link: \"ml:anomalyExplorer\"; } | { link: \"ml:singleMetricViewer\"; } | { link: \"ml:suppliedConfigurations\"; } | { link: \"ml:settings\"; })[]; } | { link: \"ml:dataFrameAnalytics\"; title: string; renderAs: \"accordion\"; children: ({ title: string; link: \"ml:dataFrameAnalytics\"; breadcrumbStatus: \"hidden\"; } | { link: \"ml:resultExplorer\"; } | { link: \"ml:analyticsMap\"; })[]; } | { id: \"model_management\"; title: string; renderAs: \"accordion\"; children: ({ link: \"ml:nodesOverview\"; } | { link: \"ml:nodes\"; })[]; } | { id: \"data_visualizer\"; title: string; renderAs: \"accordion\"; children: ({ title: string; link: \"ml:fileUpload\"; } | { title: string; link: \"ml:indexDataVisualizer\"; getIsActive: ({ pathNameSerialized, prepend }: { pathNameSerialized: string; location: ", "Location", "; prepend: (path: string) => string; }) => boolean; } | { title: string; link: \"ml:esqlDataVisualizer\"; getIsActive: ({ pathNameSerialized, prepend }: { pathNameSerialized: string; location: ", "Location", diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 23bc86b4f984e..b8da6c9a6735c 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-09-11 +date: 2024-09-16 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 c8e7b12c6db0f..067cf50c32288 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-09-11 +date: 2024-09-16 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 b98d46a08452f..b8f3c27df90c5 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-09-11 +date: 2024-09-16 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 7d6e538038907..469299a27f883 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-09-11 +date: 2024-09-16 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 fe0c27160eca4..a596762acf431 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.devdocs.json b/api_docs/kbn_discover_utils.devdocs.json index 1e985acf20643..dbe64e92d0655 100644 --- a/api_docs/kbn_discover_utils.devdocs.json +++ b/api_docs/kbn_discover_utils.devdocs.json @@ -45,7 +45,7 @@ "section": "def-common.DataView", "text": "DataView" }, - " | undefined, isAnchor: boolean | undefined) => ", + " | undefined, isAnchor: boolean | undefined, options: { flattenedFieldsComparator?: ((a: string | symbol, b: string | symbol) => 0 | 1 | -1) | undefined; } | undefined) => ", { "pluginId": "@kbn/discover-utils", "scope": "common", @@ -121,6 +121,33 @@ "deprecated": false, "trackAdoption": false, "isRequired": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.buildDataTableRecord.$4", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "packages/kbn-discover-utils/src/utils/build_data_record.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.buildDataTableRecord.$4.flattenedFieldsComparator", + "type": "Function", + "tags": [], + "label": "flattenedFieldsComparator", + "description": [], + "signature": [ + "((a: string | symbol, b: string | symbol) => 0 | 1 | -1) | undefined" + ], + "path": "packages/kbn-discover-utils/src/utils/build_data_record.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "returnComment": [], @@ -329,6 +356,158 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.canPrependTimeFieldColumn", + "type": "Function", + "tags": [], + "label": "canPrependTimeFieldColumn", + "description": [], + "signature": [ + "(columns: string[] | undefined, timeFieldName: string | undefined, columnsMeta: ", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.DataTableColumnsMeta", + "text": "DataTableColumnsMeta" + }, + " | undefined, showTimeCol: boolean, isESQLMode: boolean) => boolean" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.canPrependTimeFieldColumn.$1", + "type": "Array", + "tags": [], + "label": "columns", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.canPrependTimeFieldColumn.$2", + "type": "string", + "tags": [], + "label": "timeFieldName", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.canPrependTimeFieldColumn.$3", + "type": "Object", + "tags": [], + "label": "columnsMeta", + "description": [], + "signature": [ + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.DataTableColumnsMeta", + "text": "DataTableColumnsMeta" + }, + " | undefined" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.canPrependTimeFieldColumn.$4", + "type": "boolean", + "tags": [], + "label": "showTimeCol", + "description": [], + "signature": [ + "boolean" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.canPrependTimeFieldColumn.$5", + "type": "boolean", + "tags": [], + "label": "isESQLMode", + "description": [], + "signature": [ + "boolean" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.createDegradedDocsControl", + "type": "Function", + "tags": [], + "label": "createDegradedDocsControl", + "description": [ + "\nDegraded docs control factory function." + ], + "signature": [ + "(props?: DegradedDocsControlProps | undefined) => ", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlColumn", + "text": "RowControlColumn" + } + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/degraded_docs_control.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.createDegradedDocsControl.$1", + "type": "Object", + "tags": [], + "label": "props", + "description": [ + "Optional props for the generated Control component, useful to override onClick, etc" + ], + "signature": [ + "DegradedDocsControlProps | undefined" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/degraded_docs_control.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/discover-utils", "id": "def-common.createLogsContextService", @@ -364,6 +543,66 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.createStacktraceControl", + "type": "Function", + "tags": [], + "label": "createStacktraceControl", + "description": [ + "\nStacktrace control factory function." + ], + "signature": [ + "(props?: Partial<", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlProps", + "text": "RowControlProps" + }, + "> | undefined) => ", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlColumn", + "text": "RowControlColumn" + } + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/stacktrace_control.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.createStacktraceControl.$1", + "type": "Object", + "tags": [], + "label": "props", + "description": [ + "Optional props for the generated Control component, useful to override onClick, etc" + ], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlProps", + "text": "RowControlProps" + }, + "> | undefined" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/stacktrace_control.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/discover-utils", "id": "def-common.formatFieldValue", @@ -1375,6 +1614,83 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.getVisibleColumns", + "type": "Function", + "tags": [], + "label": "getVisibleColumns", + "description": [], + "signature": [ + "(columns: string[], dataView: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + ", shouldPrependTimeFieldColumn: boolean) => string[]" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.getVisibleColumns.$1", + "type": "Array", + "tags": [], + "label": "columns", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.getVisibleColumns.$2", + "type": "Object", + "tags": [], + "label": "dataView", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + } + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.getVisibleColumns.$3", + "type": "boolean", + "tags": [], + "label": "shouldPrependTimeFieldColumn", + "description": [], + "signature": [ + "boolean" + ], + "path": "packages/kbn-discover-utils/src/utils/get_visible_columns.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/discover-utils", "id": "def-common.isLegacyTableEnabled", @@ -1699,7 +2015,7 @@ "section": "def-common.EsHitRecord", "text": "EsHitRecord" }, - " extends Omit" + " extends Omit" ], "path": "packages/kbn-discover-utils/src/types.ts", "deprecated": false, @@ -2239,21 +2555,308 @@ } ], "initialIsOpen": false - } - ], - "enums": [ + }, { "parentPluginId": "@kbn/discover-utils", - "id": "def-common.IgnoredReason", - "type": "Enum", + "id": "def-common.RowControlColumn", + "type": "Interface", "tags": [], - "label": "IgnoredReason", + "label": "RowControlColumn", "description": [], - "path": "packages/kbn-discover-utils/src/utils/get_ignored_reason.ts", + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", "deprecated": false, "trackAdoption": false, - "initialIsOpen": false - }, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlColumn.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlColumn.headerAriaLabel", + "type": "string", + "tags": [], + "label": "headerAriaLabel", + "description": [], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlColumn.headerCellRender", + "type": "CompoundType", + "tags": [], + "label": "headerCellRender", + "description": [], + "signature": [ + "React.ComponentType<{}> | undefined" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlColumn.renderControl", + "type": "Function", + "tags": [], + "label": "renderControl", + "description": [], + "signature": [ + "(Control: ", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlComponent", + "text": "RowControlComponent" + }, + ", props: ", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlRowProps", + "text": "RowControlRowProps" + }, + ") => React.ReactElement>" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlColumn.renderControl.$1", + "type": "Function", + "tags": [], + "label": "Control", + "description": [], + "signature": [ + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlComponent", + "text": "RowControlComponent" + } + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlColumn.renderControl.$2", + "type": "Object", + "tags": [], + "label": "props", + "description": [], + "signature": [ + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlRowProps", + "text": "RowControlRowProps" + } + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlProps", + "type": "Interface", + "tags": [], + "label": "RowControlProps", + "description": [], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlProps.datatestsubj", + "type": "string", + "tags": [], + "label": "'data-test-subj'", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlProps.color", + "type": "CompoundType", + "tags": [], + "label": "color", + "description": [], + "signature": [ + "\"text\" | \"warning\" | \"success\" | \"primary\" | \"accent\" | \"danger\" | undefined" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlProps.disabled", + "type": "CompoundType", + "tags": [], + "label": "disabled", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlProps.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlProps.iconType", + "type": "CompoundType", + "tags": [], + "label": "iconType", + "description": [], + "signature": [ + "string | React.ComponentType<{}>" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlProps.onClick", + "type": "Function", + "tags": [], + "label": "onClick", + "description": [], + "signature": [ + "((props: ", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlRowProps", + "text": "RowControlRowProps" + }, + ") => void) | undefined" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlProps.tooltipContent", + "type": "CompoundType", + "tags": [], + "label": "tooltipContent", + "description": [], + "signature": [ + "boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlRowProps", + "type": "Interface", + "tags": [], + "label": "RowControlRowProps", + "description": [], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlRowProps.rowIndex", + "type": "number", + "tags": [], + "label": "rowIndex", + "description": [], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlRowProps.record", + "type": "Object", + "tags": [], + "label": "record", + "description": [], + "signature": [ + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.DataTableRecord", + "text": "DataTableRecord" + } + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.IgnoredReason", + "type": "Enum", + "tags": [], + "label": "IgnoredReason", + "description": [], + "path": "packages/kbn-discover-utils/src/utils/get_ignored_reason.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/discover-utils", "id": "def-common.LogLevelCoalescedValue", @@ -2313,6 +2916,31 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.DataTableColumnsMeta", + "type": "Type", + "tags": [], + "label": "DataTableColumnsMeta", + "description": [ + "\nCustom column types per column name" + ], + "signature": [ + "{ [x: string]: { type: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumnType", + "text": "DatatableColumnType" + }, + "; esType?: string | undefined; }; }" + ], + "path": "packages/kbn-discover-utils/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/discover-utils", "id": "def-common.DEFAULT_ALLOWED_LOGS_BASE_PATTERNS", @@ -2465,6 +3093,60 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlComponent", + "type": "Type", + "tags": [], + "label": "RowControlComponent", + "description": [], + "signature": [ + "React.FunctionComponent<", + { + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlProps", + "text": "RowControlProps" + }, + ">" + ], + "path": "packages/kbn-discover-utils/src/components/custom_control_columns/types.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlComponent.$1", + "type": "CompoundType", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "P & { children?: React.ReactNode; }" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/discover-utils", + "id": "def-common.RowControlComponent.$2", + "type": "Any", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "any" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/discover-utils", "id": "def-common.SAMPLE_ROWS_PER_PAGE_SETTING", diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index be42a2c1059e1..7a95ead5a80e4 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 136 | 0 | 109 | 1 | +| 174 | 0 | 140 | 1 | ## Common diff --git a/api_docs/kbn_doc_links.devdocs.json b/api_docs/kbn_doc_links.devdocs.json index 5b28689a78f06..9a1f8d1f46207 100644 --- a/api_docs/kbn_doc_links.devdocs.json +++ b/api_docs/kbn_doc_links.devdocs.json @@ -138,6 +138,17 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/doc-links", + "id": "def-common.DocLinks.apiReference", + "type": "string", + "tags": [], + "label": "apiReference", + "description": [], + "path": "packages/kbn-doc-links/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/doc-links", "id": "def-common.DocLinks.upgrade", diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index a6c888a9dc96a..ee498608d2209 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/docs](https://github.com/orgs/elastic/teams/docs) for question | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 78 | 0 | 78 | 2 | +| 79 | 0 | 79 | 2 | ## Common diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 78259b983d381..e62c0b9373c89 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.devdocs.json'; diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index a4415f36afe93..ffa77e1f7dd5c 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-09-11 +date: 2024-09-16 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 61cfe1a25a7cd..2bfb045edce81 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index ef0e5af9b1c25..17566b5944544 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx index 0f30d082029db..30f95b20fa2e5 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-09-11 +date: 2024-09-16 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 3d4b510be8d61..9c1d79634bee5 100644 --- a/api_docs/kbn_elastic_assistant.devdocs.json +++ b/api_docs/kbn_elastic_assistant.devdocs.json @@ -1279,7 +1279,7 @@ "label": "reportAssistantMessageSent", "description": [], "signature": [ - "(params: { conversationId: string; role: string; actionTypeId: string; model?: string | undefined; provider?: string | undefined; }) => void" + "(params: { conversationId: string; role: string; actionTypeId: string; model?: string | undefined; provider?: string | undefined; isEnabledKnowledgeBase: boolean; }) => void" ], "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx", "deprecated": false, @@ -1356,6 +1356,17 @@ "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/elastic-assistant", + "id": "def-public.AssistantTelemetry.reportAssistantMessageSent.$1.isEnabledKnowledgeBase", + "type": "boolean", + "tags": [], + "label": "isEnabledKnowledgeBase", + "description": [], + "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx", + "deprecated": false, + "trackAdoption": false } ] } @@ -2039,7 +2050,7 @@ "label": "apiConfig", "description": [], "signature": [ - "{ connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined" + "{ connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined" ], "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx", "deprecated": false, @@ -2326,7 +2337,7 @@ "label": "apiConfig", "description": [], "signature": [ - "{ connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined" + "{ connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined" ], "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant/api/conversations/bulk_update_actions_conversations.ts", "deprecated": false, @@ -2518,6 +2529,60 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/elastic-assistant", + "id": "def-public.GetAssistantMessages", + "type": "Type", + "tags": [], + "label": "GetAssistantMessages", + "description": [], + "signature": [ + "(commentArgs: { abortStream: () => void; currentConversation?: ", + { + "pluginId": "@kbn/elastic-assistant", + "scope": "public", + "docId": "kibKbnElasticAssistantPluginApi", + "section": "def-public.Conversation", + "text": "Conversation" + }, + " | undefined; isFetchingResponse: boolean; refetchCurrentConversation: ({ isStreamRefetch }: { isStreamRefetch?: boolean | undefined; }) => void; regenerateMessage: (conversationId: string) => void; showAnonymizedValues: boolean; currentUserAvatar?: ", + "UserAvatar", + " | undefined; setIsStreaming: (isStreaming: boolean) => void; systemPromptContent?: string | undefined; }) => ", + "EuiCommentProps", + "[]" + ], + "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/elastic-assistant", + "id": "def-public.GetAssistantMessages.$1", + "type": "Object", + "tags": [], + "label": "commentArgs", + "description": [], + "signature": [ + "{ abortStream: () => void; currentConversation?: ", + { + "pluginId": "@kbn/elastic-assistant", + "scope": "public", + "docId": "kibKbnElasticAssistantPluginApi", + "section": "def-public.Conversation", + "text": "Conversation" + }, + " | undefined; isFetchingResponse: boolean; refetchCurrentConversation: ({ isStreamRefetch }: { isStreamRefetch?: boolean | undefined; }) => void; regenerateMessage: (conversationId: string) => void; showAnonymizedValues: boolean; currentUserAvatar?: ", + "UserAvatar", + " | undefined; setIsStreaming: (isStreaming: boolean) => void; systemPromptContent?: string | undefined; }" + ], + "path": "x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/elastic-assistant", "id": "def-public.KNOWLEDGE_BASE_LOCAL_STORAGE_KEY", diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index ffefa42f69035..71c2b8647a109 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/ | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 156 | 0 | 130 | 9 | +| 159 | 0 | 133 | 10 | ## Client diff --git a/api_docs/kbn_elastic_assistant_common.devdocs.json b/api_docs/kbn_elastic_assistant_common.devdocs.json index 2fc5def8c52ae..e744612b9538f 100644 --- a/api_docs/kbn_elastic_assistant_common.devdocs.json +++ b/api_docs/kbn_elastic_assistant_common.devdocs.json @@ -752,7 +752,7 @@ "label": "ApiConfig", "description": [], "signature": [ - "{ connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }" + "{ connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -827,7 +827,7 @@ "label": "AppendConversationMessageResponse", "description": [], "signature": [ - "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/append_message.gen.ts", "deprecated": false, @@ -923,7 +923,7 @@ "label": "AttackDiscoveryCancelResponse", "description": [], "signature": [ - "{ id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }" + "{ id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/cancel_attack_discovery_route.gen.ts", "deprecated": false, @@ -938,7 +938,7 @@ "label": "AttackDiscoveryCreateProps", "description": [], "signature": [ - "{ status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; id?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }" + "{ status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; id?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/common_attributes.gen.ts", "deprecated": false, @@ -983,7 +983,7 @@ "label": "AttackDiscoveryGetResponse", "description": [], "signature": [ - "{ stats: { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }[]; data?: { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; } | undefined; }" + "{ stats: { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }[]; data?: { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; } | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/get_attack_discovery_route.gen.ts", "deprecated": false, @@ -998,7 +998,7 @@ "label": "AttackDiscoveryPostRequestBody", "description": [], "signature": [ - "{ size: number; subAction: \"invokeAI\" | \"invokeStream\"; alertsIndexPattern: string; anonymizationFields: { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; model?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }" + "{ size: number; subAction: \"invokeAI\" | \"invokeStream\"; alertsIndexPattern: string; anonymizationFields: { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; model?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/post_attack_discovery_route.gen.ts", "deprecated": false, @@ -1013,7 +1013,7 @@ "label": "AttackDiscoveryPostRequestBodyInput", "description": [], "signature": [ - "{ size: number; subAction: \"invokeAI\" | \"invokeStream\"; alertsIndexPattern: string; anonymizationFields: { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; model?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }" + "{ size: number; subAction: \"invokeAI\" | \"invokeStream\"; alertsIndexPattern: string; anonymizationFields: { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; model?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/post_attack_discovery_route.gen.ts", "deprecated": false, @@ -1028,7 +1028,7 @@ "label": "AttackDiscoveryPostResponse", "description": [], "signature": [ - "{ id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }" + "{ id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/post_attack_discovery_route.gen.ts", "deprecated": false, @@ -1043,7 +1043,7 @@ "label": "AttackDiscoveryResponse", "description": [], "signature": [ - "{ id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }" + "{ id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/common_attributes.gen.ts", "deprecated": false, @@ -1124,7 +1124,7 @@ "label": "AttackDiscoveryUpdateProps", "description": [], "signature": [ - "{ id: string; backingIndex: string; status?: \"running\" | \"succeeded\" | \"failed\" | \"canceled\" | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; lastViewedAt?: string | undefined; alertsContextCount?: number | undefined; attackDiscoveries?: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[] | undefined; generationIntervals?: { date: string; durationMs: number; }[] | undefined; }" + "{ id: string; backingIndex: string; status?: \"running\" | \"succeeded\" | \"failed\" | \"canceled\" | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; lastViewedAt?: string | undefined; alertsContextCount?: number | undefined; attackDiscoveries?: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[] | undefined; generationIntervals?: { date: string; durationMs: number; }[] | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/common_attributes.gen.ts", "deprecated": false, @@ -1402,7 +1402,7 @@ "label": "ConversationCreateProps", "description": [], "signature": [ - "{ title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -1447,7 +1447,7 @@ "label": "ConversationResponse", "description": [], "signature": [ - "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -1492,7 +1492,7 @@ "label": "ConversationsBulkCrudActionResponse", "description": [], "signature": [ - "{ attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }" + "{ attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -1507,7 +1507,7 @@ "label": "ConversationsBulkCrudActionResults", "description": [], "signature": [ - "{ created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }" + "{ created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -1522,7 +1522,7 @@ "label": "ConversationSummary", "description": [], "signature": [ - "{ timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }" + "{ timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -1537,7 +1537,7 @@ "label": "ConversationUpdateProps", "description": [], "signature": [ - "{ id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -1552,7 +1552,7 @@ "label": "CreateConversationRequestBody", "description": [], "signature": [ - "{ title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -1567,7 +1567,7 @@ "label": "CreateConversationRequestBodyInput", "description": [], "signature": [ - "{ title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -1582,7 +1582,7 @@ "label": "CreateConversationResponse", "description": [], "signature": [ - "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -1717,7 +1717,7 @@ "label": "DeleteConversationResponse", "description": [], "signature": [ - "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -2362,7 +2362,7 @@ "label": "FindConversationsResponse", "description": [], "signature": [ - "{ page: number; perPage: number; total: number; data: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; }" + "{ page: number; perPage: number; total: number; data: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/find_conversations_route.gen.ts", "deprecated": false, @@ -3051,7 +3051,7 @@ "label": "PerformBulkActionRequestBody", "description": [], "signature": [ - "{ create?: { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; update?: { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; delete?: { ids?: string[] | undefined; query?: string | undefined; } | undefined; }" + "{ create?: { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; update?: { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; delete?: { ids?: string[] | undefined; query?: string | undefined; } | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -3066,7 +3066,7 @@ "label": "PerformBulkActionRequestBodyInput", "description": [], "signature": [ - "{ create?: { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; update?: { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; delete?: { ids?: string[] | undefined; query?: string | undefined; } | undefined; }" + "{ create?: { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; update?: { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; delete?: { ids?: string[] | undefined; query?: string | undefined; } | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -3081,7 +3081,7 @@ "label": "PerformBulkActionResponse", "description": [], "signature": [ - "{ attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }" + "{ attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -3308,7 +3308,7 @@ "label": "ReadConversationResponse", "description": [], "signature": [ - "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -3537,7 +3537,7 @@ "label": "UpdateConversationRequestBody", "description": [], "signature": [ - "{ id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -3552,7 +3552,7 @@ "label": "UpdateConversationRequestBodyInput", "description": [], "signature": [ - "{ id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -3597,7 +3597,7 @@ "label": "UpdateConversationResponse", "description": [], "signature": [ - "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" + "{ id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -3755,7 +3755,7 @@ "label": "ApiConfig", "description": [], "signature": [ - "Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>" + "Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -3800,7 +3800,7 @@ "label": "AppendConversationMessageResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/append_message.gen.ts", "deprecated": false, @@ -3860,7 +3860,7 @@ "label": "AttackDiscoveryCancelResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodString; lastViewedAt: Zod.ZodString; alertsContextCount: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>; namespace: Zod.ZodString; backingIndex: Zod.ZodString; generationIntervals: Zod.ZodArray, \"many\">; averageIntervalMs: Zod.ZodNumber; failureReason: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodString; lastViewedAt: Zod.ZodString; alertsContextCount: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>; namespace: Zod.ZodString; backingIndex: Zod.ZodString; generationIntervals: Zod.ZodArray, \"many\">; averageIntervalMs: Zod.ZodNumber; failureReason: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/cancel_attack_discovery_route.gen.ts", "deprecated": false, @@ -3875,7 +3875,7 @@ "label": "AttackDiscoveryCreateProps", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodOptional; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; alertsContextCount: Zod.ZodOptional; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; id?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; id?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodOptional; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; alertsContextCount: Zod.ZodOptional; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; id?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; id?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/common_attributes.gen.ts", "deprecated": false, @@ -3905,7 +3905,7 @@ "label": "AttackDiscoveryGetResponse", "description": [], "signature": [ - "Zod.ZodObject<{ data: Zod.ZodOptional; updatedAt: Zod.ZodString; lastViewedAt: Zod.ZodString; alertsContextCount: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>; namespace: Zod.ZodString; backingIndex: Zod.ZodString; generationIntervals: Zod.ZodArray, \"many\">; averageIntervalMs: Zod.ZodNumber; failureReason: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>>; stats: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }, { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { stats: { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }[]; data?: { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; } | undefined; }, { stats: { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }[]; data?: { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; } | undefined; }>" + "Zod.ZodObject<{ data: Zod.ZodOptional; updatedAt: Zod.ZodString; lastViewedAt: Zod.ZodString; alertsContextCount: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>; namespace: Zod.ZodString; backingIndex: Zod.ZodString; generationIntervals: Zod.ZodArray, \"many\">; averageIntervalMs: Zod.ZodNumber; failureReason: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>>; stats: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }, { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { stats: { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }[]; data?: { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; } | undefined; }, { stats: { connectorId: string; count: number; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; hasViewed: boolean; }[]; data?: { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; } | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/get_attack_discovery_route.gen.ts", "deprecated": false, @@ -3920,7 +3920,7 @@ "label": "AttackDiscoveryPostRequestBody", "description": [], "signature": [ - "Zod.ZodObject<{ alertsIndexPattern: Zod.ZodString; anonymizationFields: Zod.ZodArray; field: Zod.ZodString; allowed: Zod.ZodOptional; anonymized: Zod.ZodOptional; updatedAt: Zod.ZodOptional; updatedBy: Zod.ZodOptional; createdAt: Zod.ZodOptional; createdBy: Zod.ZodOptional; namespace: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }, { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>; langSmithProject: Zod.ZodOptional; langSmithApiKey: Zod.ZodOptional; model: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; size: Zod.ZodNumber; subAction: Zod.ZodEnum<[\"invokeAI\", \"invokeStream\"]>; }, \"strip\", Zod.ZodTypeAny, { size: number; subAction: \"invokeAI\" | \"invokeStream\"; alertsIndexPattern: string; anonymizationFields: { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; model?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }, { size: number; subAction: \"invokeAI\" | \"invokeStream\"; alertsIndexPattern: string; anonymizationFields: { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; model?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }>" + "Zod.ZodObject<{ alertsIndexPattern: Zod.ZodString; anonymizationFields: Zod.ZodArray; field: Zod.ZodString; allowed: Zod.ZodOptional; anonymized: Zod.ZodOptional; updatedAt: Zod.ZodOptional; updatedBy: Zod.ZodOptional; createdAt: Zod.ZodOptional; createdBy: Zod.ZodOptional; namespace: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }, { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>; langSmithProject: Zod.ZodOptional; langSmithApiKey: Zod.ZodOptional; model: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; size: Zod.ZodNumber; subAction: Zod.ZodEnum<[\"invokeAI\", \"invokeStream\"]>; }, \"strip\", Zod.ZodTypeAny, { size: number; subAction: \"invokeAI\" | \"invokeStream\"; alertsIndexPattern: string; anonymizationFields: { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; model?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }, { size: number; subAction: \"invokeAI\" | \"invokeStream\"; alertsIndexPattern: string; anonymizationFields: { id: string; field: string; namespace?: string | undefined; timestamp?: string | undefined; createdBy?: string | undefined; updatedBy?: string | undefined; createdAt?: string | undefined; updatedAt?: string | undefined; allowed?: boolean | undefined; anonymized?: boolean | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; model?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; langSmithProject?: string | undefined; langSmithApiKey?: string | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/post_attack_discovery_route.gen.ts", "deprecated": false, @@ -3935,7 +3935,7 @@ "label": "AttackDiscoveryPostResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodString; lastViewedAt: Zod.ZodString; alertsContextCount: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>; namespace: Zod.ZodString; backingIndex: Zod.ZodString; generationIntervals: Zod.ZodArray, \"many\">; averageIntervalMs: Zod.ZodNumber; failureReason: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodString; lastViewedAt: Zod.ZodString; alertsContextCount: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>; namespace: Zod.ZodString; backingIndex: Zod.ZodString; generationIntervals: Zod.ZodArray, \"many\">; averageIntervalMs: Zod.ZodNumber; failureReason: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/post_attack_discovery_route.gen.ts", "deprecated": false, @@ -3950,7 +3950,7 @@ "label": "AttackDiscoveryResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodString; lastViewedAt: Zod.ZodString; alertsContextCount: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>; namespace: Zod.ZodString; backingIndex: Zod.ZodString; generationIntervals: Zod.ZodArray, \"many\">; averageIntervalMs: Zod.ZodNumber; failureReason: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodString; lastViewedAt: Zod.ZodString; alertsContextCount: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; status: Zod.ZodEnum<[\"running\", \"succeeded\", \"failed\", \"canceled\"]>; attackDiscoveries: Zod.ZodArray; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">; apiConfig: Zod.ZodObject<{ connectorId: Zod.ZodString; actionTypeId: Zod.ZodString; defaultSystemPromptId: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>; namespace: Zod.ZodString; backingIndex: Zod.ZodString; generationIntervals: Zod.ZodArray, \"many\">; averageIntervalMs: Zod.ZodNumber; failureReason: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }, { id: string; namespace: string; createdAt: string; updatedAt: string; status: \"running\" | \"succeeded\" | \"failed\" | \"canceled\"; users: { id?: string | undefined; name?: string | undefined; }[]; apiConfig: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }; lastViewedAt: string; attackDiscoveries: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[]; backingIndex: string; generationIntervals: { date: string; durationMs: number; }[]; averageIntervalMs: number; timestamp?: string | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; alertsContextCount?: number | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/common_attributes.gen.ts", "deprecated": false, @@ -4025,7 +4025,7 @@ "label": "AttackDiscoveryUpdateProps", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; alertsContextCount: Zod.ZodOptional; attackDiscoveries: Zod.ZodOptional; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">>; status: Zod.ZodOptional>; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; generationIntervals: Zod.ZodOptional, \"many\">>; backingIndex: Zod.ZodString; failureReason: Zod.ZodOptional; lastViewedAt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; backingIndex: string; status?: \"running\" | \"succeeded\" | \"failed\" | \"canceled\" | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; lastViewedAt?: string | undefined; alertsContextCount?: number | undefined; attackDiscoveries?: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[] | undefined; generationIntervals?: { date: string; durationMs: number; }[] | undefined; }, { id: string; backingIndex: string; status?: \"running\" | \"succeeded\" | \"failed\" | \"canceled\" | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; lastViewedAt?: string | undefined; alertsContextCount?: number | undefined; attackDiscoveries?: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[] | undefined; generationIntervals?: { date: string; durationMs: number; }[] | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; alertsContextCount: Zod.ZodOptional; attackDiscoveries: Zod.ZodOptional; id: Zod.ZodOptional; detailsMarkdown: Zod.ZodString; entitySummaryMarkdown: Zod.ZodString; mitreAttackTactics: Zod.ZodOptional>; summaryMarkdown: Zod.ZodString; title: Zod.ZodString; timestamp: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }, { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }>, \"many\">>; status: Zod.ZodOptional>; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; generationIntervals: Zod.ZodOptional, \"many\">>; backingIndex: Zod.ZodString; failureReason: Zod.ZodOptional; lastViewedAt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; backingIndex: string; status?: \"running\" | \"succeeded\" | \"failed\" | \"canceled\" | undefined; failureReason?: string | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; lastViewedAt?: string | undefined; alertsContextCount?: number | undefined; attackDiscoveries?: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[] | undefined; generationIntervals?: { date: string; durationMs: number; }[] | undefined; }, { id: string; backingIndex: string; status?: \"running\" | \"succeeded\" | \"failed\" | \"canceled\" | undefined; failureReason?: string | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; lastViewedAt?: string | undefined; alertsContextCount?: number | undefined; attackDiscoveries?: { timestamp: string; title: string; alertIds: string[]; detailsMarkdown: string; entitySummaryMarkdown: string; summaryMarkdown: string; id?: string | undefined; mitreAttackTactics?: string[] | undefined; }[] | undefined; generationIntervals?: { date: string; durationMs: number; }[] | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/attack_discovery/common_attributes.gen.ts", "deprecated": false, @@ -4280,7 +4280,7 @@ "label": "ConversationCreateProps", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodOptional; title: Zod.ZodString; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodOptional; title: Zod.ZodString; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -4325,7 +4325,7 @@ "label": "ConversationResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -4370,7 +4370,7 @@ "label": "ConversationsBulkCrudActionResponse", "description": [], "signature": [ - "Zod.ZodObject<{ success: Zod.ZodOptional; status_code: Zod.ZodOptional; message: Zod.ZodOptional; conversations_count: Zod.ZodOptional; attributes: Zod.ZodObject<{ results: Zod.ZodObject<{ updated: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; created: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; deleted: Zod.ZodArray; skipped: Zod.ZodArray; skip_reason: Zod.ZodLiteral<\"CONVERSATION_NOT_MODIFIED\">; }, \"strip\", Zod.ZodTypeAny, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }>; summary: Zod.ZodObject<{ failed: Zod.ZodNumber; skipped: Zod.ZodNumber; succeeded: Zod.ZodNumber; total: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { total: number; succeeded: number; failed: number; skipped: number; }, { total: number; succeeded: number; failed: number; skipped: number; }>; errors: Zod.ZodOptional; conversations: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { id: string; name?: string | undefined; }, { id: string; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }, { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }>, \"many\">>; }, \"strip\", Zod.ZodTypeAny, { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }, { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }, { attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }>" + "Zod.ZodObject<{ success: Zod.ZodOptional; status_code: Zod.ZodOptional; message: Zod.ZodOptional; conversations_count: Zod.ZodOptional; attributes: Zod.ZodObject<{ results: Zod.ZodObject<{ updated: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; created: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; deleted: Zod.ZodArray; skipped: Zod.ZodArray; skip_reason: Zod.ZodLiteral<\"CONVERSATION_NOT_MODIFIED\">; }, \"strip\", Zod.ZodTypeAny, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }>; summary: Zod.ZodObject<{ failed: Zod.ZodNumber; skipped: Zod.ZodNumber; succeeded: Zod.ZodNumber; total: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { total: number; succeeded: number; failed: number; skipped: number; }, { total: number; succeeded: number; failed: number; skipped: number; }>; errors: Zod.ZodOptional; conversations: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { id: string; name?: string | undefined; }, { id: string; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }, { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }>, \"many\">>; }, \"strip\", Zod.ZodTypeAny, { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }, { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }, { attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -4385,7 +4385,7 @@ "label": "ConversationsBulkCrudActionResults", "description": [], "signature": [ - "Zod.ZodObject<{ updated: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; created: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; deleted: Zod.ZodArray; skipped: Zod.ZodArray; skip_reason: Zod.ZodLiteral<\"CONVERSATION_NOT_MODIFIED\">; }, \"strip\", Zod.ZodTypeAny, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }>" + "Zod.ZodObject<{ updated: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; created: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; deleted: Zod.ZodArray; skipped: Zod.ZodArray; skip_reason: Zod.ZodLiteral<\"CONVERSATION_NOT_MODIFIED\">; }, \"strip\", Zod.ZodTypeAny, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -4400,7 +4400,7 @@ "label": "ConversationSummary", "description": [], "signature": [ - "Zod.ZodObject<{ content: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>" + "Zod.ZodObject<{ content: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -4415,7 +4415,7 @@ "label": "ConversationUpdateProps", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodOptional; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodOptional; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/common_attributes.gen.ts", "deprecated": false, @@ -4430,7 +4430,7 @@ "label": "CreateConversationRequestBody", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodOptional; title: Zod.ZodString; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodOptional; title: Zod.ZodString; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -4445,7 +4445,7 @@ "label": "CreateConversationResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -4552,7 +4552,7 @@ "label": "DeleteConversationResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -4807,7 +4807,7 @@ "label": "FindConversationsResponse", "description": [], "signature": [ - "Zod.ZodObject<{ page: Zod.ZodNumber; perPage: Zod.ZodNumber; total: Zod.ZodNumber; data: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { page: number; perPage: number; total: number; data: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; }, { page: number; perPage: number; total: number; data: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; }>" + "Zod.ZodObject<{ page: Zod.ZodNumber; perPage: Zod.ZodNumber; total: Zod.ZodNumber; data: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { page: number; perPage: number; total: number; data: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; }, { page: number; perPage: number; total: number; data: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/find_conversations_route.gen.ts", "deprecated": false, @@ -5437,7 +5437,7 @@ "label": "PerformBulkActionRequestBody", "description": [], "signature": [ - "Zod.ZodObject<{ delete: Zod.ZodOptional; ids: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { ids?: string[] | undefined; query?: string | undefined; }, { ids?: string[] | undefined; query?: string | undefined; }>>; create: Zod.ZodOptional; title: Zod.ZodString; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">>; update: Zod.ZodOptional; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">>; }, \"strip\", Zod.ZodTypeAny, { create?: { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; update?: { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; delete?: { ids?: string[] | undefined; query?: string | undefined; } | undefined; }, { create?: { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; update?: { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; delete?: { ids?: string[] | undefined; query?: string | undefined; } | undefined; }>" + "Zod.ZodObject<{ delete: Zod.ZodOptional; ids: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { ids?: string[] | undefined; query?: string | undefined; }, { ids?: string[] | undefined; query?: string | undefined; }>>; create: Zod.ZodOptional; title: Zod.ZodString; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">>; update: Zod.ZodOptional; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">>; }, \"strip\", Zod.ZodTypeAny, { create?: { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; update?: { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; delete?: { ids?: string[] | undefined; query?: string | undefined; } | undefined; }, { create?: { title: string; id?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; update?: { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[] | undefined; delete?: { ids?: string[] | undefined; query?: string | undefined; } | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -5452,7 +5452,7 @@ "label": "PerformBulkActionResponse", "description": [], "signature": [ - "Zod.ZodObject<{ success: Zod.ZodOptional; status_code: Zod.ZodOptional; message: Zod.ZodOptional; conversations_count: Zod.ZodOptional; attributes: Zod.ZodObject<{ results: Zod.ZodObject<{ updated: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; created: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; deleted: Zod.ZodArray; skipped: Zod.ZodArray; skip_reason: Zod.ZodLiteral<\"CONVERSATION_NOT_MODIFIED\">; }, \"strip\", Zod.ZodTypeAny, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }>; summary: Zod.ZodObject<{ failed: Zod.ZodNumber; skipped: Zod.ZodNumber; succeeded: Zod.ZodNumber; total: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { total: number; succeeded: number; failed: number; skipped: number; }, { total: number; succeeded: number; failed: number; skipped: number; }>; errors: Zod.ZodOptional; conversations: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { id: string; name?: string | undefined; }, { id: string; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }, { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }>, \"many\">>; }, \"strip\", Zod.ZodTypeAny, { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }, { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }, { attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }>" + "Zod.ZodObject<{ success: Zod.ZodOptional; status_code: Zod.ZodOptional; message: Zod.ZodOptional; conversations_count: Zod.ZodOptional; attributes: Zod.ZodObject<{ results: Zod.ZodObject<{ updated: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; created: Zod.ZodArray; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>, \"many\">; deleted: Zod.ZodArray; skipped: Zod.ZodArray; skip_reason: Zod.ZodLiteral<\"CONVERSATION_NOT_MODIFIED\">; }, \"strip\", Zod.ZodTypeAny, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }, { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }, { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }>; summary: Zod.ZodObject<{ failed: Zod.ZodNumber; skipped: Zod.ZodNumber; succeeded: Zod.ZodNumber; total: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { total: number; succeeded: number; failed: number; skipped: number; }, { total: number; succeeded: number; failed: number; skipped: number; }>; errors: Zod.ZodOptional; conversations: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { id: string; name?: string | undefined; }, { id: string; name?: string | undefined; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }, { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }>, \"many\">>; }, \"strip\", Zod.ZodTypeAny, { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }, { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }, { attributes: { results: { created: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; updated: { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }[]; skipped: { id: string; skip_reason: \"CONVERSATION_NOT_MODIFIED\"; name?: string | undefined; }[]; deleted: string[]; }; summary: { total: number; succeeded: number; failed: number; skipped: number; }; errors?: { message: string; status_code: number; conversations: { id: string; name?: string | undefined; }[]; err_code?: string | undefined; }[] | undefined; }; message?: string | undefined; success?: boolean | undefined; status_code?: number | undefined; conversations_count?: number | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/bulk_crud_conversations_route.gen.ts", "deprecated": false, @@ -5617,7 +5617,7 @@ "label": "ReadConversationResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -5812,7 +5812,7 @@ "label": "UpdateConversationRequestBody", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodOptional; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodOptional; category: Zod.ZodOptional>; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; excludeFromLastConversationStorage: Zod.ZodOptional; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; }, \"strip\", Zod.ZodTypeAny, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; title?: string | undefined; category?: \"assistant\" | \"insights\" | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, @@ -5842,7 +5842,7 @@ "label": "UpdateConversationResponse", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }, { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; public?: boolean | undefined; content?: string | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; model?: string | undefined; defaultSystemPromptId?: string | undefined; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; category: Zod.ZodEnum<[\"assistant\", \"insights\"]>; summary: Zod.ZodOptional; timestamp: Zod.ZodOptional; public: Zod.ZodOptional; confidence: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }, { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; }>>; timestamp: Zod.ZodOptional; updatedAt: Zod.ZodOptional; createdAt: Zod.ZodString; replacements: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodString, \"strip\">>>; users: Zod.ZodArray; name: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id?: string | undefined; name?: string | undefined; }, { id?: string | undefined; name?: string | undefined; }>, \"many\">; messages: Zod.ZodOptional, Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\">>>; role: Zod.ZodEnum<[\"system\", \"user\", \"assistant\"]>; timestamp: Zod.ZodString; isError: Zod.ZodOptional; traceData: Zod.ZodOptional; traceId: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { transactionId?: string | undefined; traceId?: string | undefined; }, { transactionId?: string | undefined; traceId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }, { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }>, \"many\">>; apiConfig: Zod.ZodOptional; provider: Zod.ZodOptional>; model: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }, { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; }>>; isDefault: Zod.ZodOptional; excludeFromLastConversationStorage: Zod.ZodOptional; namespace: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectOutputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }, { id: string; namespace: string; title: string; createdAt: string; category: \"assistant\" | \"insights\"; users: { id?: string | undefined; name?: string | undefined; }[]; timestamp?: string | undefined; updatedAt?: string | undefined; summary?: { timestamp?: string | undefined; content?: string | undefined; public?: boolean | undefined; confidence?: \"medium\" | \"high\" | \"low\" | undefined; } | undefined; replacements?: Zod.objectInputType<{}, Zod.ZodString, \"strip\"> | undefined; apiConfig?: { connectorId: string; actionTypeId: string; provider?: \"OpenAI\" | \"Azure OpenAI\" | undefined; model?: string | undefined; defaultSystemPromptId?: string | undefined; } | undefined; messages?: { timestamp: string; role: \"user\" | \"system\" | \"assistant\"; content: string; isError?: boolean | undefined; reader?: Zod.objectInputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; traceData?: { transactionId?: string | undefined; traceId?: string | undefined; } | undefined; }[] | undefined; isDefault?: boolean | undefined; excludeFromLastConversationStorage?: boolean | undefined; }>" ], "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/conversations/crud_conversation_route.gen.ts", "deprecated": false, diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx index 77eb398b16666..1b8d8f913afab 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common'] --- import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json'; diff --git a/api_docs/kbn_entities_schema.devdocs.json b/api_docs/kbn_entities_schema.devdocs.json index b2c78ca62988d..7ab3229f21731 100644 --- a/api_docs/kbn_entities_schema.devdocs.json +++ b/api_docs/kbn_entities_schema.devdocs.json @@ -247,7 +247,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }" + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/entity_definition.ts", "deprecated": false, @@ -270,13 +270,28 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }" + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/entity_definition.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.GetEntityDefinitionQuerySchema", + "type": "Type", + "tags": [], + "label": "GetEntityDefinitionQuerySchema", + "description": [], + "signature": [ + "{ includeState: boolean; page?: number | undefined; perPage?: number | undefined; }" + ], + "path": "x-pack/packages/kbn-entities-schema/src/rest_spec/get.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/entities-schema", "id": "def-common.KeyMetric", @@ -300,6 +315,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.MetadataField", + "type": "Type", + "tags": [], + "label": "MetadataField", + "description": [], + "signature": [ + "{ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/common.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/entities-schema", "id": "def-common.Metric", @@ -500,7 +530,7 @@ "label": "entityDefinitionSchema", "description": [], "signature": [ - "Zod.ZodObject<{ id: Zod.ZodString; version: Zod.ZodEffects; name: Zod.ZodString; description: Zod.ZodOptional; type: Zod.ZodString; filter: Zod.ZodOptional; indexPatterns: Zod.ZodArray; identityFields: Zod.ZodArray, Zod.ZodEffects]>, \"many\">; displayNameTemplate: Zod.ZodString; metadata: Zod.ZodOptional; limit: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { source: string; destination?: string | undefined; limit?: number | undefined; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, { destination: string; limit: number; source: string; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, Zod.ZodEffects]>, { destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; }, string | { source: string; destination?: string | undefined; limit?: number | undefined; }>, \"many\">>; metrics: Zod.ZodOptional; name: Zod.ZodString; description: Zod.ZodOptional; type: Zod.ZodString; filter: Zod.ZodOptional; indexPatterns: Zod.ZodArray; identityFields: Zod.ZodArray, Zod.ZodEffects]>, \"many\">; displayNameTemplate: Zod.ZodString; metadata: Zod.ZodOptional; aggregation: Zod.ZodDefault; limit: Zod.ZodDefault; }, \"strip\", Zod.ZodTypeAny, { type: \"terms\"; limit: number; }, { type: \"terms\"; limit?: number | undefined; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"top_value\">; sort: Zod.ZodRecord, Zod.ZodLiteral<\"desc\">]>>; lookbackPeriod: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }>]>>>; }, \"strip\", Zod.ZodTypeAny, { source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; destination?: string | undefined; }, { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, Zod.ZodEffects]>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, \"many\">>; metrics: Zod.ZodOptional, \"many\">>; staticFields: Zod.ZodOptional>; managed: Zod.ZodDefault>; history: Zod.ZodObject<{ timestampField: Zod.ZodString; interval: Zod.ZodEffects; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }>>; installStatus: Zod.ZodOptional, Zod.ZodLiteral<\"upgrading\">, Zod.ZodLiteral<\"installed\">, Zod.ZodLiteral<\"failed\">]>>; installStartedAt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }>, \"many\">>; staticFields: Zod.ZodOptional>; managed: Zod.ZodDefault>; history: Zod.ZodObject<{ timestampField: Zod.ZodString; interval: Zod.ZodEffects; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }>>; installStatus: Zod.ZodOptional, Zod.ZodLiteral<\"upgrading\">, Zod.ZodLiteral<\"installed\">, Zod.ZodLiteral<\"failed\">]>>; installStartedAt: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { id: string; type: string; version: string; name: string; history: { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }; managed: boolean; indexPatterns: string[]; identityFields: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -548,7 +578,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }, { id: string; type: string; version: string; name: string; history: { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }; indexPatterns: string[]; identityFields: (string | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; metadata?: ({ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }, { id: string; type: string; version: string; name: string; history: { interval: string; timestampField: string; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }; indexPatterns: string[]; identityFields: (string | { field: string; optional: boolean; })[]; displayNameTemplate: string; filter?: string | undefined; description?: string | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -556,7 +586,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; managed?: boolean | undefined; metadata?: (string | { source: string; destination?: string | undefined; limit?: number | undefined; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }>" + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; managed?: boolean | undefined; metadata?: (string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; })[] | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; installStatus?: \"failed\" | \"installing\" | \"upgrading\" | \"installed\" | undefined; installStartedAt?: string | undefined; }>" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/entity_definition.ts", "deprecated": false, @@ -571,7 +601,7 @@ "label": "entityDefinitionUpdateSchema", "description": [], "signature": [ - "Zod.ZodObject; filter: Zod.ZodOptional>; version: Zod.ZodOptional>; name: Zod.ZodOptional; description: Zod.ZodOptional>; history: Zod.ZodOptional; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>>; metrics: Zod.ZodOptional; filter: Zod.ZodOptional>; version: Zod.ZodOptional>; name: Zod.ZodOptional; description: Zod.ZodOptional>; history: Zod.ZodOptional; settings: Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>; }, \"strip\", Zod.ZodTypeAny, { interval: string; settings: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }; timestampField: string; }, { interval: string; timestampField: string; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; }>>; metrics: Zod.ZodOptional, \"many\">>>; indexPatterns: Zod.ZodOptional>; metadata: Zod.ZodOptional; limit: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { source: string; destination?: string | undefined; limit?: number | undefined; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, { destination: string; limit: number; source: string; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, Zod.ZodEffects]>, { destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; }, string | { source: string; destination?: string | undefined; limit?: number | undefined; }>, \"many\">>>; identityFields: Zod.ZodOptional, Zod.ZodEffects]>, \"many\">>; displayNameTemplate: Zod.ZodOptional; staticFields: Zod.ZodOptional>>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }>>>; }, { history: Zod.ZodOptional; interval: Zod.ZodOptional>; settings: Zod.ZodOptional; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>>; }, \"strip\", Zod.ZodTypeAny, { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; }, { interval?: string | undefined; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; }>>; version: Zod.ZodEffects; }>, \"strip\", Zod.ZodTypeAny, { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }>, \"many\">>>; indexPatterns: Zod.ZodOptional>; metadata: Zod.ZodOptional; aggregation: Zod.ZodDefault; limit: Zod.ZodDefault; }, \"strip\", Zod.ZodTypeAny, { type: \"terms\"; limit: number; }, { type: \"terms\"; limit?: number | undefined; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"top_value\">; sort: Zod.ZodRecord, Zod.ZodLiteral<\"desc\">]>>; lookbackPeriod: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }>]>>>; }, \"strip\", Zod.ZodTypeAny, { source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; destination?: string | undefined; }, { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, Zod.ZodEffects]>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, \"many\">>>; identityFields: Zod.ZodOptional, Zod.ZodEffects]>, \"many\">>; displayNameTemplate: Zod.ZodOptional; staticFields: Zod.ZodOptional>>; latest: Zod.ZodOptional; syncDelay: Zod.ZodOptional; frequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }, { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; }>>>; }, { history: Zod.ZodOptional; interval: Zod.ZodOptional>; settings: Zod.ZodOptional; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>>; }, \"strip\", Zod.ZodTypeAny, { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; }, { interval?: string | undefined; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; }>>; version: Zod.ZodEffects; }>, \"strip\", Zod.ZodTypeAny, { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -619,7 +649,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }, { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: ({ destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; })[] | undefined; identityFields?: ({ field: string; optional: boolean; } | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }, { version: string; type?: string | undefined; filter?: string | undefined; name?: string | undefined; description?: string | undefined; history?: { interval?: string | undefined; settings?: { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined; timestampField?: string | undefined; } | undefined; metrics?: { name: string; metrics: ({ name: string; field: string; aggregation: ", { "pluginId": "@kbn/entities-schema", "scope": "common", @@ -627,7 +657,7 @@ "section": "def-common.BasicAggregations", "text": "BasicAggregations" }, - "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: (string | { source: string; destination?: string | undefined; limit?: number | undefined; })[] | undefined; identityFields?: (string | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }>" + "; filter?: string | undefined; } | { name: string; aggregation: \"doc_count\"; filter?: string | undefined; } | { name: string; field: string; percentile: number; aggregation: \"percentile\"; filter?: string | undefined; })[]; equation: string; }[] | undefined; indexPatterns?: string[] | undefined; metadata?: (string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; })[] | undefined; identityFields?: (string | { field: string; optional: boolean; })[] | undefined; displayNameTemplate?: string | undefined; staticFields?: Record | undefined; latest?: { settings?: { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; } | undefined; } | undefined; }>" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/entity_definition.ts", "deprecated": false, @@ -702,7 +732,7 @@ "label": "getEntityDefinitionQuerySchema", "description": [], "signature": [ - "Zod.ZodObject<{ page: Zod.ZodOptional; perPage: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { page?: number | undefined; perPage?: number | undefined; }, { page?: number | undefined; perPage?: number | undefined; }>" + "Zod.ZodObject<{ page: Zod.ZodOptional; perPage: Zod.ZodOptional; includeState: Zod.ZodDefault, Zod.ZodBoolean]>, boolean, boolean | \"true\" | \"false\">>>; }, \"strip\", Zod.ZodTypeAny, { includeState: boolean; page?: number | undefined; perPage?: number | undefined; }, { page?: number | undefined; perPage?: number | undefined; includeState?: boolean | \"true\" | \"false\" | undefined; }>" ], "path": "x-pack/packages/kbn-entities-schema/src/rest_spec/get.ts", "deprecated": false, @@ -717,7 +747,7 @@ "label": "historySettingsSchema", "description": [], "signature": [ - "Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; lookbackPeriod?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>" + "Zod.ZodEffects; syncDelay: Zod.ZodOptional; lookbackPeriod: Zod.ZodDefault>; frequency: Zod.ZodOptional; backfillSyncDelay: Zod.ZodOptional; backfillLookbackPeriod: Zod.ZodOptional; backfillFrequency: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }>>, { lookbackPeriod: string; frequency?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; }, { frequency?: string | undefined; lookbackPeriod?: string | undefined; syncField?: string | undefined; syncDelay?: string | undefined; backfillSyncDelay?: string | undefined; backfillLookbackPeriod?: string | undefined; backfillFrequency?: string | undefined; } | undefined>" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/common.ts", "deprecated": false, @@ -794,6 +824,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/entities-schema", + "id": "def-common.metadataAggregation", + "type": "Object", + "tags": [], + "label": "metadataAggregation", + "description": [], + "signature": [ + "Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"terms\">; limit: Zod.ZodDefault; }, \"strip\", Zod.ZodTypeAny, { type: \"terms\"; limit: number; }, { type: \"terms\"; limit?: number | undefined; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"top_value\">; sort: Zod.ZodRecord, Zod.ZodLiteral<\"desc\">]>>; lookbackPeriod: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }>]>" + ], + "path": "x-pack/packages/kbn-entities-schema/src/schema/common.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/entities-schema", "id": "def-common.metadataSchema", @@ -802,7 +847,7 @@ "label": "metadataSchema", "description": [], "signature": [ - "Zod.ZodEffects; limit: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { source: string; destination?: string | undefined; limit?: number | undefined; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, { destination: string; limit: number; source: string; }, { source: string; destination?: string | undefined; limit?: number | undefined; }>, Zod.ZodEffects]>, { destination: string; limit: number; source: string; } | { source: string; destination: string; limit: number; }, string | { source: string; destination?: string | undefined; limit?: number | undefined; }>" + "Zod.ZodEffects; aggregation: Zod.ZodDefault; limit: Zod.ZodDefault; }, \"strip\", Zod.ZodTypeAny, { type: \"terms\"; limit: number; }, { type: \"terms\"; limit?: number | undefined; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"top_value\">; sort: Zod.ZodRecord, Zod.ZodLiteral<\"desc\">]>>; lookbackPeriod: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }, { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }>]>>>; }, \"strip\", Zod.ZodTypeAny, { source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; destination?: string | undefined; }, { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, Zod.ZodEffects]>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>, { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; }; } | { destination: string; source: string; aggregation: { type: \"terms\"; limit: number; }; }, string | { source: string; destination?: string | undefined; aggregation?: { type: \"terms\"; limit?: number | undefined; } | { type: \"top_value\"; sort: Record; lookbackPeriod?: string | undefined; } | undefined; }>" ], "path": "x-pack/packages/kbn-entities-schema/src/schema/common.ts", "deprecated": false, diff --git a/api_docs/kbn_entities_schema.mdx b/api_docs/kbn_entities_schema.mdx index 1d8fed15a2613..35421c0749a3b 100644 --- a/api_docs/kbn_entities_schema.mdx +++ b/api_docs/kbn_entities_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-entities-schema title: "@kbn/entities-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/entities-schema plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/entities-schema'] --- import kbnEntitiesSchemaObj from './kbn_entities_schema.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entiti | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 41 | 0 | 41 | 0 | +| 44 | 0 | 44 | 0 | ## Common diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index 3f317ea9addbf..e703e9b694d51 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.devdocs.json'; diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index 973dcdc341178..2108e48b5b031 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-09-11 +date: 2024-09-16 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 f5a84a34c94fc..3363b0668d89a 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-errors'] --- import kbnEsErrorsObj from './kbn_es_errors.devdocs.json'; diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 873a2efec19d0..31e15a6861754 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-09-11 +date: 2024-09-16 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 c2215ea792a13..a385619aa6bd5 100644 --- a/api_docs/kbn_es_types.devdocs.json +++ b/api_docs/kbn_es_types.devdocs.json @@ -640,7 +640,7 @@ "SearchHit", ", \"fields\" | \"_source\"> & (TSource extends false ? {} : { _source: TSource; }) & (TFields extends (string | ", "QueryDslFieldAndFormat", - ")[] ? { fields: Partial, unknown[]>>; } : {}) & (TDocValueFields extends DocValueFields ? { fields: Partial, unknown[]>>; } : {})" + ")[] ? { fields: Partial, unknown[]>>; } : { fields?: Record | undefined; }) & (TDocValueFields extends DocValueFields ? { fields: Partial, unknown[]>>; } : {})" ], "path": "packages/kbn-es-types/src/search.ts", "deprecated": false, diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 32b759b160104..37ab340f947f5 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.devdocs.json'; diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index ad71385cfad14..77819091456f9 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_esql_ast.mdx b/api_docs/kbn_esql_ast.mdx index d4c42e035aa65..da77090b5eba1 100644 --- a/api_docs/kbn_esql_ast.mdx +++ b/api_docs/kbn_esql_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-ast title: "@kbn/esql-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-ast plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-ast'] --- import kbnEsqlAstObj from './kbn_esql_ast.devdocs.json'; diff --git a/api_docs/kbn_esql_utils.devdocs.json b/api_docs/kbn_esql_utils.devdocs.json index d66c6fa269059..762121594a804 100644 --- a/api_docs/kbn_esql_utils.devdocs.json +++ b/api_docs/kbn_esql_utils.devdocs.json @@ -1441,10 +1441,10 @@ }, { "parentPluginId": "@kbn/esql-utils", - "id": "def-common.retieveMetadataColumns", + "id": "def-common.retrieveMetadataColumns", "type": "Function", "tags": [], - "label": "retieveMetadataColumns", + "label": "retrieveMetadataColumns", "description": [], "signature": [ "(esql: string) => string[]" @@ -1455,7 +1455,7 @@ "children": [ { "parentPluginId": "@kbn/esql-utils", - "id": "def-common.retieveMetadataColumns.$1", + "id": "def-common.retrieveMetadataColumns.$1", "type": "string", "tags": [], "label": "esql", diff --git a/api_docs/kbn_esql_utils.mdx b/api_docs/kbn_esql_utils.mdx index 9235e57ac58dc..3a12e57cf17f7 100644 --- a/api_docs/kbn_esql_utils.mdx +++ b/api_docs/kbn_esql_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-utils title: "@kbn/esql-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-utils plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-utils'] --- import kbnEsqlUtilsObj from './kbn_esql_utils.devdocs.json'; diff --git a/api_docs/kbn_esql_validation_autocomplete.devdocs.json b/api_docs/kbn_esql_validation_autocomplete.devdocs.json index 15ba63572e521..bee047bed7c0e 100644 --- a/api_docs/kbn_esql_validation_autocomplete.devdocs.json +++ b/api_docs/kbn_esql_validation_autocomplete.devdocs.json @@ -39,7 +39,7 @@ }, ", parameterDefinition: { name: string; type: ", "FunctionParameterType", - "; optional?: boolean | undefined; noNestingFunctions?: boolean | undefined; supportsWildcard?: boolean | undefined; constantOnly?: boolean | undefined; acceptedValues?: string[] | undefined; literalSuggestions?: string[] | undefined; }, references: ", + "; optional?: boolean | undefined; supportsWildcard?: boolean | undefined; constantOnly?: boolean | undefined; acceptedValues?: string[] | undefined; literalSuggestions?: string[] | undefined; }, references: ", "ReferenceMaps", ", parentCommand: string | undefined) => boolean | undefined" ], @@ -78,7 +78,7 @@ "signature": [ "{ name: string; type: ", "FunctionParameterType", - "; optional?: boolean | undefined; noNestingFunctions?: boolean | undefined; supportsWildcard?: boolean | undefined; constantOnly?: boolean | undefined; acceptedValues?: string[] | undefined; literalSuggestions?: string[] | undefined; }" + "; optional?: boolean | undefined; supportsWildcard?: boolean | undefined; constantOnly?: boolean | undefined; acceptedValues?: string[] | undefined; literalSuggestions?: string[] | undefined; }" ], "path": "packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts", "deprecated": false, @@ -3401,7 +3401,7 @@ "signature": [ "{ params: { name: string; type: ", "FunctionParameterType", - "; optional?: boolean | undefined; noNestingFunctions?: boolean | undefined; supportsWildcard?: boolean | undefined; constantOnly?: boolean | undefined; acceptedValues?: string[] | undefined; literalSuggestions?: string[] | undefined; }[]; minParams?: number | undefined; returnType: ", + "; optional?: boolean | undefined; supportsWildcard?: boolean | undefined; constantOnly?: boolean | undefined; acceptedValues?: string[] | undefined; literalSuggestions?: string[] | undefined; }[]; minParams?: number | undefined; returnType: ", "FunctionReturnType", "; }[]" ], diff --git a/api_docs/kbn_esql_validation_autocomplete.mdx b/api_docs/kbn_esql_validation_autocomplete.mdx index 53b8ab6a3832c..a48b6490d981a 100644 --- a/api_docs/kbn_esql_validation_autocomplete.mdx +++ b/api_docs/kbn_esql_validation_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-esql-validation-autocomplete title: "@kbn/esql-validation-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/esql-validation-autocomplete plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/esql-validation-autocomplete'] --- import kbnEsqlValidationAutocompleteObj from './kbn_esql_validation_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index 7663b09dc4c92..77353cf843f43 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_event_annotation_components.devdocs.json index 840ff9690d6ef..aa0a62e976a09 100644 --- a/api_docs/kbn_event_annotation_components.devdocs.json +++ b/api_docs/kbn_event_annotation_components.devdocs.json @@ -722,7 +722,7 @@ "section": "def-common.EventAnnotationGroupConfig", "text": "EventAnnotationGroupConfig" }, - ", \"ignoreGlobalFilters\" | \"annotations\" | \"indexPatternId\">[]; }) => ", + ", \"annotations\" | \"ignoreGlobalFilters\" | \"indexPatternId\">[]; }) => ", { "pluginId": "expressions", "scope": "common", @@ -774,7 +774,7 @@ "section": "def-common.EventAnnotationGroupConfig", "text": "EventAnnotationGroupConfig" }, - ", \"ignoreGlobalFilters\" | \"annotations\" | \"indexPatternId\">[]" + ", \"annotations\" | \"ignoreGlobalFilters\" | \"indexPatternId\">[]" ], "path": "packages/kbn-event-annotation-components/types.ts", "deprecated": false, diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index d0b12e11ee223..2eac9dde1a696 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-components'] --- import kbnEventAnnotationComponentsObj from './kbn_event_annotation_components.devdocs.json'; diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index e43a65dfc0e54..d9cfbb36b0817 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index 9f1e371419bb6..4a227628e34ca 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-09-11 +date: 2024-09-16 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 9d37e58b67e9a..2dd8c3122dcff 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-09-11 +date: 2024-09-16 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 b6630e9b0808e..0f78820dedcf7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_formatters.mdx b/api_docs/kbn_formatters.mdx index 96d3ef084ac0c..1312f6127e8ad 100644 --- a/api_docs/kbn_formatters.mdx +++ b/api_docs/kbn_formatters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-formatters title: "@kbn/formatters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/formatters plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/formatters'] --- import kbnFormattersObj from './kbn_formatters.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index eef41fd9ea38d..00e605cbd1cb2 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-services'] --- import kbnFtrCommonFunctionalServicesObj from './kbn_ftr_common_functional_services.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx index 0e951af619be6..e35fdff8de817 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services'] --- import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json'; diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index ab901a2dccce6..fbb6d8439fb62 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-09-11 +date: 2024-09-16 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 2487a72cea7e0..213f59efa659d 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-console-definitions'] --- import kbnGenerateConsoleDefinitionsObj from './kbn_generate_console_definitions.devdocs.json'; diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index e6b5a3b1f8539..e916f3560b56f 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_grid_layout.mdx b/api_docs/kbn_grid_layout.mdx index da5cc88b2c90b..c6cc93b6159ee 100644 --- a/api_docs/kbn_grid_layout.mdx +++ b/api_docs/kbn_grid_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-grid-layout title: "@kbn/grid-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/grid-layout plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grid-layout'] --- import kbnGridLayoutObj from './kbn_grid_layout.devdocs.json'; diff --git a/api_docs/kbn_grouping.mdx b/api_docs/kbn_grouping.mdx index 9339bd996a93d..e602598f63a0e 100644 --- a/api_docs/kbn_grouping.mdx +++ b/api_docs/kbn_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-grouping title: "@kbn/grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/grouping plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/grouping'] --- import kbnGroupingObj from './kbn_grouping.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index 9f94765c920ac..65a9aa587bd9d 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-09-11 +date: 2024-09-16 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 59e33dfaf3433..8d42345f95696 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index 5e5de1534ca47..3d83727c3f1b7 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-09-11 +date: 2024-09-16 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 1c1c66089188c..591503b456224 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-09-11 +date: 2024-09-16 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 860bb1429be8b..b801b78e1773d 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-09-11 +date: 2024-09-16 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 feabb8071438c..ce1b27ca9ebb3 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-09-11 +date: 2024-09-16 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 bbccde50f61ce..82b14c1802a2b 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-09-11 +date: 2024-09-16 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 6d95d65e4de73..c3f0240347fa6 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-09-11 +date: 2024-09-16 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 fd12670855f12..fb74e7b5c33fa 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_index_management.mdx b/api_docs/kbn_index_management.mdx index 97f999e06d3e3..8dc9fd611953a 100644 --- a/api_docs/kbn_index_management.mdx +++ b/api_docs/kbn_index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-index-management title: "@kbn/index-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/index-management plugin -date: 2024-09-11 +date: 2024-09-13 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management'] --- import kbnIndexManagementObj from './kbn_index_management.devdocs.json'; diff --git a/api_docs/kbn_index_management_shared_types.devdocs.json b/api_docs/kbn_index_management_shared_types.devdocs.json new file mode 100644 index 0000000000000..84acbf41cb81b --- /dev/null +++ b/api_docs/kbn_index_management_shared_types.devdocs.json @@ -0,0 +1,1856 @@ +{ + "id": "@kbn/index-management-shared-types", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.EmptyListContent", + "type": "Interface", + "tags": [], + "label": "EmptyListContent", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.EmptyListContent.renderContent", + "type": "Function", + "tags": [], + "label": "renderContent", + "description": [], + "signature": [ + "(args: { createIndexButton: React.ReactElement | null; }) => React.ReactElement | null" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.EmptyListContent.renderContent.$1", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.EmptyListContent.renderContent.$1.createIndexButton", + "type": "CompoundType", + "tags": [], + "label": "createIndexButton", + "description": [], + "signature": [ + "React.ReactElement | null" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup", + "type": "Interface", + "tags": [], + "label": "ExtensionsSetup", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addAction", + "type": "Function", + "tags": [], + "label": "addAction", + "description": [], + "signature": [ + "(action: any) => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addAction.$1", + "type": "Any", + "tags": [], + "label": "action", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addBanner", + "type": "Function", + "tags": [], + "label": "addBanner", + "description": [], + "signature": [ + "(banner: any) => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addBanner.$1", + "type": "Any", + "tags": [], + "label": "banner", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addFilter", + "type": "Function", + "tags": [], + "label": "addFilter", + "description": [], + "signature": [ + "(filter: any) => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addFilter.$1", + "type": "Any", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "any" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addBadge", + "type": "Function", + "tags": [], + "label": "addBadge", + "description": [], + "signature": [ + "(badge: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexBadge", + "text": "IndexBadge" + }, + ") => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addBadge.$1", + "type": "Object", + "tags": [], + "label": "badge", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexBadge", + "text": "IndexBadge" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addToggle", + "type": "Function", + "tags": [], + "label": "addToggle", + "description": [], + "signature": [ + "(toggle: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexToggle", + "text": "IndexToggle" + }, + ") => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addToggle.$1", + "type": "Object", + "tags": [], + "label": "toggle", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexToggle", + "text": "IndexToggle" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addColumn", + "type": "Function", + "tags": [], + "label": "addColumn", + "description": [], + "signature": [ + "(column: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndicesListColumn", + "text": "IndicesListColumn" + }, + ") => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addColumn.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndicesListColumn", + "text": "IndicesListColumn" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.setEmptyListContent", + "type": "Function", + "tags": [], + "label": "setEmptyListContent", + "description": [], + "signature": [ + "(content: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.EmptyListContent", + "text": "EmptyListContent" + }, + ") => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.setEmptyListContent.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.EmptyListContent", + "text": "EmptyListContent" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addIndexDetailsTab", + "type": "Function", + "tags": [], + "label": "addIndexDetailsTab", + "description": [], + "signature": [ + "(tab: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexDetailsTab", + "text": "IndexDetailsTab" + }, + ") => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.addIndexDetailsTab.$1", + "type": "Object", + "tags": [], + "label": "tab", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexDetailsTab", + "text": "IndexDetailsTab" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.setIndexOverviewContent", + "type": "Function", + "tags": [], + "label": "setIndexOverviewContent", + "description": [], + "signature": [ + "(content: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexContent", + "text": "IndexContent" + }, + ") => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.setIndexOverviewContent.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexContent", + "text": "IndexContent" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.setIndexMappingsContent", + "type": "Function", + "tags": [], + "label": "setIndexMappingsContent", + "description": [], + "signature": [ + "(content: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexContent", + "text": "IndexContent" + }, + ") => void" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.ExtensionsSetup.setIndexMappingsContent.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexContent", + "text": "IndexContent" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index", + "type": "Interface", + "tags": [], + "label": "Index", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.primary", + "type": "CompoundType", + "tags": [], + "label": "primary", + "description": [], + "signature": [ + "string | number | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.replica", + "type": "CompoundType", + "tags": [], + "label": "replica", + "description": [], + "signature": [ + "string | number | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.isFrozen", + "type": "boolean", + "tags": [], + "label": "isFrozen", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.hidden", + "type": "boolean", + "tags": [], + "label": "hidden", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.aliases", + "type": "CompoundType", + "tags": [], + "label": "aliases", + "description": [], + "signature": [ + "string | string[]" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.data_stream", + "type": "string", + "tags": [], + "label": "data_stream", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.isRollupIndex", + "type": "CompoundType", + "tags": [], + "label": "isRollupIndex", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.ilm", + "type": "CompoundType", + "tags": [], + "label": "ilm", + "description": [], + "signature": [ + "IlmExplainLifecycleLifecycleExplain", + " | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.isFollowerIndex", + "type": "CompoundType", + "tags": [], + "label": "isFollowerIndex", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.health", + "type": "CompoundType", + "tags": [], + "label": "health", + "description": [], + "signature": [ + "HealthStatus", + " | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.status", + "type": "CompoundType", + "tags": [], + "label": "status", + "description": [], + "signature": [ + "IndicesStatsIndexMetadataState", + " | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.uuid", + "type": "string", + "tags": [], + "label": "uuid", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.documents", + "type": "number", + "tags": [], + "label": "documents", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.size", + "type": "string", + "tags": [], + "label": "size", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.primary_size", + "type": "string", + "tags": [], + "label": "primary_size", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Index.documents_deleted", + "type": "number", + "tags": [], + "label": "documents_deleted", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexBadge", + "type": "Interface", + "tags": [], + "label": "IndexBadge", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexBadge.matchIndex", + "type": "Function", + "tags": [], + "label": "matchIndex", + "description": [], + "signature": [ + "(index: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + }, + ") => boolean" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexBadge.matchIndex.$1", + "type": "Object", + "tags": [], + "label": "index", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexBadge.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexBadge.filterExpression", + "type": "string", + "tags": [], + "label": "filterExpression", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexBadge.color", + "type": "string", + "tags": [], + "label": "color", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexContent", + "type": "Interface", + "tags": [], + "label": "IndexContent", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexContent.renderContent", + "type": "Function", + "tags": [], + "label": "renderContent", + "description": [], + "signature": [ + "(args: { index: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + }, + "; getUrlForApp: (appId: string, options?: { path?: string | undefined; absolute?: boolean | undefined; deepLinkId?: string | undefined; } | undefined) => string; }) => React.ReactElement | null" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexContent.renderContent.$1", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexContent.renderContent.$1.index", + "type": "Object", + "tags": [], + "label": "index", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexContent.renderContent.$1.getUrlForApp", + "type": "Function", + "tags": [], + "label": "getUrlForApp", + "description": [], + "signature": [ + "(appId: string, options?: { path?: string | undefined; absolute?: boolean | undefined; deepLinkId?: string | undefined; } | undefined) => string" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexContent.renderContent.$1.getUrlForApp.$1", + "type": "string", + "tags": [], + "label": "appId", + "description": [], + "path": "packages/core/application/core-application-browser/src/contracts.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexContent.renderContent.$1.getUrlForApp.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ path?: string | undefined; absolute?: boolean | undefined; deepLinkId?: string | undefined; } | undefined" + ], + "path": "packages/core/application/core-application-browser/src/contracts.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab", + "type": "Interface", + "tags": [], + "label": "IndexDetailsTab", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.name", + "type": "CompoundType", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.renderTabContent", + "type": "Function", + "tags": [], + "label": "renderTabContent", + "description": [], + "signature": [ + "(args: { index: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + }, + "; getUrlForApp: (appId: string, options?: { path?: string | undefined; absolute?: boolean | undefined; deepLinkId?: string | undefined; } | undefined) => string; }) => React.ReactElement | null" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.renderTabContent.$1", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.renderTabContent.$1.index", + "type": "Object", + "tags": [], + "label": "index", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.renderTabContent.$1.getUrlForApp", + "type": "Function", + "tags": [], + "label": "getUrlForApp", + "description": [], + "signature": [ + "(appId: string, options?: { path?: string | undefined; absolute?: boolean | undefined; deepLinkId?: string | undefined; } | undefined) => string" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.renderTabContent.$1.getUrlForApp.$1", + "type": "string", + "tags": [], + "label": "appId", + "description": [], + "path": "packages/core/application/core-application-browser/src/contracts.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.renderTabContent.$1.getUrlForApp.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ path?: string | undefined; absolute?: boolean | undefined; deepLinkId?: string | undefined; } | undefined" + ], + "path": "packages/core/application/core-application-browser/src/contracts.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.shouldRenderTab", + "type": "Function", + "tags": [], + "label": "shouldRenderTab", + "description": [], + "signature": [ + "((args: { index: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + }, + "; }) => boolean) | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.shouldRenderTab.$1", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.shouldRenderTab.$1.index", + "type": "Object", + "tags": [], + "label": "index", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTab.breadcrumb", + "type": "CompoundType", + "tags": [], + "label": "breadcrumb", + "description": [], + "signature": [ + "EuiBreadcrumbProps", + " | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexManagementPluginSetup", + "type": "Interface", + "tags": [], + "label": "IndexManagementPluginSetup", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexManagementPluginSetup.apiService", + "type": "Object", + "tags": [], + "label": "apiService", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.PublicApiServiceSetup", + "text": "PublicApiServiceSetup" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexManagementPluginSetup.extensionsService", + "type": "Object", + "tags": [], + "label": "extensionsService", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.ExtensionsSetup", + "text": "ExtensionsSetup" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexManagementPluginStart", + "type": "Interface", + "tags": [], + "label": "IndexManagementPluginStart", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexManagementPluginStart.extensionsService", + "type": "Object", + "tags": [], + "label": "extensionsService", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.ExtensionsSetup", + "text": "ExtensionsSetup" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexManagementPluginStart.getIndexMappingComponent", + "type": "Function", + "tags": [], + "label": "getIndexMappingComponent", + "description": [], + "signature": [ + "(deps: { history: ", + { + "pluginId": "@kbn/core-application-browser", + "scope": "public", + "docId": "kibKbnCoreApplicationBrowserPluginApi", + "section": "def-public.ScopedHistory", + "text": "ScopedHistory" + }, + "; }) => React.FC<", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.IndexMappingProps", + "text": "IndexMappingProps" + }, + ">" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexManagementPluginStart.getIndexMappingComponent.$1", + "type": "Object", + "tags": [], + "label": "deps", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexManagementPluginStart.getIndexMappingComponent.$1.history", + "type": "Object", + "tags": [], + "label": "history", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-application-browser", + "scope": "public", + "docId": "kibKbnCoreApplicationBrowserPluginApi", + "section": "def-public.ScopedHistory", + "text": "ScopedHistory" + }, + "" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexMappingProps", + "type": "Interface", + "tags": [], + "label": "IndexMappingProps", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexMappingProps.index", + "type": "Object", + "tags": [], + "label": "index", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + }, + " | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexMappingProps.showAboutMappings", + "type": "CompoundType", + "tags": [], + "label": "showAboutMappings", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexToggle", + "type": "Interface", + "tags": [], + "label": "IndexToggle", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexToggle.matchIndex", + "type": "Function", + "tags": [], + "label": "matchIndex", + "description": [], + "signature": [ + "(index: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + }, + ") => boolean" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexToggle.matchIndex.$1", + "type": "Object", + "tags": [], + "label": "index", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexToggle.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexToggle.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndicesListColumn", + "type": "Interface", + "tags": [], + "label": "IndicesListColumn", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndicesListColumn.fieldName", + "type": "string", + "tags": [], + "label": "fieldName", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndicesListColumn.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndicesListColumn.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndicesListColumn.render", + "type": "Function", + "tags": [], + "label": "render", + "description": [], + "signature": [ + "((index: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + }, + ") => React.ReactNode) | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndicesListColumn.render.$1", + "type": "Object", + "tags": [], + "label": "index", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndicesListColumn.sort", + "type": "Function", + "tags": [], + "label": "sort", + "description": [], + "signature": [ + "((index: ", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + }, + ") => any) | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndicesListColumn.sort.$1", + "type": "Object", + "tags": [], + "label": "index", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.Index", + "text": "Index" + } + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.PublicApiServiceSetup", + "type": "Interface", + "tags": [], + "label": "PublicApiServiceSetup", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.PublicApiServiceSetup.getAllEnrichPolicies", + "type": "Function", + "tags": [], + "label": "getAllEnrichPolicies", + "description": [], + "signature": [ + "() => Promise<", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.SendRequestResponse", + "text": "SendRequestResponse" + }, + "<", + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.SerializedEnrichPolicy", + "text": "SerializedEnrichPolicy" + }, + "[], any>>" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SendRequestResponse", + "type": "Interface", + "tags": [], + "label": "SendRequestResponse", + "description": [], + "signature": [ + { + "pluginId": "@kbn/index-management-shared-types", + "scope": "common", + "docId": "kibKbnIndexManagementSharedTypesPluginApi", + "section": "def-common.SendRequestResponse", + "text": "SendRequestResponse" + }, + "" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SendRequestResponse.data", + "type": "CompoundType", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "D | null" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SendRequestResponse.error", + "type": "CompoundType", + "tags": [], + "label": "error", + "description": [], + "signature": [ + "E | null" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SerializedEnrichPolicy", + "type": "Interface", + "tags": [], + "label": "SerializedEnrichPolicy", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SerializedEnrichPolicy.type", + "type": "CompoundType", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"match\" | \"range\" | \"geo_match\"" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SerializedEnrichPolicy.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SerializedEnrichPolicy.sourceIndices", + "type": "Array", + "tags": [], + "label": "sourceIndices", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SerializedEnrichPolicy.matchField", + "type": "string", + "tags": [], + "label": "matchField", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SerializedEnrichPolicy.enrichFields", + "type": "Array", + "tags": [], + "label": "enrichFields", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.SerializedEnrichPolicy.query", + "type": "Object", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsSection", + "type": "Enum", + "tags": [], + "label": "IndexDetailsSection", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.Section", + "type": "Enum", + "tags": [], + "label": "Section", + "description": [], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "misc": [ + { + "parentPluginId": "@kbn/index-management-shared-types", + "id": "def-common.IndexDetailsTabId", + "type": "Type", + "tags": [], + "label": "IndexDetailsTabId", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_index_management_shared_types.mdx b/api_docs/kbn_index_management_shared_types.mdx new file mode 100644 index 0000000000000..c2e5fa6b96aca --- /dev/null +++ b/api_docs/kbn_index_management_shared_types.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: kibKbnIndexManagementSharedTypesPluginApi +slug: /kibana-dev-docs/api/kbn-index-management-shared-types +title: "@kbn/index-management-shared-types" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/index-management-shared-types plugin +date: 2024-09-16 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/index-management-shared-types'] +--- +import kbnIndexManagementSharedTypesObj from './kbn_index_management_shared_types.devdocs.json'; + + + +Contact [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 109 | 3 | 109 | 0 | + +## Common + +### Interfaces + + +### Enums + + +### Consts, variables and types + + diff --git a/api_docs/kbn_inference_integration_flyout.mdx b/api_docs/kbn_inference_integration_flyout.mdx index e0cc97c599200..0f9da046e6563 100644 --- a/api_docs/kbn_inference_integration_flyout.mdx +++ b/api_docs/kbn_inference_integration_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-inference_integration_flyout title: "@kbn/inference_integration_flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/inference_integration_flyout plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/inference_integration_flyout'] --- import kbnInferenceIntegrationFlyoutObj from './kbn_inference_integration_flyout.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index 6d2dcbc4394ca..b2f3b84caba44 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-09-11 +date: 2024-09-16 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 5aa7aa0f00f34..49fdc2f56129b 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_investigation_shared.devdocs.json b/api_docs/kbn_investigation_shared.devdocs.json index e9444469952dd..8b23840009fb8 100644 --- a/api_docs/kbn_investigation_shared.devdocs.json +++ b/api_docs/kbn_investigation_shared.devdocs.json @@ -30,7 +30,7 @@ "label": "CreateInvestigationItemParams", "description": [], "signature": [ - "{ title: string; type: string; params: { [x: string]: any; }; }" + "{ params: Record; type: string; title: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create_item.ts", "deprecated": false, @@ -45,7 +45,7 @@ "label": "CreateInvestigationItemResponse", "description": [], "signature": [ - "{ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; }" + "{ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create_item.ts", "deprecated": false, @@ -75,7 +75,7 @@ "label": "CreateInvestigationNoteResponse", "description": [], "signature": [ - "{ id: string; content: string; createdAt: number; createdBy: string; }" + "{ id: string; createdBy: string; createdAt: number; content: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create_note.ts", "deprecated": false, @@ -90,7 +90,7 @@ "label": "CreateInvestigationParams", "description": [], "signature": [ - "{ id: string; title: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; }" + "{ params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create.ts", "deprecated": false, @@ -105,7 +105,7 @@ "label": "CreateInvestigationResponse", "description": [], "signature": [ - "{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]; }" + "{ params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create.ts", "deprecated": false, @@ -120,7 +120,7 @@ "label": "DeleteInvestigationItemParams", "description": [], "signature": [ - "{ investigationId: string; itemId: string; }" + "{ itemId: string; investigationId: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/delete_item.ts", "deprecated": false, @@ -165,7 +165,7 @@ "label": "FindInvestigationsParams", "description": [], "signature": [ - "{ alertId?: string | undefined; page?: string | undefined; perPage?: string | undefined; }" + "{ page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; } | undefined" ], "path": "packages/kbn-investigation-shared/src/rest_specs/find.ts", "deprecated": false, @@ -180,7 +180,7 @@ "label": "FindInvestigationsResponse", "description": [], "signature": [ - "{ page: number; perPage: number; total: number; results: { id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]; }[]; }" + "{ page: number; results: { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }[]; perPage: number; total: number; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/find.ts", "deprecated": false, @@ -195,7 +195,7 @@ "label": "GetInvestigationItemsResponse", "description": [], "signature": [ - "({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]" + "({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get_items.ts", "deprecated": false, @@ -210,7 +210,7 @@ "label": "GetInvestigationNotesResponse", "description": [], "signature": [ - "{ id: string; content: string; createdAt: number; createdBy: string; }[]" + "{ id: string; createdBy: string; createdAt: number; content: string; }[]" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get_notes.ts", "deprecated": false, @@ -240,7 +240,7 @@ "label": "GetInvestigationResponse", "description": [], "signature": [ - "{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]; }" + "{ params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get.ts", "deprecated": false, @@ -255,7 +255,7 @@ "label": "InvestigationItem", "description": [], "signature": [ - "{ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; }" + "{ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; }" ], "path": "packages/kbn-investigation-shared/src/schema/investigation_item.ts", "deprecated": false, @@ -270,7 +270,7 @@ "label": "InvestigationItemResponse", "description": [], "signature": [ - "{ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; }" + "{ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts", "deprecated": false, @@ -285,13 +285,28 @@ "label": "InvestigationNoteResponse", "description": [], "signature": [ - "{ id: string; content: string; createdAt: number; createdBy: string; }" + "{ id: string; createdBy: string; createdAt: number; content: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.InvestigationResponse", + "type": "Type", + "tags": [], + "label": "InvestigationResponse", + "description": [], + "signature": [ + "{ params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/investigation.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/investigation-shared", "id": "def-common.Item", @@ -300,7 +315,7 @@ "label": "Item", "description": [], "signature": [ - "{ title: string; type: string; params: { [x: string]: any; }; }" + "{ params: Record; type: string; title: string; }" ], "path": "packages/kbn-investigation-shared/src/schema/investigation_item.ts", "deprecated": false, @@ -315,7 +330,7 @@ "label": "UpdateInvestigationItemParams", "description": [], "signature": [ - "{ title: string; type: string; params: { [x: string]: any; }; }" + "{ params: Record; type: string; title: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update_item.ts", "deprecated": false, @@ -330,7 +345,7 @@ "label": "UpdateInvestigationItemResponse", "description": [], "signature": [ - "{ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; }" + "{ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update_item.ts", "deprecated": false, @@ -360,7 +375,7 @@ "label": "UpdateInvestigationNoteResponse", "description": [], "signature": [ - "{ id: string; content: string; createdAt: number; createdBy: string; }" + "{ id: string; createdBy: string; createdAt: number; content: string; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update_note.ts", "deprecated": false, @@ -375,7 +390,7 @@ "label": "UpdateInvestigationParams", "description": [], "signature": [ - "{ title?: string | undefined; status?: \"closed\" | \"ongoing\" | undefined; params?: { timeRange: { from: number; to: number; }; } | undefined; }" + "{ params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update.ts", "deprecated": false, @@ -390,7 +405,7 @@ "label": "UpdateInvestigationResponse", "description": [], "signature": [ - "{ id: string; title: string; createdAt: number; createdBy: string; params: { timeRange: { from: number; to: number; }; }; origin: { type: \"alert\"; id: string; } | { type: \"blank\"; }; status: \"closed\" | \"ongoing\"; notes: { id: string; content: string; createdAt: number; createdBy: string; }[]; items: ({ id: string; createdAt: number; createdBy: string; } & { title: string; type: string; params: { [x: string]: any; }; })[]; }" + "{ params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update.ts", "deprecated": false, @@ -407,12 +422,7 @@ "label": "alertOriginSchema", "description": [], "signature": [ - "TypeC", - "<{ type: ", - "LiteralC", - "<\"alert\">; id: ", - "StringC", - "; }>" + "Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>" ], "path": "packages/kbn-investigation-shared/src/schema/origin.ts", "deprecated": false, @@ -427,10 +437,7 @@ "label": "blankOriginSchema", "description": [], "signature": [ - "TypeC", - "<{ type: ", - "LiteralC", - "<\"blank\">; }>" + "Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>" ], "path": "packages/kbn-investigation-shared/src/schema/origin.ts", "deprecated": false, @@ -445,24 +452,7 @@ "label": "createInvestigationItemParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; body: ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; body: Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>; }, \"strip\", Zod.ZodTypeAny, { body: { params: Record; type: string; title: string; }; path: { investigationId: string; }; }, { body: { params: Record; type: string; title: string; }; path: { investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create_item.ts", "deprecated": false, @@ -477,28 +467,7 @@ "label": "createInvestigationItemResponseSchema", "description": [], "signature": [ - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>" + "Zod.ZodIntersection, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create_item.ts", "deprecated": false, @@ -513,16 +482,7 @@ "label": "createInvestigationNoteParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; body: ", - "TypeC", - "<{ content: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; body: Zod.ZodObject<{ content: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { content: string; }, { content: string; }>; }, \"strip\", Zod.ZodTypeAny, { body: { content: string; }; path: { investigationId: string; }; }, { body: { content: string; }; path: { investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create_note.ts", "deprecated": false, @@ -537,16 +497,7 @@ "label": "createInvestigationNoteResponseSchema", "description": [], "signature": [ - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>" + "Zod.ZodObject<{ id: Zod.ZodString; content: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; createdBy: string; createdAt: number; content: string; }, { id: string; createdBy: string; createdAt: number; content: string; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create_note.ts", "deprecated": false, @@ -561,34 +512,7 @@ "label": "createInvestigationParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ body: ", - "TypeC", - "<{ id: ", - "StringC", - "; title: ", - "StringC", - "; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; origin: ", - "UnionC", - "<[", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"alert\">; id: ", - "StringC", - "; }>, ", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"blank\">; }>]>; }>; }>" + "Zod.ZodObject<{ body: Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; params: Zod.ZodObject<{ timeRange: Zod.ZodObject<{ from: Zod.ZodNumber; to: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { from: number; to: number; }, { from: number; to: number; }>; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>; origin: Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>]>; tags: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }>; }, \"strip\", Zod.ZodTypeAny, { body: { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }; }, { body: { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create.ts", "deprecated": false, @@ -603,78 +527,7 @@ "label": "createInvestigationResponseSchema", "description": [], "signature": [ - "TypeC", - "<{ id: ", - "StringC", - "; title: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; origin: ", - "UnionC", - "<[", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"alert\">; id: ", - "StringC", - "; }>, ", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"blank\">; }>]>; status: ", - "UnionC", - "<[", - "LiteralC", - "<\"ongoing\">, ", - "LiteralC", - "<\"closed\">]>; notes: ", - "ArrayC", - "<", - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>>; items: ", - "ArrayC", - "<", - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>>; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; params: Zod.ZodObject<{ timeRange: Zod.ZodObject<{ from: Zod.ZodNumber; to: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { from: number; to: number; }, { from: number; to: number; }>; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>; origin: Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>]>; status: Zod.ZodUnion<[Zod.ZodLiteral<\"triage\">, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>; tags: Zod.ZodArray; notes: Zod.ZodArray, \"many\">; items: Zod.ZodArray, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/create.ts", "deprecated": false, @@ -689,14 +542,7 @@ "label": "deleteInvestigationItemParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; itemId: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; itemId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { itemId: string; investigationId: string; }, { itemId: string; investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { itemId: string; investigationId: string; }; }, { path: { itemId: string; investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/delete_item.ts", "deprecated": false, @@ -711,14 +557,7 @@ "label": "deleteInvestigationNoteParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; noteId: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; noteId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; noteId: string; }, { investigationId: string; noteId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; noteId: string; }; }, { path: { investigationId: string; noteId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/delete_note.ts", "deprecated": false, @@ -733,12 +572,7 @@ "label": "deleteInvestigationParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; }; }, { path: { investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/delete.ts", "deprecated": false, @@ -753,16 +587,7 @@ "label": "findInvestigationsParamsSchema", "description": [], "signature": [ - "PartialC", - "<{ query: ", - "PartialC", - "<{ alertId: ", - "StringC", - "; page: ", - "StringC", - "; perPage: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ query: Zod.ZodOptional; page: Zod.ZodOptional; perPage: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; }, { page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; }>>; }, \"strip\", Zod.ZodTypeAny, { query?: { page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; } | undefined; }, { query?: { page?: string | undefined; perPage?: string | undefined; alertId?: string | undefined; } | undefined; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/find.ts", "deprecated": false, @@ -777,88 +602,7 @@ "label": "findInvestigationsResponseSchema", "description": [], "signature": [ - "TypeC", - "<{ page: ", - "NumberC", - "; perPage: ", - "NumberC", - "; total: ", - "NumberC", - "; results: ", - "ArrayC", - "<", - "TypeC", - "<{ id: ", - "StringC", - "; title: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; origin: ", - "UnionC", - "<[", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"alert\">; id: ", - "StringC", - "; }>, ", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"blank\">; }>]>; status: ", - "UnionC", - "<[", - "LiteralC", - "<\"ongoing\">, ", - "LiteralC", - "<\"closed\">]>; notes: ", - "ArrayC", - "<", - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>>; items: ", - "ArrayC", - "<", - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>>; }>>; }>" + "Zod.ZodObject<{ page: Zod.ZodNumber; perPage: Zod.ZodNumber; total: Zod.ZodNumber; results: Zod.ZodArray; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>; origin: Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>]>; status: Zod.ZodUnion<[Zod.ZodLiteral<\"triage\">, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>; tags: Zod.ZodArray; notes: Zod.ZodArray, \"many\">; items: Zod.ZodArray, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { page: number; results: { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }[]; perPage: number; total: number; }, { page: number; results: { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }[]; perPage: number; total: number; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/find.ts", "deprecated": false, @@ -873,12 +617,7 @@ "label": "getInvestigationItemsParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; }; }, { path: { investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get_items.ts", "deprecated": false, @@ -893,30 +632,7 @@ "label": "getInvestigationItemsResponseSchema", "description": [], "signature": [ - "ArrayC", - "<", - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>>" + "Zod.ZodArray, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>, \"many\">" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get_items.ts", "deprecated": false, @@ -931,12 +647,7 @@ "label": "getInvestigationNotesParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; }; }, { path: { investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get_notes.ts", "deprecated": false, @@ -951,18 +662,7 @@ "label": "getInvestigationNotesResponseSchema", "description": [], "signature": [ - "ArrayC", - "<", - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>>" + "Zod.ZodArray, \"many\">" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get_notes.ts", "deprecated": false, @@ -977,12 +677,7 @@ "label": "getInvestigationParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; }, \"strip\", Zod.ZodTypeAny, { path: { investigationId: string; }; }, { path: { investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get.ts", "deprecated": false, @@ -997,78 +692,7 @@ "label": "getInvestigationResponseSchema", "description": [], "signature": [ - "TypeC", - "<{ id: ", - "StringC", - "; title: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; origin: ", - "UnionC", - "<[", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"alert\">; id: ", - "StringC", - "; }>, ", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"blank\">; }>]>; status: ", - "UnionC", - "<[", - "LiteralC", - "<\"ongoing\">, ", - "LiteralC", - "<\"closed\">]>; notes: ", - "ArrayC", - "<", - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>>; items: ", - "ArrayC", - "<", - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>>; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; params: Zod.ZodObject<{ timeRange: Zod.ZodObject<{ from: Zod.ZodNumber; to: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { from: number; to: number; }, { from: number; to: number; }>; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>; origin: Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>]>; status: Zod.ZodUnion<[Zod.ZodLiteral<\"triage\">, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>; tags: Zod.ZodArray; notes: Zod.ZodArray, \"many\">; items: Zod.ZodArray, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/get.ts", "deprecated": false, @@ -1083,28 +707,7 @@ "label": "investigationItemResponseSchema", "description": [], "signature": [ - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>" + "Zod.ZodIntersection, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts", "deprecated": false, @@ -1119,28 +722,7 @@ "label": "investigationItemSchema", "description": [], "signature": [ - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>" + "Zod.ZodIntersection, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>" ], "path": "packages/kbn-investigation-shared/src/schema/investigation_item.ts", "deprecated": false, @@ -1155,16 +737,7 @@ "label": "investigationNoteResponseSchema", "description": [], "signature": [ - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>" + "Zod.ZodObject<{ id: Zod.ZodString; content: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; createdBy: string; createdAt: number; content: string; }, { id: string; createdBy: string; createdAt: number; content: string; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts", "deprecated": false, @@ -1179,22 +752,28 @@ "label": "investigationNoteSchema", "description": [], "signature": [ - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>" + "Zod.ZodObject<{ id: Zod.ZodString; content: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; createdBy: string; createdAt: number; content: string; }, { id: string; createdBy: string; createdAt: number; content: string; }>" ], "path": "packages/kbn-investigation-shared/src/schema/investigation_note.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.investigationResponseSchema", + "type": "Object", + "tags": [], + "label": "investigationResponseSchema", + "description": [], + "signature": [ + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; params: Zod.ZodObject<{ timeRange: Zod.ZodObject<{ from: Zod.ZodNumber; to: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { from: number; to: number; }, { from: number; to: number; }>; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>; origin: Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>]>; status: Zod.ZodUnion<[Zod.ZodLiteral<\"triage\">, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>; tags: Zod.ZodArray; notes: Zod.ZodArray, \"many\">; items: Zod.ZodArray, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }>" + ], + "path": "packages/kbn-investigation-shared/src/rest_specs/investigation.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/investigation-shared", "id": "def-common.investigationSchema", @@ -1203,78 +782,7 @@ "label": "investigationSchema", "description": [], "signature": [ - "TypeC", - "<{ id: ", - "StringC", - "; title: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; origin: ", - "UnionC", - "<[", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"alert\">; id: ", - "StringC", - "; }>, ", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"blank\">; }>]>; status: ", - "UnionC", - "<[", - "LiteralC", - "<\"ongoing\">, ", - "LiteralC", - "<\"closed\">]>; notes: ", - "ArrayC", - "<", - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>>; items: ", - "ArrayC", - "<", - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>>; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; params: Zod.ZodObject<{ timeRange: Zod.ZodObject<{ from: Zod.ZodNumber; to: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { from: number; to: number; }, { from: number; to: number; }>; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>; origin: Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>]>; status: Zod.ZodUnion<[Zod.ZodLiteral<\"triage\">, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>; tags: Zod.ZodArray; notes: Zod.ZodArray, \"many\">; items: Zod.ZodArray, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }>" ], "path": "packages/kbn-investigation-shared/src/schema/investigation.ts", "deprecated": false, @@ -1289,24 +797,28 @@ "label": "itemSchema", "description": [], "signature": [ - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>" + "Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>" ], "path": "packages/kbn-investigation-shared/src/schema/investigation_item.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/investigation-shared", + "id": "def-common.statusSchema", + "type": "Object", + "tags": [], + "label": "statusSchema", + "description": [], + "signature": [ + "Zod.ZodUnion<[Zod.ZodLiteral<\"triage\">, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>" + ], + "path": "packages/kbn-investigation-shared/src/schema/investigation.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/investigation-shared", "id": "def-common.updateInvestigationItemParamsSchema", @@ -1315,26 +827,7 @@ "label": "updateInvestigationItemParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; itemId: ", - "StringC", - "; }>; body: ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; itemId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { itemId: string; investigationId: string; }, { itemId: string; investigationId: string; }>; body: Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>; }, \"strip\", Zod.ZodTypeAny, { body: { params: Record; type: string; title: string; }; path: { itemId: string; investigationId: string; }; }, { body: { params: Record; type: string; title: string; }; path: { itemId: string; investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update_item.ts", "deprecated": false, @@ -1349,28 +842,7 @@ "label": "updateInvestigationItemResponseSchema", "description": [], "signature": [ - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>" + "Zod.ZodIntersection, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update_item.ts", "deprecated": false, @@ -1385,18 +857,7 @@ "label": "updateInvestigationNoteParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; noteId: ", - "StringC", - "; }>; body: ", - "TypeC", - "<{ content: ", - "StringC", - "; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; noteId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; noteId: string; }, { investigationId: string; noteId: string; }>; body: Zod.ZodObject<{ content: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { content: string; }, { content: string; }>; }, \"strip\", Zod.ZodTypeAny, { body: { content: string; }; path: { investigationId: string; noteId: string; }; }, { body: { content: string; }; path: { investigationId: string; noteId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update_note.ts", "deprecated": false, @@ -1411,16 +872,7 @@ "label": "updateInvestigationNoteResponseSchema", "description": [], "signature": [ - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>" + "Zod.ZodObject<{ id: Zod.ZodString; content: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; createdBy: string; createdAt: number; content: string; }, { id: string; createdBy: string; createdAt: number; content: string; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update_note.ts", "deprecated": false, @@ -1435,30 +887,7 @@ "label": "updateInvestigationParamsSchema", "description": [], "signature": [ - "TypeC", - "<{ path: ", - "TypeC", - "<{ investigationId: ", - "StringC", - "; }>; body: ", - "PartialC", - "<{ title: ", - "StringC", - "; status: ", - "UnionC", - "<[", - "LiteralC", - "<\"ongoing\">, ", - "LiteralC", - "<\"closed\">]>; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; }>; }>" + "Zod.ZodObject<{ path: Zod.ZodObject<{ investigationId: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { investigationId: string; }, { investigationId: string; }>; body: Zod.ZodObject<{ title: Zod.ZodOptional; status: Zod.ZodOptional, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>>; params: Zod.ZodOptional; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>>; tags: Zod.ZodOptional>; }, \"strip\", Zod.ZodTypeAny, { params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }, { params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }>; }, \"strip\", Zod.ZodTypeAny, { body: { params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }; path: { investigationId: string; }; }, { body: { params?: { timeRange: { from: number; to: number; }; } | undefined; tags?: string[] | undefined; title?: string | undefined; status?: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\" | undefined; }; path: { investigationId: string; }; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update.ts", "deprecated": false, @@ -1473,78 +902,7 @@ "label": "updateInvestigationResponseSchema", "description": [], "signature": [ - "TypeC", - "<{ id: ", - "StringC", - "; title: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; params: ", - "TypeC", - "<{ timeRange: ", - "TypeC", - "<{ from: ", - "NumberC", - "; to: ", - "NumberC", - "; }>; }>; origin: ", - "UnionC", - "<[", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"alert\">; id: ", - "StringC", - "; }>, ", - "TypeC", - "<{ type: ", - "LiteralC", - "<\"blank\">; }>]>; status: ", - "UnionC", - "<[", - "LiteralC", - "<\"ongoing\">, ", - "LiteralC", - "<\"closed\">]>; notes: ", - "ArrayC", - "<", - "TypeC", - "<{ id: ", - "StringC", - "; content: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>>; items: ", - "ArrayC", - "<", - "IntersectionC", - "<[", - "TypeC", - "<{ id: ", - "StringC", - "; createdAt: ", - "NumberC", - "; createdBy: ", - "StringC", - "; }>, ", - "TypeC", - "<{ title: ", - "StringC", - "; type: ", - "StringC", - "; params: ", - "RecordC", - "<", - "StringC", - ", ", - "AnyC", - ">; }>]>>; }>" + "Zod.ZodObject<{ id: Zod.ZodString; title: Zod.ZodString; createdAt: Zod.ZodNumber; createdBy: Zod.ZodString; params: Zod.ZodObject<{ timeRange: Zod.ZodObject<{ from: Zod.ZodNumber; to: Zod.ZodNumber; }, \"strip\", Zod.ZodTypeAny, { from: number; to: number; }, { from: number; to: number; }>; }, \"strip\", Zod.ZodTypeAny, { timeRange: { from: number; to: number; }; }, { timeRange: { from: number; to: number; }; }>; origin: Zod.ZodUnion<[Zod.ZodObject<{ type: Zod.ZodLiteral<\"alert\">; id: Zod.ZodString; }, \"strip\", Zod.ZodTypeAny, { id: string; type: \"alert\"; }, { id: string; type: \"alert\"; }>, Zod.ZodObject<{ type: Zod.ZodLiteral<\"blank\">; }, \"strip\", Zod.ZodTypeAny, { type: \"blank\"; }, { type: \"blank\"; }>]>; status: Zod.ZodUnion<[Zod.ZodLiteral<\"triage\">, Zod.ZodLiteral<\"active\">, Zod.ZodLiteral<\"mitigated\">, Zod.ZodLiteral<\"resolved\">, Zod.ZodLiteral<\"cancelled\">]>; tags: Zod.ZodArray; notes: Zod.ZodArray, \"many\">; items: Zod.ZodArray, Zod.ZodObject<{ title: Zod.ZodString; type: Zod.ZodString; params: Zod.ZodRecord; }, \"strip\", Zod.ZodTypeAny, { params: Record; type: string; title: string; }, { params: Record; type: string; title: string; }>>, \"many\">; }, \"strip\", Zod.ZodTypeAny, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }, { params: { timeRange: { from: number; to: number; }; }; id: string; tags: string[]; title: string; createdBy: string; createdAt: number; status: \"active\" | \"triage\" | \"mitigated\" | \"resolved\" | \"cancelled\"; items: ({ id: string; createdBy: string; createdAt: number; } & { params: Record; type: string; title: string; })[]; origin: { id: string; type: \"alert\"; } | { type: \"blank\"; }; notes: { id: string; createdBy: string; createdAt: number; content: string; }[]; }>" ], "path": "packages/kbn-investigation-shared/src/rest_specs/update.ts", "deprecated": false, diff --git a/api_docs/kbn_investigation_shared.mdx b/api_docs/kbn_investigation_shared.mdx index f96e289249798..0caaa8fe89cf6 100644 --- a/api_docs/kbn_investigation_shared.mdx +++ b/api_docs/kbn_investigation_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-investigation-shared title: "@kbn/investigation-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/investigation-shared plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/investigation-shared'] --- import kbnInvestigationSharedObj from './kbn_investigation_shared.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 | |-------------------|-----------|------------------------|-----------------| -| 56 | 0 | 56 | 0 | +| 59 | 0 | 59 | 0 | ## Common diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index ae081fd14b869..a9dea8305f8eb 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_ipynb.mdx b/api_docs/kbn_ipynb.mdx index 038dd7142d69b..deaad141f0c2e 100644 --- a/api_docs/kbn_ipynb.mdx +++ b/api_docs/kbn_ipynb.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ipynb title: "@kbn/ipynb" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ipynb plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ipynb'] --- import kbnIpynbObj from './kbn_ipynb.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 27773267cc643..d85e843c6fc6c 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-09-11 +date: 2024-09-16 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 0c69697afa2b5..2a6962324f0d4 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-09-11 +date: 2024-09-16 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 e8fa5427988b2..332d3d181d4c6 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_json_schemas.mdx b/api_docs/kbn_json_schemas.mdx index f75d8390d940c..2ad6968cf1132 100644 --- a/api_docs/kbn_json_schemas.mdx +++ b/api_docs/kbn_json_schemas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-schemas title: "@kbn/json-schemas" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-schemas plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-schemas'] --- import kbnJsonSchemasObj from './kbn_json_schemas.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index bb0d2053f97c7..d200858245a7b 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-09-11 +date: 2024-09-16 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 1850c89a59daf..11a0f3de4d53f 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-09-11 +date: 2024-09-16 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 78e5d00152573..0a89f170ef611 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-09-11 +date: 2024-09-16 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 2cf2390b71b4d..eb2321fd7f55d 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-09-11 +date: 2024-09-16 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 4f8b64560b5f0..323fbb620cd0d 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-09-11 +date: 2024-09-16 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 2aa22c95fab44..f9fde99a5b430 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx index 39ae47cb4393c..0e9b167ecb9e5 100644 --- a/api_docs/kbn_managed_content_badge.mdx +++ b/api_docs/kbn_managed_content_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-content-badge title: "@kbn/managed-content-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-content-badge plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge'] --- import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index 0439dce056875..5be29cc83b7b0 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-09-11 +date: 2024-09-16 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 2964cc2236af2..1b422b93b8af7 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-09-11 +date: 2024-09-16 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 22077564eb635..eb28ad73f8c56 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-application'] --- import kbnManagementSettingsApplicationObj from './kbn_management_settings_application.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index a9b233746f131..5bf3574beb174 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-09-11 +date: 2024-09-16 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 d6ba4384023e6..b48fabc78bea7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-components-field-input'] --- import kbnManagementSettingsComponentsFieldInputObj from './kbn_management_settings_components_field_input.devdocs.json'; diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 22d995149baf7..223a64e7a982e 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-09-11 +date: 2024-09-16 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 dda0eec1760d8..d66a64f9e150e 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-09-11 +date: 2024-09-16 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 2b68e8edd9b31..ce9e90da1f9b1 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index ae6d387a4e6b9..492de46c2a79d 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index 6f347712c52ea..13a136a5652ce 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-section-registry'] --- import kbnManagementSettingsSectionRegistryObj from './kbn_management_settings_section_registry.devdocs.json'; diff --git a/api_docs/kbn_management_settings_types.mdx b/api_docs/kbn_management_settings_types.mdx index af43360b3beb4..39c080fda374d 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index 3f12e45898be5..1d41a8bfc7a92 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index c41b26dfcf725..30f01d1d0e610 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-09-11 +date: 2024-09-16 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 7f8b965b1d5c2..10fac656166ee 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, diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 7a4762a80c458..eddd72eb11629 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-09-11 +date: 2024-09-16 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 709a87329a8ee..5e8af4ac2d3b0 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-09-11 +date: 2024-09-16 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 f677bbbb79129..5b4c8c8217aed 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-09-11 +date: 2024-09-16 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 bc14dbbb0c9d1..48f3a90ab2cd8 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_cancellable_search.mdx b/api_docs/kbn_ml_cancellable_search.mdx index e57aa0c4230e6..ee45572011f0c 100644 --- a/api_docs/kbn_ml_cancellable_search.mdx +++ b/api_docs/kbn_ml_cancellable_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-cancellable-search title: "@kbn/ml-cancellable-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-cancellable-search plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-cancellable-search'] --- import kbnMlCancellableSearchObj from './kbn_ml_cancellable_search.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index fef57aae5a7c9..189e40899f8a7 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-09-11 +date: 2024-09-16 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 d23fd567ead92..c66a71c49f67e 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-09-11 +date: 2024-09-16 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 79417b27985cf..42eea620e6cda 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_ml_data_grid.devdocs.json index 4dc6995834844..dfb0f3c62a61a 100644 --- a/api_docs/kbn_ml_data_grid.devdocs.json +++ b/api_docs/kbn_ml_data_grid.devdocs.json @@ -2448,7 +2448,7 @@ "section": "def-common.UseDataGridReturnType", "text": "UseDataGridReturnType" }, - ", \"status\" | \"rowCount\" | \"errorMessage\" | \"baseline\" | \"pagination\" | \"chartsVisible\" | \"chartsButtonVisible\" | \"ccsWarning\" | \"columnsWithCharts\" | \"invalidSortingColumnns\" | \"noDataMessage\" | \"onChangeItemsPerPage\" | \"onChangePage\" | \"onSort\" | \"setPagination\" | \"setVisibleColumns\" | \"rowCountRelation\" | \"sortingColumns\" | \"tableItems\" | \"toggleChartVisibility\" | \"visibleColumns\" | \"predictionFieldName\" | \"resultsField\">" + ", \"status\" | \"ccsWarning\" | \"rowCount\" | \"errorMessage\" | \"baseline\" | \"pagination\" | \"chartsVisible\" | \"chartsButtonVisible\" | \"columnsWithCharts\" | \"invalidSortingColumnns\" | \"noDataMessage\" | \"onChangeItemsPerPage\" | \"onChangePage\" | \"onSort\" | \"setPagination\" | \"setVisibleColumns\" | \"rowCountRelation\" | \"sortingColumns\" | \"tableItems\" | \"toggleChartVisibility\" | \"visibleColumns\" | \"predictionFieldName\" | \"resultsField\">" ], "path": "x-pack/packages/ml/data_grid/lib/types.ts", "deprecated": false, diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index b73235ed97274..c931d65721bcb 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-09-11 +date: 2024-09-16 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 a306d295a0d00..4a9c95912a1aa 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-09-11 +date: 2024-09-16 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 613f529b12d9f..cdf02bab8c97a 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-09-11 +date: 2024-09-16 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 b70e3edc81afa..d665e70b910b5 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-error-utils'] --- import kbnMlErrorUtilsObj from './kbn_ml_error_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index 1d6f45efe239f..e28964fbe66bb 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.devdocs.json'; diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index 3528210d2495f..0d263d4ab2fce 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-09-11 +date: 2024-09-16 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 cbfc23205a869..200c8e651e0fa 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-09-11 +date: 2024-09-16 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 2ae5dbbe63de8..46c4ff9e5b04a 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-09-11 +date: 2024-09-16 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 ea816b8fc1872..7190e5d9a8229 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-09-11 +date: 2024-09-16 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 4a3d9c4bb6445..57329a3f1996f 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-09-11 +date: 2024-09-16 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 0e75c085f1425..2474fb2c29454 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-09-11 +date: 2024-09-16 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 71f72b07dcd22..604d2572910eb 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-09-11 +date: 2024-09-16 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 45f6603a41bef..18c8a38fb03c0 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-09-11 +date: 2024-09-16 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 fce7edf186061..82f2f994b6cf1 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-09-11 +date: 2024-09-16 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 b0846ca2cf432..be1808d91984d 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-09-11 +date: 2024-09-16 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 cb9258ef222bb..8a4449686ae93 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_time_buckets.mdx b/api_docs/kbn_ml_time_buckets.mdx index c244e94a619e3..aeb7548359519 100644 --- a/api_docs/kbn_ml_time_buckets.mdx +++ b/api_docs/kbn_ml_time_buckets.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-time-buckets title: "@kbn/ml-time-buckets" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-time-buckets plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-time-buckets'] --- import kbnMlTimeBucketsObj from './kbn_ml_time_buckets.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index 98ea0204ca7c0..a4b4e37615524 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-09-11 +date: 2024-09-16 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 29dc2c3d6c536..4fb35f53e2c26 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-09-11 +date: 2024-09-16 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 dba766d4690c5..8cc5eeb77c13c 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx index a7f478d07ba1b..594a780321cd2 100644 --- a/api_docs/kbn_mock_idp_utils.mdx +++ b/api_docs/kbn_mock_idp_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mock-idp-utils title: "@kbn/mock-idp-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mock-idp-utils plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils'] --- import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.devdocs.json'; diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index ddd1de6314117..010aac44acb67 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-09-11 +date: 2024-09-16 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 46035ffd315f5..8367646437d74 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_object_versioning_utils.mdx b/api_docs/kbn_object_versioning_utils.mdx index 823dd351fa205..d1f67b43f75c9 100644 --- a/api_docs/kbn_object_versioning_utils.mdx +++ b/api_docs/kbn_object_versioning_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning-utils title: "@kbn/object-versioning-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning-utils plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning-utils'] --- import kbnObjectVersioningUtilsObj from './kbn_object_versioning_utils.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index 2ec12f7f34f21..e3fd96e6a5fab 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_rule_utils.mdx b/api_docs/kbn_observability_alerting_rule_utils.mdx index f9ba239c2cba6..14935aa523b63 100644 --- a/api_docs/kbn_observability_alerting_rule_utils.mdx +++ b/api_docs/kbn_observability_alerting_rule_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-rule-utils title: "@kbn/observability-alerting-rule-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alerting-rule-utils plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alerting-rule-utils'] --- import kbnObservabilityAlertingRuleUtilsObj from './kbn_observability_alerting_rule_utils.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx index e3808a9f149ff..9b855c42672ad 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-09-11 +date: 2024-09-16 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 3b682b017ab6d..652ba42b46b9e 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-09-11 +date: 2024-09-16 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 015a14e231fe1..513ea700f3a5f 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler'] --- import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index 0fb1cde3bd873..e0ede1600d22b 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index e1b97b070e053..94eaf0805d90f 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-09-11 +date: 2024-09-16 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 8ce2fdecda378..a7c1b0df2c9bc 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-09-11 +date: 2024-09-16 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 691d987cadd0a..5bc54755ee712 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-09-11 +date: 2024-09-16 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 282a9de6f268d..1d9c1b0c63926 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-09-11 +date: 2024-09-16 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 72bccadff94a0..1a2efe56ad378 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/performance-testing-dataset-extractor'] --- import kbnPerformanceTestingDatasetExtractorObj from './kbn_performance_testing_dataset_extractor.devdocs.json'; diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx index 5f4efe9277750..4ebd65625f4d8 100644 --- a/api_docs/kbn_plugin_check.mdx +++ b/api_docs/kbn_plugin_check.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-check title: "@kbn/plugin-check" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-check plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check'] --- import kbnPluginCheckObj from './kbn_plugin_check.devdocs.json'; diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 911bb33a53568..2fff1d6e944d5 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-09-11 +date: 2024-09-16 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 eeca08987c373..ae6425a3ddeee 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-09-11 +date: 2024-09-16 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 index 15118e98388bb..3fa2ed6691aa9 100644 --- a/api_docs/kbn_presentation_containers.devdocs.json +++ b/api_docs/kbn_presentation_containers.devdocs.json @@ -1104,23 +1104,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", "deprecated": false, @@ -1733,23 +1733,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<{ [key: string]: unknown; }>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", "<{ [key: string]: unknown; }, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "<{ [key: string]: unknown; }>; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; subscribe: { (observerOrNext?: Partial<", "Observer", "<{ [key: string]: unknown; }>> | ((value: { [key: string]: unknown; }) => void) | undefined): ", "Subscription", "; (next?: ((value: { [key: string]: unknown; }) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", "Subscription", - "; }; toPromise: { (): Promise<{ [key: string]: unknown; } | undefined>; (PromiseCtor: PromiseConstructor): Promise<{ [key: string]: unknown; } | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<{ [key: string]: unknown; } | undefined>; }; }" + "; }; toPromise: { (): Promise<{ [key: string]: unknown; } | undefined>; (PromiseCtor: PromiseConstructor): Promise<{ [key: string]: unknown; } | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<{ [key: string]: unknown; } | undefined>; }; observers: ", + "Observer", + "<{ [key: string]: unknown; }>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<{ [key: string]: unknown; }>; }" ], "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", "deprecated": false, diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx index 96ef346167f9e..13e7aa584b9da 100644 --- a/api_docs/kbn_presentation_containers.mdx +++ b/api_docs/kbn_presentation_containers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-containers title: "@kbn/presentation-containers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-containers plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers'] --- import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json'; diff --git a/api_docs/kbn_presentation_publishing.devdocs.json b/api_docs/kbn_presentation_publishing.devdocs.json index e634c29d675f5..2d485ab66d69e 100644 --- a/api_docs/kbn_presentation_publishing.devdocs.json +++ b/api_docs/kbn_presentation_publishing.devdocs.json @@ -3041,23 +3041,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/interfaces/has_library_transforms.ts", "deprecated": false, @@ -3691,23 +3691,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts", "deprecated": false, @@ -3869,23 +3869,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts", "deprecated": false, @@ -4167,9 +4167,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "[] | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -4189,8 +4189,8 @@ }, "[] | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "dataViews", @@ -4199,9 +4199,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "dataViews", "scope": "common", @@ -4209,9 +4207,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + "[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "dataViews", "scope": "common", @@ -4219,7 +4217,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>> | ((value: ", + "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "dataViews", "scope": "common", @@ -4227,9 +4227,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "dataViews", "scope": "common", @@ -4237,9 +4235,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "dataViews", "scope": "common", @@ -4247,7 +4243,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + "[] | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "dataViews", "scope": "common", @@ -4255,7 +4253,9 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + "[] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "dataViews", "scope": "common", @@ -4263,7 +4263,7 @@ "section": "def-common.DataView", "text": "DataView" }, - "[] | undefined>; }; }" + "[] | undefined>; }" ], "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts", "deprecated": false, @@ -4425,23 +4425,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts", "deprecated": false, @@ -4771,9 +4771,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "[] | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -4793,8 +4793,8 @@ }, "[] | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/es-query", @@ -4803,9 +4803,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4813,9 +4811,9 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + "[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4823,7 +4821,9 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>> | ((value: ", + "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4831,9 +4831,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4841,9 +4839,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4851,7 +4847,9 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + "[] | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4859,7 +4857,9 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + "[] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -4867,7 +4867,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; }; }" + "[] | undefined>; }" ], "path": "packages/presentation/presentation_publishing/interfaces/fetch/publishes_unified_search.ts", "deprecated": false, @@ -5029,23 +5029,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/interfaces/titles/publishes_panel_description.ts", "deprecated": false, @@ -5228,23 +5228,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/interfaces/titles/publishes_panel_title.ts", "deprecated": false, @@ -5392,23 +5392,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/interfaces/titles/publishes_panel_title.ts", "deprecated": false, @@ -5711,9 +5711,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + " | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -5733,8 +5733,8 @@ }, " | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/presentation-publishing", @@ -5743,9 +5743,7 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -5753,9 +5751,9 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -5763,7 +5761,9 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>> | ((value: ", + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -5771,9 +5771,7 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -5781,9 +5779,7 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -5791,7 +5787,9 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + " | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -5799,7 +5797,9 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -5807,7 +5807,7 @@ "section": "def-public.PhaseEvent", "text": "PhaseEvent" }, - " | undefined>; }; }" + " | undefined>; }" ], "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", "deprecated": false, @@ -5971,23 +5971,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts", "deprecated": false, @@ -6287,9 +6287,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + " | undefined> | undefined; lift: (operator: ", "Operator", "<", { @@ -6309,8 +6309,8 @@ }, " | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/es-query", @@ -6319,9 +6319,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6329,9 +6327,9 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6339,7 +6337,9 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>> | ((value: ", + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6347,9 +6347,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined) => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6357,9 +6355,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6367,7 +6363,9 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + " | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6375,7 +6373,9 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6383,7 +6383,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - " | undefined>; }; }" + " | undefined>; }" ], "path": "packages/presentation/presentation_publishing/interfaces/fetch/publishes_unified_search.ts", "deprecated": false, @@ -6566,23 +6566,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<[number, number] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", "<[number, number] | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "<[number, number] | undefined>; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; subscribe: { (observerOrNext?: Partial<", "Observer", "<[number, number] | undefined>> | ((value: [number, number] | undefined) => void) | undefined): ", "Subscription", "; (next?: ((value: [number, number] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", "Subscription", - "; }; toPromise: { (): Promise<[number, number] | undefined>; (PromiseCtor: PromiseConstructor): Promise<[number, number] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<[number, number] | undefined>; }; }" + "; }; toPromise: { (): Promise<[number, number] | undefined>; (PromiseCtor: PromiseConstructor): Promise<[number, number] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<[number, number] | undefined>; }; observers: ", + "Observer", + "<[number, number] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<[number, number] | undefined>; }" ], "path": "packages/presentation/presentation_publishing/interfaces/fetch/publishes_unified_search.ts", "deprecated": false, @@ -6754,23 +6754,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined> | undefined; lift: (operator: ", "Operator", " | undefined, R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - " | undefined>; operator: ", - "Operator", - " | undefined> | undefined; subscribe: { (observerOrNext?: Partial<", + "; subscribe: { (observerOrNext?: Partial<", "Observer", " | undefined>> | ((value: Partial | undefined) => void) | undefined): ", "Subscription", "; (next?: ((value: Partial | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", "Subscription", - "; }; toPromise: { (): Promise | undefined>; (PromiseCtor: PromiseConstructor): Promise | undefined>; (PromiseCtor: PromiseConstructorLike): Promise | undefined>; }; }" + "; }; toPromise: { (): Promise | undefined>; (PromiseCtor: PromiseConstructor): Promise | undefined>; (PromiseCtor: PromiseConstructorLike): Promise | undefined>; }; observers: ", + "Observer", + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + " | undefined>; }" ], "path": "packages/presentation/presentation_publishing/interfaces/publishes_unsaved_changes.ts", "deprecated": false, @@ -7070,9 +7070,9 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "<", + "; }; operator: ", + "Operator", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "> | undefined; lift: (operator: ", "Operator", "<", { @@ -7092,8 +7092,8 @@ }, ", R>) => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", + "; subscribe: { (observerOrNext?: Partial<", + "Observer", "<", { "pluginId": "@kbn/presentation-publishing", @@ -7102,9 +7102,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ">; operator: ", - "Operator", - "> | ((value: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -7112,9 +7110,9 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - "> | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", + ") => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -7122,7 +7120,9 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ">> | ((value: ", + ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -7130,9 +7130,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ") => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -7140,9 +7138,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -7150,7 +7146,9 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + " | undefined>; }; observers: ", + "Observer", + "<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -7158,7 +7156,9 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + ">[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", { "pluginId": "@kbn/presentation-publishing", "scope": "public", @@ -7166,7 +7166,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - " | undefined>; }; }" + ">; }" ], "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", "deprecated": false, @@ -7835,23 +7835,23 @@ "OperatorFunction", "[]): ", "Observable", - "; }; observers: ", - "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "; }; operator: ", + "Operator", + " | undefined; lift: (operator: ", "Operator", ") => ", "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + "; 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; }; }" + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; }" ], "path": "packages/presentation/presentation_publishing/publishing_subject/types.ts", "deprecated": false, diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx index 58f78ea73efb1..dd721dfe4a279 100644 --- a/api_docs/kbn_presentation_publishing.mdx +++ b/api_docs/kbn_presentation_publishing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-publishing title: "@kbn/presentation-publishing" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-publishing plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing'] --- import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.devdocs.json b/api_docs/kbn_profiling_utils.devdocs.json index 8265e744445e8..cdb1016c3ce9a 100644 --- a/api_docs/kbn_profiling_utils.devdocs.json +++ b/api_docs/kbn_profiling_utils.devdocs.json @@ -1536,7 +1536,7 @@ "section": "def-common.BaseFlameGraph", "text": "BaseFlameGraph" }, - ", \"AnnualCO2TonsExclusive\" | \"AnnualCO2TonsInclusive\" | \"SelfAnnualCO2Tons\" | \"TotalAnnualCO2Tons\" | \"AnnualCostsUSDInclusive\" | \"AnnualCostsUSDExclusive\">" + ", \"AnnualCO2TonsExclusive\" | \"AnnualCO2TonsInclusive\" | \"AnnualCostsUSDInclusive\" | \"AnnualCostsUSDExclusive\" | \"SelfAnnualCO2Tons\" | \"TotalAnnualCO2Tons\">" ], "path": "packages/kbn-profiling-utils/common/flamegraph.ts", "deprecated": false, diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index a2923217c2d74..bb4c6e4c39841 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.devdocs.json'; diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index e985a7545c790..09db5d7409200 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-09-11 +date: 2024-09-16 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 48dc483b1704e..2148a7e0ded75 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_hooks.mdx b/api_docs/kbn_react_hooks.mdx index a791bd8b2eb89..40380736beff3 100644 --- a/api_docs/kbn_react_hooks.mdx +++ b/api_docs/kbn_react_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-hooks title: "@kbn/react-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-hooks plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-hooks'] --- import kbnReactHooksObj from './kbn_react_hooks.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index f0e97adb1db0a..55f51bd11645f 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-09-11 +date: 2024-09-16 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 b5be6c6439abe..e2a6cebb95242 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-09-11 +date: 2024-09-16 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 1956d8a324342..b8bdb238e53a8 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-09-11 +date: 2024-09-16 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 491afe6174136..ace4517630f6a 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-09-11 +date: 2024-09-16 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 a1d41b00b2570..073ca0446fc46 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-09-11 +date: 2024-09-16 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 3c4117a306bcf..d29397ac2a842 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_recently_accessed.mdx b/api_docs/kbn_recently_accessed.mdx index 552afa33c3f79..51c97e5daa56d 100644 --- a/api_docs/kbn_recently_accessed.mdx +++ b/api_docs/kbn_recently_accessed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-recently-accessed title: "@kbn/recently-accessed" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/recently-accessed plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/recently-accessed'] --- import kbnRecentlyAccessedObj from './kbn_recently_accessed.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 29b68b3130743..30c6e46fa546a 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-09-11 +date: 2024-09-16 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 13281b90b02fe..6f8714856f53c 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-09-11 +date: 2024-09-16 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 ef6c27bab755e..b34c99ec03f64 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-09-11 +date: 2024-09-16 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 0f1548b13a686..0aabbd83f2723 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-09-11 +date: 2024-09-16 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 18ed2ec867542..41f81fe8c25ad 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_csv_share_panel.mdx b/api_docs/kbn_reporting_csv_share_panel.mdx index adbb03892ab9d..f82a352381a1d 100644 --- a/api_docs/kbn_reporting_csv_share_panel.mdx +++ b/api_docs/kbn_reporting_csv_share_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-csv-share-panel title: "@kbn/reporting-csv-share-panel" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-csv-share-panel plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-csv-share-panel'] --- import kbnReportingCsvSharePanelObj from './kbn_reporting_csv_share_panel.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx index dc7e863c32b83..ea7dc36c745bc 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv'] --- import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx index 70119876e3f96..e7714d27cc412 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv-common'] --- import kbnReportingExportTypesCsvCommonObj from './kbn_reporting_export_types_csv_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx index 44a92bfec8ea6..65f7222f241c0 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf'] --- import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx index e12b3126d4cb6..cc70475201a59 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf-common'] --- import kbnReportingExportTypesPdfCommonObj from './kbn_reporting_export_types_pdf_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx index ae2d17b1f3c42..1d3d5b1947770 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png'] --- import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx index d381b955bd7d8..112cd2c7c7aad 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png-common'] --- import kbnReportingExportTypesPngCommonObj from './kbn_reporting_export_types_png_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx index bc5f5bfcb2076..36edcb8746f08 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-09-11 +date: 2024-09-16 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 db924d7c23b8b..af67a4cfe1d01 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public'] --- import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json'; diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx index d6e183d318411..0f997482148ba 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server'] --- import kbnReportingServerObj from './kbn_reporting_server.devdocs.json'; diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index 7f5cd761aa23e..7af8aa71f3636 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_response_ops_feature_flag_service.mdx b/api_docs/kbn_response_ops_feature_flag_service.mdx index 6da263108cb67..057137e528c94 100644 --- a/api_docs/kbn_response_ops_feature_flag_service.mdx +++ b/api_docs/kbn_response_ops_feature_flag_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-response-ops-feature-flag-service title: "@kbn/response-ops-feature-flag-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/response-ops-feature-flag-service plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/response-ops-feature-flag-service'] --- import kbnResponseOpsFeatureFlagServiceObj from './kbn_response_ops_feature_flag_service.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index 1649e19e0f9e2..6619bbbd814d7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_rollup.mdx b/api_docs/kbn_rollup.mdx index 7bc8133a3692d..8f0b632a76327 100644 --- a/api_docs/kbn_rollup.mdx +++ b/api_docs/kbn_rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rollup title: "@kbn/rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rollup plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rollup'] --- import kbnRollupObj from './kbn_rollup.devdocs.json'; diff --git a/api_docs/kbn_router_to_openapispec.mdx b/api_docs/kbn_router_to_openapispec.mdx index fc9f07b486cef..93716fe82e622 100644 --- a/api_docs/kbn_router_to_openapispec.mdx +++ b/api_docs/kbn_router_to_openapispec.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-to-openapispec title: "@kbn/router-to-openapispec" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-to-openapispec plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/router-to-openapispec'] --- import kbnRouterToOpenapispecObj from './kbn_router_to_openapispec.devdocs.json'; diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx index a1234177ed7fb..737b5c2d6c9ef 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-09-11 +date: 2024-09-16 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 7db91bf4aa269..283721e4c423e 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index 9b9132ca53dc1..9fe61f49924a5 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-09-11 +date: 2024-09-16 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 a432e4ee0a5a4..4b81761d07012 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_screenshotting_server.mdx b/api_docs/kbn_screenshotting_server.mdx index 0a7dc3a7fcb34..6c1db5a3e311a 100644 --- a/api_docs/kbn_screenshotting_server.mdx +++ b/api_docs/kbn_screenshotting_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-screenshotting-server title: "@kbn/screenshotting-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/screenshotting-server plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/screenshotting-server'] --- import kbnScreenshottingServerObj from './kbn_screenshotting_server.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index fce8cb9728aee..61b49f67dfea9 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 894ccf68c036b..b0024e0ecfb68 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx index 6496bb726f6ed..cadaf0a1ce645 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-09-11 +date: 2024-09-16 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 0bd3342251fc2..c4a98588b7464 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-09-11 +date: 2024-09-16 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 0d78251da8635..477b14f14d826 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_search_types.mdx b/api_docs/kbn_search_types.mdx index 05689d95c66f9..df104962a59dc 100644 --- a/api_docs/kbn_search_types.mdx +++ b/api_docs/kbn_search_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-types title: "@kbn/search-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-types plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-types'] --- import kbnSearchTypesObj from './kbn_search_types.devdocs.json'; diff --git a/api_docs/kbn_security_api_key_management.devdocs.json b/api_docs/kbn_security_api_key_management.devdocs.json index ec73282d056d2..192cf945a9e1b 100644 --- a/api_docs/kbn_security_api_key_management.devdocs.json +++ b/api_docs/kbn_security_api_key_management.devdocs.json @@ -976,7 +976,7 @@ "label": "sort", "description": [], "signature": [ - "{ field: \"id\" | \"type\" | \"name\" | \"username\" | \"profile_uid\" | \"metadata\" | \"expired\" | \"creation\" | \"realm\" | \"role_descriptors\" | \"expiration\" | \"invalidated\" | \"realm_type\" | \"limited_by\" | \"_sort\"; direction: \"asc\" | \"desc\"; }" + "{ field: \"id\" | \"type\" | \"name\" | \"username\" | \"metadata\" | \"profile_uid\" | \"expired\" | \"creation\" | \"realm\" | \"role_descriptors\" | \"expiration\" | \"invalidated\" | \"realm_type\" | \"limited_by\" | \"_sort\"; direction: \"asc\" | \"desc\"; }" ], "path": "x-pack/packages/security/api_key_management/src/components/api_keys_api_client.ts", "deprecated": false, @@ -1185,7 +1185,7 @@ "label": "QueryApiKeySortOptions", "description": [], "signature": [ - "{ field: \"id\" | \"type\" | \"name\" | \"username\" | \"profile_uid\" | \"metadata\" | \"expired\" | \"creation\" | \"realm\" | \"role_descriptors\" | \"expiration\" | \"invalidated\" | \"realm_type\" | \"limited_by\" | \"_sort\"; direction: \"asc\" | \"desc\"; }" + "{ field: \"id\" | \"type\" | \"name\" | \"username\" | \"metadata\" | \"profile_uid\" | \"expired\" | \"creation\" | \"realm\" | \"role_descriptors\" | \"expiration\" | \"invalidated\" | \"realm_type\" | \"limited_by\" | \"_sort\"; direction: \"asc\" | \"desc\"; }" ], "path": "x-pack/packages/security/api_key_management/src/components/api_keys_api_client.ts", "deprecated": false, diff --git a/api_docs/kbn_security_api_key_management.mdx b/api_docs/kbn_security_api_key_management.mdx index 59631ee8eb734..e36253329d1aa 100644 --- a/api_docs/kbn_security_api_key_management.mdx +++ b/api_docs/kbn_security_api_key_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-api-key-management title: "@kbn/security-api-key-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-api-key-management plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-api-key-management'] --- import kbnSecurityApiKeyManagementObj from './kbn_security_api_key_management.devdocs.json'; diff --git a/api_docs/kbn_security_authorization_core.mdx b/api_docs/kbn_security_authorization_core.mdx index a09396c23b6d9..78d9f92936d75 100644 --- a/api_docs/kbn_security_authorization_core.mdx +++ b/api_docs/kbn_security_authorization_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-authorization-core title: "@kbn/security-authorization-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-authorization-core plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-authorization-core'] --- import kbnSecurityAuthorizationCoreObj from './kbn_security_authorization_core.devdocs.json'; diff --git a/api_docs/kbn_security_form_components.mdx b/api_docs/kbn_security_form_components.mdx index 21c53ff7e5db7..7b7e5b8ce9a7b 100644 --- a/api_docs/kbn_security_form_components.mdx +++ b/api_docs/kbn_security_form_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-form-components title: "@kbn/security-form-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-form-components plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-form-components'] --- import kbnSecurityFormComponentsObj from './kbn_security_form_components.devdocs.json'; diff --git a/api_docs/kbn_security_hardening.mdx b/api_docs/kbn_security_hardening.mdx index 90a1de0b828df..86caab608d898 100644 --- a/api_docs/kbn_security_hardening.mdx +++ b/api_docs/kbn_security_hardening.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-hardening title: "@kbn/security-hardening" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-hardening plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-hardening'] --- import kbnSecurityHardeningObj from './kbn_security_hardening.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx index b9e1931a3b7de..ad3255608e237 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-09-11 +date: 2024-09-16 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 d8cb7a016b322..85c99b584487d 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_security_plugin_types_server.devdocs.json index 159f2b5e17beb..ce04849d4bd72 100644 --- a/api_docs/kbn_security_plugin_types_server.devdocs.json +++ b/api_docs/kbn_security_plugin_types_server.devdocs.json @@ -4284,26 +4284,6 @@ "plugin": "cloudSecurityPosture", "path": "x-pack/plugins/cloud_security_posture/server/routes/setup_routes.ts" }, - { - "plugin": "serverlessSearch", - "path": "x-pack/plugins/serverless_search/server/routes/api_key_routes.ts" - }, - { - "plugin": "transform", - "path": "x-pack/plugins/transform/server/routes/api/reauthorize_transforms/route_handler_factory.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" - }, { "plugin": "entityManager", "path": "x-pack/plugins/observability_solution/entity_manager/server/lib/auth/api_key/api_key.ts" @@ -4324,6 +4304,26 @@ "plugin": "entityManager", "path": "x-pack/plugins/observability_solution/entity_manager/server/routes/enablement/disable.ts" }, + { + "plugin": "serverlessSearch", + "path": "x-pack/plugins/serverless_search/server/routes/api_key_routes.ts" + }, + { + "plugin": "transform", + "path": "x-pack/plugins/transform/server/routes/api/reauthorize_transforms/route_handler_factory.ts" + }, + { + "plugin": "upgradeAssistant", + "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" + }, + { + "plugin": "upgradeAssistant", + "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" + }, + { + "plugin": "upgradeAssistant", + "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" + }, { "plugin": "apm", "path": "x-pack/plugins/observability_solution/apm/server/lib/helpers/get_random_sampler/index.ts" diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx index 3bb0976421b6e..3c66a756e419b 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server'] --- import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json'; diff --git a/api_docs/kbn_security_role_management_model.mdx b/api_docs/kbn_security_role_management_model.mdx index d307440e04e0e..d4a98e60298f2 100644 --- a/api_docs/kbn_security_role_management_model.mdx +++ b/api_docs/kbn_security_role_management_model.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-role-management-model title: "@kbn/security-role-management-model" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-role-management-model plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-role-management-model'] --- import kbnSecurityRoleManagementModelObj from './kbn_security_role_management_model.devdocs.json'; diff --git a/api_docs/kbn_security_solution_common.mdx b/api_docs/kbn_security_solution_common.mdx index 9bc2e092f4a59..8e762dab8e569 100644 --- a/api_docs/kbn_security_solution_common.mdx +++ b/api_docs/kbn_security_solution_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-common title: "@kbn/security-solution-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-common plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-common'] --- import kbnSecuritySolutionCommonObj from './kbn_security_solution_common.devdocs.json'; diff --git a/api_docs/kbn_security_solution_distribution_bar.mdx b/api_docs/kbn_security_solution_distribution_bar.mdx index 489cfd1fa02b9..962163387af86 100644 --- a/api_docs/kbn_security_solution_distribution_bar.mdx +++ b/api_docs/kbn_security_solution_distribution_bar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-distribution-bar title: "@kbn/security-solution-distribution-bar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-distribution-bar plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-distribution-bar'] --- import kbnSecuritySolutionDistributionBarObj from './kbn_security_solution_distribution_bar.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.devdocs.json b/api_docs/kbn_security_solution_features.devdocs.json index e0e229df45a39..09c15deddd86b 100644 --- a/api_docs/kbn_security_solution_features.devdocs.json +++ b/api_docs/kbn_security_solution_features.devdocs.json @@ -49,7 +49,15 @@ "label": "baseKibanaFeature", "description": [], "signature": [ - "{ id: string; order?: number | undefined; name: string; alerting?: readonly string[] | undefined; cases?: readonly string[] | undefined; hidden?: boolean | undefined; description?: string | undefined; category: ", + "{ id: string; scope?: readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined; order?: number | undefined; name: string; alerting?: readonly string[] | undefined; cases?: readonly string[] | undefined; hidden?: boolean | undefined; description?: string | undefined; category: ", { "pluginId": "@kbn/core-application-common", "scope": "common", @@ -57,7 +65,7 @@ "section": "def-common.AppCategory", "text": "AppCategory" }, - "; management?: { [sectionId: string]: readonly string[]; } | undefined; privileges: { all: ", + "; management?: { [sectionId: string]: readonly string[]; } | undefined; app: readonly string[]; privileges: { all: ", { "pluginId": "features", "scope": "common", @@ -73,7 +81,7 @@ "section": "def-common.FeatureKibanaPrivileges", "text": "FeatureKibanaPrivileges" }, - "; } | null; catalogue?: readonly string[] | undefined; excludeFromBasePrivileges?: boolean | undefined; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; app: readonly string[]; privilegesTooltip?: string | undefined; reserved?: { description: string; privileges: readonly ", + "; } | null; catalogue?: readonly string[] | undefined; excludeFromBasePrivileges?: boolean | undefined; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; privilegesTooltip?: string | undefined; reserved?: { description: string; privileges: readonly ", "ReservedKibanaPrivilege", "[]; } | undefined; }" ], @@ -154,7 +162,15 @@ "label": "BaseKibanaFeatureConfig", "description": [], "signature": [ - "{ id: string; order?: number | undefined; name: string; alerting?: readonly string[] | undefined; cases?: readonly string[] | undefined; hidden?: boolean | undefined; description?: string | undefined; category: ", + "{ id: string; scope?: readonly ", + { + "pluginId": "features", + "scope": "common", + "docId": "kibFeaturesPluginApi", + "section": "def-common.KibanaFeatureScope", + "text": "KibanaFeatureScope" + }, + "[] | undefined; order?: number | undefined; name: string; alerting?: readonly string[] | undefined; cases?: readonly string[] | undefined; hidden?: boolean | undefined; description?: string | undefined; category: ", { "pluginId": "@kbn/core-application-common", "scope": "common", @@ -162,7 +178,7 @@ "section": "def-common.AppCategory", "text": "AppCategory" }, - "; management?: { [sectionId: string]: readonly string[]; } | undefined; privileges: { all: ", + "; management?: { [sectionId: string]: readonly string[]; } | undefined; app: readonly string[]; privileges: { all: ", { "pluginId": "features", "scope": "common", @@ -178,7 +194,7 @@ "section": "def-common.FeatureKibanaPrivileges", "text": "FeatureKibanaPrivileges" }, - "; } | null; catalogue?: readonly string[] | undefined; excludeFromBasePrivileges?: boolean | undefined; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; app: readonly string[]; privilegesTooltip?: string | undefined; reserved?: { description: string; privileges: readonly ", + "; } | null; catalogue?: readonly string[] | undefined; excludeFromBasePrivileges?: boolean | undefined; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; privilegesTooltip?: string | undefined; reserved?: { description: string; privileges: readonly ", "ReservedKibanaPrivilege", "[]; } | undefined; }" ], @@ -461,7 +477,7 @@ "section": "def-common.RecursivePartial", "text": "RecursivePartial" }, - "<{ [sectionId: string]: readonly string[]; } | undefined>; ui?: readonly string[] | undefined; catalogue?: ", + "<{ [sectionId: string]: readonly string[]; } | undefined>; app?: ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -469,7 +485,7 @@ "section": "def-common.RecursivePartial", "text": "RecursivePartial" }, - "; app?: ", + "; ui?: readonly string[] | undefined; catalogue?: ", { "pluginId": "@kbn/utility-types", "scope": "common", diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index 080a524bbc9dd..bd02234340faf 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-09-11 +date: 2024-09-16 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 2e471eac37a7e..56050c6d5522f 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-09-11 +date: 2024-09-16 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 c4f5bd19ab9c6..e4b1ba0043b4c 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-09-11 +date: 2024-09-16 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 b21fa523bf8e7..0435006008eeb 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-09-11 +date: 2024-09-16 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_security_ui_components.mdx b/api_docs/kbn_security_ui_components.mdx index a9c515db7212f..0cbdd4041d663 100644 --- a/api_docs/kbn_security_ui_components.mdx +++ b/api_docs/kbn_security_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-ui-components title: "@kbn/security-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-ui-components plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-ui-components'] --- import kbnSecurityUiComponentsObj from './kbn_security_ui_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index 8464aff0fd63f..9319edbdb175f 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-09-11 +date: 2024-09-16 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 c30829a017560..c074ff6dee2dc 100644 --- a/api_docs/kbn_securitysolution_data_table.devdocs.json +++ b/api_docs/kbn_securitysolution_data_table.devdocs.json @@ -1256,7 +1256,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined; readonly dataViewId: string | null; readonly initialized?: boolean | undefined; readonly defaultColumns: (Pick<", + "[] | undefined; readonly initialized?: boolean | undefined; readonly dataViewId: string | null; readonly defaultColumns: (Pick<", "EuiDataGridColumn", ", \"id\" | \"display\" | \"displayAsText\" | \"initialWidth\"> & Pick<", "EuiDataGridColumn", diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 28c96dfad9133..f02a28ba3ce5d 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-09-11 +date: 2024-09-16 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 aefe5052bcb99..20fb15b9bfcb2 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-09-11 +date: 2024-09-16 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 3f719bce0c4c5..6750b47129f18 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-09-11 +date: 2024-09-16 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 30e53edc6256b..66914d0cfde5f 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.devdocs.json +++ b/api_docs/kbn_securitysolution_exception_list_components.devdocs.json @@ -851,7 +851,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"metadata\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -865,7 +865,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"metadata\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -1004,7 +1004,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"metadata\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1018,7 +1018,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"metadata\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1144,7 +1144,7 @@ "label": "showValueListModal", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" + "\"symbol\" | \"object\" | \"source\" | \"meta\" | \"desc\" | \"filter\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"text\" | \"map\" | \"head\" | \"slot\" | \"style\" | \"title\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"q\" | \"body\" | \"html\" | \"stop\" | \"main\" | \"path\" | \"form\" | React.ComponentType | \"line\" | \"rect\" | \"code\" | \"ruby\" | \"label\" | \"metadata\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"base\" | \"s\" | \"legend\" | \"canvas\" | \"svg\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"select\" | \"view\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"table\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"i\" | \"iframe\" | \"img\" | \"ins\" | \"kbd\" | \"keygen\" | \"li\" | \"mark\" | \"menuitem\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"param\" | \"picture\" | \"pre\" | \"rp\" | \"rt\" | \"samp\" | \"section\" | \"strong\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"animate\" | \"animateMotion\" | \"animateTransform\" | \"circle\" | \"clipPath\" | \"defs\" | \"ellipse\" | \"feBlend\" | \"feColorMatrix\" | \"feComponentTransfer\" | \"feComposite\" | \"feConvolveMatrix\" | \"feDiffuseLighting\" | \"feDisplacementMap\" | \"feDistantLight\" | \"feDropShadow\" | \"feFlood\" | \"feFuncA\" | \"feFuncB\" | \"feFuncG\" | \"feFuncR\" | \"feGaussianBlur\" | \"feImage\" | \"feMerge\" | \"feMergeNode\" | \"feMorphology\" | \"feOffset\" | \"fePointLight\" | \"feSpecularLighting\" | \"feSpotLight\" | \"feTile\" | \"feTurbulence\" | \"foreignObject\" | \"g\" | \"linearGradient\" | \"marker\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\"" ], "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 1ecdfe7612534..df86e5b288cbe 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index bf37c598ad9dd..e6f496c232df4 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-09-11 +date: 2024-09-16 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 9581088b7a95a..6129366fe2202 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-io-ts-alerting-types'] --- import kbnSecuritysolutionIoTsAlertingTypesObj from './kbn_securitysolution_io_ts_alerting_types.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index 54744d48c4535..61731c0bb3958 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-09-11 +date: 2024-09-16 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 8ef4342a6228a..d3f90b7e0f14c 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-09-11 +date: 2024-09-16 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 45393712d7f94..59297b772b80b 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-09-11 +date: 2024-09-16 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 fcb4c917e7731..82e4ab04c1cf7 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_securitysolution_list_constants.devdocs.json index f4fe485c20c72..e1069bb51c152 100644 --- a/api_docs/kbn_securitysolution_list_constants.devdocs.json +++ b/api_docs/kbn_securitysolution_list_constants.devdocs.json @@ -103,14 +103,6 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/endpoint/lib/artifacts/lists.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lists_integration/endpoint/validators/blocklist_validator.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lists_integration/endpoint/validators/blocklist_validator.ts" - }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/common/endpoint/data_generators/exceptions_list_item_generator.ts" diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index b742c65091e90..3bbd78305ae85 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-09-11 +date: 2024-09-16 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 0f10f8a5586b4..41744fbb4fc43 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-09-11 +date: 2024-09-16 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 8786185fc46be..569a567200fac 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-09-11 +date: 2024-09-16 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 896a62b87bf93..cacd67d7d1392 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-09-11 +date: 2024-09-16 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 5e84835ae87f9..7ab5bc41ec5f6 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-09-11 +date: 2024-09-16 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 deee7dea73f95..3923668aa4222 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-09-11 +date: 2024-09-16 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 b9cabedba5191..16166c272e785 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-09-11 +date: 2024-09-16 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 68fa7221f6e1c..274e388eb0545 100644 --- a/api_docs/kbn_server_route_repository.devdocs.json +++ b/api_docs/kbn_server_route_repository.devdocs.json @@ -19,31 +19,9 @@ "label": "createServerRouteFactory", "description": [], "signature": [ - "() => (route: ", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ServerRoute", - "text": "ServerRoute" - }, - ") => Record>" + "() => ", + "CreateServerRouteFactory", + "" ], "path": "packages/kbn-server-route-repository/src/create_server_route_factory.ts", "deprecated": false, @@ -199,7 +177,15 @@ "section": "def-server.CoreSetup", "text": "CoreSetup" }, - "; repository: Record Promise; } & ", + "; repository: Record; logger: ", + ">>; logger: ", { "pluginId": "@kbn/logging", "scope": "common", @@ -261,7 +247,15 @@ "label": "repository", "description": [], "signature": [ - "{ [x: string]: { endpoint: string; params?: any; handler: ({}: any) => Promise; } & ", + "{ [x: string]: ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "; }" ], "path": "packages/kbn-server-route-repository/src/register_routes.ts", "deprecated": false, @@ -437,6 +431,176 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.RouteRepositoryClient", + "type": "Interface", + "tags": [], + "label": "RouteRepositoryClient", + "description": [], + "signature": [ + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteRepositoryClient", + "text": "RouteRepositoryClient" + }, + "" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.RouteRepositoryClient.fetch", + "type": "Function", + "tags": [], + "label": "fetch", + "description": [], + "signature": [ + ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>) => Promise<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ReturnOf", + "text": "ReturnOf" + }, + ">" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.RouteRepositoryClient.fetch.$1", + "type": "Uncategorized", + "tags": [], + "label": "endpoint", + "description": [], + "signature": [ + "TEndpoint" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.RouteRepositoryClient.fetch.$2", + "type": "Uncategorized", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.RouteRepositoryClient.stream", + "type": "Function", + "tags": [], + "label": "stream", + "description": [], + "signature": [ + ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>) => ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ReturnOf", + "text": "ReturnOf" + }, + " extends ", + "Observable", + " ? TReturnType extends Record & { type: string; } ? ", + "Observable", + " : never : never" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.RouteRepositoryClient.stream.$1", + "type": "Uncategorized", + "tags": [], + "label": "endpoint", + "description": [], + "signature": [ + "TEndpoint" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/server-route-repository", + "id": "def-server.RouteRepositoryClient.stream.$2", + "type": "Uncategorized", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/server-route-repository", "id": "def-server.RouteState", @@ -476,7 +640,15 @@ "label": "ClientRequestParamsOf", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + "TServerRouteRepository[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " Promise; } & ", + " | undefined, any, any, ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -492,7 +664,7 @@ "section": "def-common.ServerRouteCreateOptions", "text": "ServerRouteCreateOptions" }, - " ? TRouteParamsRT extends ", + "> ? TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -500,7 +672,7 @@ "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, - " ? ClientRequestParamsOfType : {} : never" + " ? ClientRequestParamsOfType : TRouteParamsRT extends undefined ? {} : never : never" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, @@ -515,7 +687,15 @@ "label": "DecodedRequestParamsOf", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + "TServerRouteRepository[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " Promise; } & ", + " | undefined, any, any, ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -531,7 +711,7 @@ "section": "def-common.ServerRouteCreateOptions", "text": "ServerRouteCreateOptions" }, - " ? TRouteParamsRT extends ", + "> ? TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -571,7 +751,11 @@ "signature": [ "Omit<", "Type", - "<{ path?: any; query?: any; body?: any; }, { path?: any; query?: any; body?: any; }, unknown>, \"encode\" | \"asEncoder\"> & { encode: ", + "<", + "RouteParams", + ", ", + "RouteParams", + ", unknown>, \"encode\" | \"asEncoder\"> & { encode: ", "Encode", "; asEncoder: () => ", "Encoder", @@ -590,7 +774,15 @@ "label": "ReturnOf", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", + "TServerRouteRepository[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -652,93 +844,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "@kbn/server-route-repository", - "id": "def-server.RouteRepositoryClient", - "type": "Type", - "tags": [], - "label": "RouteRepositoryClient", - "description": [], - "signature": [ - ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions>) => Promise<", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ReturnOf", - "text": "ReturnOf" - }, - ">" - ], - "path": "packages/kbn-server-route-repository-utils/src/typings.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "@kbn/server-route-repository", - "id": "def-server.RouteRepositoryClient.$1", - "type": "Uncategorized", - "tags": [], - "label": "endpoint", - "description": [], - "signature": [ - "TEndpoint" - ], - "path": "packages/kbn-server-route-repository-utils/src/typings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/server-route-repository", - "id": "def-server.RouteRepositoryClient.$2", - "type": "Uncategorized", - "tags": [], - "label": "args", - "description": [], - "signature": [ - "RequiredKeys", - "<", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions> extends never ? [] | [", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions] : [", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions]" - ], - "path": "packages/kbn-server-route-repository-utils/src/typings.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/server-route-repository", "id": "def-server.ServerRoute", @@ -747,7 +852,7 @@ "label": "ServerRoute", "description": [], "signature": [ - "ValidateEndpoint extends true ? { endpoint: TEndpoint; params?: TRouteParamsRT | undefined; handler: ({}: TRouteHandlerResources & (TRouteParamsRT extends ", + "{ endpoint: TEndpoint; handler: ServerRouteHandler; } & TRouteCreateOptions & (TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -755,7 +860,7 @@ "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, - " ? DecodedRequestParamsOfType : {})) => Promise; } & TRouteCreateOptions : never" + " ? { params: TRouteParamsRT; } : {})" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, @@ -770,7 +875,15 @@ "label": "ServerRouteRepository", "description": [], "signature": [ - "{ [x: string]: { endpoint: string; params?: ", + "{ [x: string]: ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " Promise; } & Record; }" + " | undefined, any, any, Record>; }" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index 31332cb549070..ec9a2ec6575a8 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 38 | 0 | 38 | 0 | +| 42 | 0 | 42 | 0 | ## Server diff --git a/api_docs/kbn_server_route_repository_client.devdocs.json b/api_docs/kbn_server_route_repository_client.devdocs.json index e1f9ca04f2414..be6f4e7ecf2d7 100644 --- a/api_docs/kbn_server_route_repository_client.devdocs.json +++ b/api_docs/kbn_server_route_repository_client.devdocs.json @@ -27,7 +27,7 @@ "section": "def-public.CoreSetup", "text": "CoreSetup" }, - ") => { fetch: ", + ") => ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -35,7 +35,7 @@ "section": "def-common.RouteRepositoryClient", "text": "RouteRepositoryClient" }, - "; }" + "" ], "path": "packages/kbn-server-route-repository-client/src/create_repository_client.ts", "deprecated": false, @@ -107,134 +107,143 @@ ], "returnComment": [], "initialIsOpen": false - } - ], - "interfaces": [], - "enums": [], - "misc": [ + }, { "parentPluginId": "@kbn/server-route-repository-client", - "id": "def-public.ClientRequestParamsOf", - "type": "Type", + "id": "def-public.isRequestAbortedError", + "type": "Function", "tags": [], - "label": "ClientRequestParamsOf", + "label": "isRequestAbortedError", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.RouteParamsRT", - "text": "RouteParamsRT" - }, - " | undefined | undefined; handler: ({}: any) => Promise; } & ", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ServerRouteCreateOptions", - "text": "ServerRouteCreateOptions" - }, - " ? TRouteParamsRT extends ", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.RouteParamsRT", - "text": "RouteParamsRT" - }, - " ? ClientRequestParamsOfType : {} : never" + "(error: unknown) => boolean" ], - "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "path": "packages/kbn-server-route-repository-client/src/is_request_aborted_error.ts", "deprecated": false, "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/server-route-repository-client", - "id": "def-public.DefaultClientOptions", - "type": "Type", - "tags": [], - "label": "DefaultClientOptions", - "description": [], - "signature": [ + "children": [ { - "pluginId": "@kbn/core-http-browser", - "scope": "public", - "docId": "kibKbnCoreHttpBrowserPluginApi", - "section": "def-public.HttpFetchOptions", - "text": "HttpFetchOptions" + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.isRequestAbortedError.$1", + "type": "Unknown", + "tags": [], + "label": "error", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-server-route-repository-client/src/is_request_aborted_error.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], - "path": "packages/kbn-server-route-repository-utils/src/typings.ts", - "deprecated": false, - "trackAdoption": false, + "returnComment": [], "initialIsOpen": false - }, + } + ], + "interfaces": [ { "parentPluginId": "@kbn/server-route-repository-client", "id": "def-public.RouteRepositoryClient", - "type": "Type", + "type": "Interface", "tags": [], "label": "RouteRepositoryClient", "description": [], "signature": [ - ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions>) => Promise<", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ReturnOf", - "text": "ReturnOf" + "section": "def-common.RouteRepositoryClient", + "text": "RouteRepositoryClient" }, - ">" + "" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, "trackAdoption": false, - "returnComment": [], "children": [ { "parentPluginId": "@kbn/server-route-repository-client", - "id": "def-public.RouteRepositoryClient.$1", - "type": "Uncategorized", + "id": "def-public.RouteRepositoryClient.fetch", + "type": "Function", "tags": [], - "label": "endpoint", + "label": "fetch", "description": [], "signature": [ - "TEndpoint" + ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>) => Promise<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ReturnOf", + "text": "ReturnOf" + }, + ">" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.RouteRepositoryClient.fetch.$1", + "type": "Uncategorized", + "tags": [], + "label": "endpoint", + "description": [], + "signature": [ + "TEndpoint" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.RouteRepositoryClient.fetch.$2", + "type": "Uncategorized", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] }, { "parentPluginId": "@kbn/server-route-repository-client", - "id": "def-public.RouteRepositoryClient.$2", - "type": "Uncategorized", + "id": "def-public.RouteRepositoryClient.stream", + "type": "Function", "tags": [], - "label": "args", + "label": "stream", "description": [], "signature": [ - "RequiredKeys", - "<", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions> extends never ? [] | [", + ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -242,24 +251,140 @@ "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, - " & TAdditionalClientOptions] : [", + " & TAdditionalClientOptions>) => ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" + "section": "def-common.ReturnOf", + "text": "ReturnOf" }, - " & TAdditionalClientOptions]" + " extends ", + "Observable", + " ? TReturnType extends Record & { type: string; } ? ", + "Observable", + " : never : never" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.RouteRepositoryClient.stream.$1", + "type": "Uncategorized", + "tags": [], + "label": "endpoint", + "description": [], + "signature": [ + "TEndpoint" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.RouteRepositoryClient.stream.$2", + "type": "Uncategorized", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false } ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.ClientRequestParamsOf", + "type": "Type", + "tags": [], + "label": "ClientRequestParamsOf", + "description": [], + "signature": [ + "TServerRouteRepository[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " ? TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " ? ClientRequestParamsOfType : TRouteParamsRT extends undefined ? {} : never : never" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/server-route-repository-client", + "id": "def-public.DefaultClientOptions", + "type": "Type", + "tags": [], + "label": "DefaultClientOptions", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-http-browser", + "scope": "public", + "docId": "kibKbnCoreHttpBrowserPluginApi", + "section": "def-public.HttpFetchOptions", + "text": "HttpFetchOptions" + } + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "objects": [] }, "server": { diff --git a/api_docs/kbn_server_route_repository_client.mdx b/api_docs/kbn_server_route_repository_client.mdx index 5c8fd9630cc2e..02b646ab0643d 100644 --- a/api_docs/kbn_server_route_repository_client.mdx +++ b/api_docs/kbn_server_route_repository_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository-client title: "@kbn/server-route-repository-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository-client plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository-client'] --- import kbnServerRouteRepositoryClientObj from './kbn_server_route_repository_client.devdocs.json'; @@ -21,13 +21,16 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 9 | 0 | 9 | 0 | +| 15 | 0 | 15 | 0 | ## Client ### Functions +### Interfaces + + ### Consts, variables and types diff --git a/api_docs/kbn_server_route_repository_utils.devdocs.json b/api_docs/kbn_server_route_repository_utils.devdocs.json index b5c3169828c1a..20111453d650d 100644 --- a/api_docs/kbn_server_route_repository_utils.devdocs.json +++ b/api_docs/kbn_server_route_repository_utils.devdocs.json @@ -189,6 +189,176 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient", + "type": "Interface", + "tags": [], + "label": "RouteRepositoryClient", + "description": [], + "signature": [ + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.RouteRepositoryClient", + "text": "RouteRepositoryClient" + }, + "" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient.fetch", + "type": "Function", + "tags": [], + "label": "fetch", + "description": [], + "signature": [ + ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>) => Promise<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ReturnOf", + "text": "ReturnOf" + }, + ">" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient.fetch.$1", + "type": "Uncategorized", + "tags": [], + "label": "endpoint", + "description": [], + "signature": [ + "TEndpoint" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient.fetch.$2", + "type": "Uncategorized", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient.stream", + "type": "Function", + "tags": [], + "label": "stream", + "description": [], + "signature": [ + ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>) => ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ReturnOf", + "text": "ReturnOf" + }, + " extends ", + "Observable", + " ? TReturnType extends Record & { type: string; } ? ", + "Observable", + " : never : never" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient.stream.$1", + "type": "Uncategorized", + "tags": [], + "label": "endpoint", + "description": [], + "signature": [ + "TEndpoint" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/server-route-repository-utils", + "id": "def-common.RouteRepositoryClient.stream.$2", + "type": "Uncategorized", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "MaybeOptionalArgs<", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ClientRequestParamsOf", + "text": "ClientRequestParamsOf" + }, + " & TAdditionalClientOptions>" + ], + "path": "packages/kbn-server-route-repository-utils/src/typings.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/server-route-repository-utils", "id": "def-common.RouteState", @@ -228,7 +398,15 @@ "label": "ClientRequestParamsOf", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + "TServerRouteRepository[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " Promise; } & ", + " | undefined, any, any, ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -244,7 +422,7 @@ "section": "def-common.ServerRouteCreateOptions", "text": "ServerRouteCreateOptions" }, - " ? TRouteParamsRT extends ", + "> ? TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -252,7 +430,7 @@ "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, - " ? ClientRequestParamsOfType : {} : never" + " ? ClientRequestParamsOfType : TRouteParamsRT extends undefined ? {} : never : never" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, @@ -267,7 +445,15 @@ "label": "DecodedRequestParamsOf", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + "TServerRouteRepository[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " Promise; } & ", + " | undefined, any, any, ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -283,7 +469,7 @@ "section": "def-common.ServerRouteCreateOptions", "text": "ServerRouteCreateOptions" }, - " ? TRouteParamsRT extends ", + "> ? TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -344,7 +530,11 @@ "signature": [ "Omit<", "Type", - "<{ path?: any; query?: any; body?: any; }, { path?: any; query?: any; body?: any; }, unknown>, \"encode\" | \"asEncoder\"> & { encode: ", + "<", + "RouteParams", + ", ", + "RouteParams", + ", unknown>, \"encode\" | \"asEncoder\"> & { encode: ", "Encode", "; asEncoder: () => ", "Encoder", @@ -363,7 +553,15 @@ "label": "ReturnOf", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", + "TServerRouteRepository[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -425,93 +623,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "@kbn/server-route-repository-utils", - "id": "def-common.RouteRepositoryClient", - "type": "Type", - "tags": [], - "label": "RouteRepositoryClient", - "description": [], - "signature": [ - ">(endpoint: TEndpoint, ...args: MaybeOptionalArgs<", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions>) => Promise<", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ReturnOf", - "text": "ReturnOf" - }, - ">" - ], - "path": "packages/kbn-server-route-repository-utils/src/typings.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "@kbn/server-route-repository-utils", - "id": "def-common.RouteRepositoryClient.$1", - "type": "Uncategorized", - "tags": [], - "label": "endpoint", - "description": [], - "signature": [ - "TEndpoint" - ], - "path": "packages/kbn-server-route-repository-utils/src/typings.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/server-route-repository-utils", - "id": "def-common.RouteRepositoryClient.$2", - "type": "Uncategorized", - "tags": [], - "label": "args", - "description": [], - "signature": [ - "RequiredKeys", - "<", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions> extends never ? [] | [", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions] : [", - { - "pluginId": "@kbn/server-route-repository-utils", - "scope": "common", - "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", - "section": "def-common.ClientRequestParamsOf", - "text": "ClientRequestParamsOf" - }, - " & TAdditionalClientOptions]" - ], - "path": "packages/kbn-server-route-repository-utils/src/typings.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/server-route-repository-utils", "id": "def-common.ServerRoute", @@ -520,7 +631,7 @@ "label": "ServerRoute", "description": [], "signature": [ - "ValidateEndpoint extends true ? { endpoint: TEndpoint; params?: TRouteParamsRT | undefined; handler: ({}: TRouteHandlerResources & (TRouteParamsRT extends ", + "{ endpoint: TEndpoint; handler: ServerRouteHandler; } & TRouteCreateOptions & (TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -528,7 +639,7 @@ "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, - " ? DecodedRequestParamsOfType : {})) => Promise; } & TRouteCreateOptions : never" + " ? { params: TRouteParamsRT; } : {})" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, @@ -573,7 +684,15 @@ "label": "ServerRouteRepository", "description": [], "signature": [ - "{ [x: string]: { endpoint: string; params?: ", + "{ [x: string]: ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " Promise; } & Record; }" + " | undefined, any, any, Record>; }" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, @@ -596,7 +715,7 @@ "label": "ZodParamsObject", "description": [], "signature": [ - "Zod.ZodObject<{ path?: any; query?: any; body?: any; }, Zod.UnknownKeysParam, Zod.ZodTypeAny, { query?: any; body?: any; path?: any; }, { query?: any; body?: any; path?: any; }>" + "Zod.ZodObject<{ path?: Zod.ZodType | undefined; query?: Zod.ZodType | undefined; body?: Zod.ZodType | undefined; }, Zod.UnknownKeysParam, Zod.ZodTypeAny, { query?: unknown; body?: unknown; path?: unknown; }, { query?: unknown; body?: unknown; path?: unknown; }>" ], "path": "packages/kbn-server-route-repository-utils/src/typings.ts", "deprecated": false, diff --git a/api_docs/kbn_server_route_repository_utils.mdx b/api_docs/kbn_server_route_repository_utils.mdx index 2fa23575ff8bc..cb74c8bb25ca9 100644 --- a/api_docs/kbn_server_route_repository_utils.mdx +++ b/api_docs/kbn_server_route_repository_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository-utils title: "@kbn/server-route-repository-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository-utils plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository-utils'] --- import kbnServerRouteRepositoryUtilsObj from './kbn_server_route_repository_utils.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 26 | 0 | 26 | 0 | +| 30 | 0 | 30 | 2 | ## Common diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index 7af875ae2299e..0792fc5032ac4 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-09-11 +date: 2024-09-16 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 e9d602c995112..44644cc470e97 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-09-11 +date: 2024-09-16 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 41c0b61e7e03d..edabf158ff207 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-09-11 +date: 2024-09-16 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 611ec5c5d2019..b243feddf7372 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-09-11 +date: 2024-09-16 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 a3bb80aed4b99..cd4854927df2f 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-09-11 +date: 2024-09-16 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 417952b7d798c..adbd44fef6856 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-09-11 +date: 2024-09-16 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 2806d928ca5b7..77c288f9cf183 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-09-11 +date: 2024-09-16 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 d50b87a0b4e34..69cbd82babb69 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-09-11 +date: 2024-09-16 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 63cf1e71fe1ef..5fbc3b725e515 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-exit-full-screen'] --- import kbnSharedUxButtonExitFullScreenObj from './kbn_shared_ux_button_exit_full_screen.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index dd54f6a54f0fb..4a318200ef5df 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index 8ce28c355c15f..34b2d69864c14 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data'] --- import kbnSharedUxCardNoDataObj from './kbn_shared_ux_card_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx index 777c0a36c1d5c..a4380d4eb1f65 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-card-no-data-mocks'] --- import kbnSharedUxCardNoDataMocksObj from './kbn_shared_ux_card_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index 650761322474f..abc280c5045e4 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx index c328873757c0d..6901292a7b02a 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-09-11 +date: 2024-09-16 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 a4428537457bd..f8fd8cae72cdc 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-09-11 +date: 2024-09-16 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 bc04f6bfd0674..e391372125c0a 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-09-11 +date: 2024-09-16 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 51bc5ac01916c..b8b55368b4406 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-09-11 +date: 2024-09-16 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 c7ad3e3fc656e..cbc49a9e69722 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-09-11 +date: 2024-09-16 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 e159ec69ec07b..356c1e2dad620 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-09-11 +date: 2024-09-16 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 4ad1db3ca3ff4..2e44f2db2427f 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-09-11 +date: 2024-09-16 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 184ffd0a1a14e..d06ad88805152 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-09-11 +date: 2024-09-16 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 5fb61c3694b90..418bb3382e747 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-09-11 +date: 2024-09-16 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 af59e7fa57e51..e62e5533d788c 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-09-11 +date: 2024-09-16 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 ff3d76a21c2cf..a58d7e521c95c 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-09-11 +date: 2024-09-16 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 616da46698b8c..2c12d7fbb63ba 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-09-11 +date: 2024-09-16 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 d845e8a56aaf0..a6fa075838143 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-markdown-mocks'] --- import kbnSharedUxMarkdownMocksObj from './kbn_shared_ux_markdown_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx index e8239908e460a..a4fb3ea0be9ec 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx index cdb2de320bb1a..6322a5ab0f24b 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-09-11 +date: 2024-09-16 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 6e38f236b6811..74c6d80feb7bb 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-09-11 +date: 2024-09-16 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 0fb26d5008678..3dacc0c77a471 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-09-11 +date: 2024-09-16 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 d431956f6a96d..04d826bfdd1a3 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-09-11 +date: 2024-09-16 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 3a33ec0e69e17..a935d3fd1cadd 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-09-11 +date: 2024-09-16 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 7ade0c73fbeb6..f766c86efef85 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-09-11 +date: 2024-09-16 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 13d73882e7abe..61764bbf6904e 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-09-11 +date: 2024-09-16 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 8cb3925a8a8c0..70d4be9b9fd0a 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-09-11 +date: 2024-09-16 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 f7fd2d502e3db..0f71aa28e0172 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_shared_ux_page_solution_nav.devdocs.json index 350e285f489f6..d020b378dd093 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.devdocs.json +++ b/api_docs/kbn_shared_ux_page_solution_nav.devdocs.json @@ -121,7 +121,7 @@ "signature": [ "Omit<", "EuiSideNavProps", - "<{}>, \"children\" | \"heading\" | \"items\"> & { name: string; icon?: ", + "<{}>, \"children\" | \"items\" | \"heading\"> & { name: string; icon?: ", "IconType", " | undefined; items?: ", "EuiSideNavItemType", diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index ca28e0353eb3c..7e51334a9f7ef 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-solution-nav'] --- import kbnSharedUxPageSolutionNavObj from './kbn_shared_ux_page_solution_nav.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx index 5427894535a89..92f585923e037 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx index b421e8ba965d5..994e96c9a21f5 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-09-11 +date: 2024-09-16 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 81908e7da178d..62fe0edda4056 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-09-11 +date: 2024-09-16 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 24d46844fc74c..1650e066eb3be 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-09-11 +date: 2024-09-16 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 86e817bbfbe56..d33438d6b2a90 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-09-11 +date: 2024-09-16 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 3a8a8bc414685..2dd715a66a14e 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-09-11 +date: 2024-09-16 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 5bc9c91fde8a3..7469668c2baf8 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_tabbed_modal.mdx b/api_docs/kbn_shared_ux_tabbed_modal.mdx index 13732826c2690..212e983ff36a1 100644 --- a/api_docs/kbn_shared_ux_tabbed_modal.mdx +++ b/api_docs/kbn_shared_ux_tabbed_modal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-tabbed-modal title: "@kbn/shared-ux-tabbed-modal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-tabbed-modal plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-tabbed-modal'] --- import kbnSharedUxTabbedModalObj from './kbn_shared_ux_tabbed_modal.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_table_persist.mdx b/api_docs/kbn_shared_ux_table_persist.mdx index 05799817a7d6e..524aebe6905ea 100644 --- a/api_docs/kbn_shared_ux_table_persist.mdx +++ b/api_docs/kbn_shared_ux_table_persist.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-table-persist title: "@kbn/shared-ux-table-persist" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-table-persist plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-table-persist'] --- import kbnSharedUxTablePersistObj from './kbn_shared_ux_table_persist.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 7e436f97fb2d2..1a0739d0cb237 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 6241acafca71f..3e7ad217ee64f 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-09-11 +date: 2024-09-16 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 f7a6b00c04fd5..6b0564f1c1f31 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx index 9e76ad93a1248..db3738005a235 100644 --- a/api_docs/kbn_sort_predicates.mdx +++ b/api_docs/kbn_sort_predicates.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-sort-predicates title: "@kbn/sort-predicates" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/sort-predicates plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates'] --- import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json'; diff --git a/api_docs/kbn_sse_utils.devdocs.json b/api_docs/kbn_sse_utils.devdocs.json new file mode 100644 index 0000000000000..967f282e27735 --- /dev/null +++ b/api_docs/kbn_sse_utils.devdocs.json @@ -0,0 +1,346 @@ +{ + "id": "@kbn/sse-utils", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.ServerSentEventError", + "type": "Class", + "tags": [], + "label": "ServerSentEventError", + "description": [], + "signature": [ + { + "pluginId": "@kbn/sse-utils", + "scope": "common", + "docId": "kibKbnSseUtilsPluginApi", + "section": "def-common.ServerSentEventError", + "text": "ServerSentEventError" + }, + " extends Error" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.ServerSentEventError.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.ServerSentEventError.Unnamed.$1", + "type": "Uncategorized", + "tags": [], + "label": "code", + "description": [], + "signature": [ + "TCode" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.ServerSentEventError.Unnamed.$2", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.ServerSentEventError.Unnamed.$3", + "type": "Uncategorized", + "tags": [], + "label": "meta", + "description": [], + "signature": [ + "TMeta" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.ServerSentEventError.toJSON", + "type": "Function", + "tags": [], + "label": "toJSON", + "description": [], + "signature": [ + "() => { error: { code: string; message: string; meta?: Record | undefined; }; } & { type: ", + "ServerSentEventType", + ".error; }" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.createSSEInternalError", + "type": "Function", + "tags": [], + "label": "createSSEInternalError", + "description": [], + "signature": [ + "(message: string) => ", + "ServerSentEventInternalError" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.createSSEInternalError.$1", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.createSSERequestError", + "type": "Function", + "tags": [], + "label": "createSSERequestError", + "description": [], + "signature": [ + "(message: string, status: number) => ", + "ServerSentEventRequestError" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.createSSERequestError.$1", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.createSSERequestError.$2", + "type": "number", + "tags": [], + "label": "status", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.isSSEError", + "type": "Function", + "tags": [], + "label": "isSSEError", + "description": [], + "signature": [ + "(error: unknown) => boolean" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.isSSEError.$1", + "type": "Unknown", + "tags": [], + "label": "error", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.isSSEInternalError", + "type": "Function", + "tags": [], + "label": "isSSEInternalError", + "description": [], + "signature": [ + "(error: unknown) => boolean" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.isSSEInternalError.$1", + "type": "Unknown", + "tags": [], + "label": "error", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.isSSERequestError", + "type": "Function", + "tags": [], + "label": "isSSERequestError", + "description": [], + "signature": [ + "(error: unknown) => boolean" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.isSSERequestError.$1", + "type": "Unknown", + "tags": [], + "label": "error", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-sse-utils/src/errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.ServerSentEvent", + "type": "Type", + "tags": [], + "label": "ServerSentEvent", + "description": [], + "signature": [ + "Record & { type: string; }" + ], + "path": "packages/kbn-sse-utils/src/events.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/sse-utils", + "id": "def-common.ServerSentEventBase", + "type": "Type", + "tags": [], + "label": "ServerSentEventBase", + "description": [], + "signature": [ + "keyof TData extends \"type\" ? never : TData & { type: TEventType; }" + ], + "path": "packages/kbn-sse-utils/src/events.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_sse_utils.mdx b/api_docs/kbn_sse_utils.mdx new file mode 100644 index 0000000000000..e38989a1ca2db --- /dev/null +++ b/api_docs/kbn_sse_utils.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: kibKbnSseUtilsPluginApi +slug: /kibana-dev-docs/api/kbn-sse-utils +title: "@kbn/sse-utils" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/sse-utils plugin +date: 2024-09-16 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils'] +--- +import kbnSseUtilsObj from './kbn_sse_utils.devdocs.json'; + + + +Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 19 | 0 | 19 | 3 | + +## Common + +### Functions + + +### Classes + + +### Consts, variables and types + + diff --git a/api_docs/kbn_sse_utils_client.devdocs.json b/api_docs/kbn_sse_utils_client.devdocs.json new file mode 100644 index 0000000000000..40d155d0755b0 --- /dev/null +++ b/api_docs/kbn_sse_utils_client.devdocs.json @@ -0,0 +1,49 @@ +{ + "id": "@kbn/sse-utils-client", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/sse-utils-client", + "id": "def-common.httpResponseIntoObservable", + "type": "Function", + "tags": [], + "label": "httpResponseIntoObservable", + "description": [], + "signature": [ + "() => ", + "OperatorFunction", + "<", + "StreamedHttpResponse", + ", T>" + ], + "path": "packages/kbn-sse-utils-client/src/http_response_into_observable.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_sse_utils_client.mdx b/api_docs/kbn_sse_utils_client.mdx new file mode 100644 index 0000000000000..40837d625933e --- /dev/null +++ b/api_docs/kbn_sse_utils_client.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: kibKbnSseUtilsClientPluginApi +slug: /kibana-dev-docs/api/kbn-sse-utils-client +title: "@kbn/sse-utils-client" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/sse-utils-client plugin +date: 2024-09-16 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils-client'] +--- +import kbnSseUtilsClientObj from './kbn_sse_utils_client.devdocs.json'; + + + +Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 1 | 0 | 1 | 1 | + +## Common + +### Functions + + diff --git a/api_docs/kbn_sse_utils_server.devdocs.json b/api_docs/kbn_sse_utils_server.devdocs.json new file mode 100644 index 0000000000000..add589a703b5e --- /dev/null +++ b/api_docs/kbn_sse_utils_server.devdocs.json @@ -0,0 +1,65 @@ +{ + "id": "@kbn/sse-utils-server", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/sse-utils-server", + "id": "def-common.observableIntoEventSourceStream", + "type": "Function", + "tags": [], + "label": "observableIntoEventSourceStream", + "description": [], + "signature": [ + "(source$: ", + "Observable", + " & { type: string; }>) => ", + "PassThrough" + ], + "path": "packages/kbn-sse-utils-server/src/observable_into_event_source_stream.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sse-utils-server", + "id": "def-common.observableIntoEventSourceStream.$1", + "type": "Object", + "tags": [], + "label": "source$", + "description": [], + "signature": [ + "Observable", + " & { type: string; }>" + ], + "path": "packages/kbn-sse-utils-server/src/observable_into_event_source_stream.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_sse_utils_server.mdx b/api_docs/kbn_sse_utils_server.mdx new file mode 100644 index 0000000000000..3e8c831d204ae --- /dev/null +++ b/api_docs/kbn_sse_utils_server.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: kibKbnSseUtilsServerPluginApi +slug: /kibana-dev-docs/api/kbn-sse-utils-server +title: "@kbn/sse-utils-server" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/sse-utils-server plugin +date: 2024-09-16 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sse-utils-server'] +--- +import kbnSseUtilsServerObj from './kbn_sse_utils_server.devdocs.json'; + + + +Contact [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 2 | 0 | 2 | 0 | + +## Common + +### Functions + + diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index 8f7d523e36139..06429862009fb 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-09-11 +date: 2024-09-16 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 5fcdcb4b414db..b2bd3f397b21f 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-09-11 +date: 2024-09-16 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 6cf7e3b53ec33..90455353f8602 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_synthetics_e2e.mdx b/api_docs/kbn_synthetics_e2e.mdx index 899346c757531..291bb3b71e28a 100644 --- a/api_docs/kbn_synthetics_e2e.mdx +++ b/api_docs/kbn_synthetics_e2e.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-synthetics-e2e title: "@kbn/synthetics-e2e" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/synthetics-e2e plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/synthetics-e2e'] --- import kbnSyntheticsE2eObj from './kbn_synthetics_e2e.devdocs.json'; diff --git a/api_docs/kbn_synthetics_private_location.mdx b/api_docs/kbn_synthetics_private_location.mdx index 20b5b596a9fca..8239cdbfe702b 100644 --- a/api_docs/kbn_synthetics_private_location.mdx +++ b/api_docs/kbn_synthetics_private_location.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-synthetics-private-location title: "@kbn/synthetics-private-location" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/synthetics-private-location plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/synthetics-private-location'] --- import kbnSyntheticsPrivateLocationObj from './kbn_synthetics_private_location.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 33aad56446b3b..ed5c622ae7766 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index 34e1ba73dabaa..65273e4ae1783 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.devdocs.json'; diff --git a/api_docs/kbn_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx index 71427d385baa4..540d4a09a630f 100644 --- a/api_docs/kbn_test_eui_helpers.mdx +++ b/api_docs/kbn_test_eui_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-eui-helpers title: "@kbn/test-eui-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-eui-helpers plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers'] --- import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json'; diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index d526d5d11962e..e8b40413368ca 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-09-11 +date: 2024-09-16 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 18d316ac27571..5333ef6ab58cc 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-09-11 +date: 2024-09-16 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 0f4de353c7a49..748a85928e0c7 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_timerange.mdx b/api_docs/kbn_timerange.mdx index d26191ebd6af4..c331eb93f6991 100644 --- a/api_docs/kbn_timerange.mdx +++ b/api_docs/kbn_timerange.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-timerange title: "@kbn/timerange" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/timerange plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/timerange'] --- import kbnTimerangeObj from './kbn_timerange.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 0b97495313ad2..ffff78435abd3 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-09-11 +date: 2024-09-16 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 aa913ce110823..01fe12c7cfa64 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types'] --- import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json'; diff --git a/api_docs/kbn_try_in_console.mdx b/api_docs/kbn_try_in_console.mdx index 7d46d12a4a75e..5eb284913eac7 100644 --- a/api_docs/kbn_try_in_console.mdx +++ b/api_docs/kbn_try_in_console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-try-in-console title: "@kbn/try-in-console" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/try-in-console plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/try-in-console'] --- import kbnTryInConsoleObj from './kbn_try_in_console.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 4d83b67ec28e6..749516f2d5c9b 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ts-projects'] --- import kbnTsProjectsObj from './kbn_ts_projects.devdocs.json'; diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index 200f93a00b2f1..30bf65eb3fb72 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-09-11 +date: 2024-09-16 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 c621110228276..9a5d7c8a9fc8c 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-actions-browser'] --- import kbnUiActionsBrowserObj from './kbn_ui_actions_browser.devdocs.json'; diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index e47b5375287d0..0d17547212c06 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.devdocs.json'; diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 430f34f7c1393..bcda14d552e0c 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-09-11 +date: 2024-09-16 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 6ed6026730b6d..bf0686fb24c6c 100644 --- a/api_docs/kbn_unified_data_table.devdocs.json +++ b/api_docs/kbn_unified_data_table.devdocs.json @@ -638,279 +638,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlColumn", - "type": "Interface", - "tags": [], - "label": "RowControlColumn", - "description": [], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlColumn.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlColumn.headerAriaLabel", - "type": "string", - "tags": [], - "label": "headerAriaLabel", - "description": [], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlColumn.headerCellRender", - "type": "CompoundType", - "tags": [], - "label": "headerCellRender", - "description": [], - "signature": [ - "React.ComponentType<{}> | undefined" - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlColumn.renderControl", - "type": "Function", - "tags": [], - "label": "renderControl", - "description": [], - "signature": [ - "(Control: ", - { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.RowControlComponent", - "text": "RowControlComponent" - }, - ", props: ", - { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.RowControlRowProps", - "text": "RowControlRowProps" - }, - ") => React.ReactElement>" - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlColumn.renderControl.$1", - "type": "Function", - "tags": [], - "label": "Control", - "description": [], - "signature": [ - { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.RowControlComponent", - "text": "RowControlComponent" - } - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlColumn.renderControl.$2", - "type": "Object", - "tags": [], - "label": "props", - "description": [], - "signature": [ - { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.RowControlRowProps", - "text": "RowControlRowProps" - } - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlProps", - "type": "Interface", - "tags": [], - "label": "RowControlProps", - "description": [], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlProps.datatestsubj", - "type": "string", - "tags": [], - "label": "'data-test-subj'", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlProps.color", - "type": "CompoundType", - "tags": [], - "label": "color", - "description": [], - "signature": [ - "\"text\" | \"warning\" | \"success\" | \"primary\" | \"accent\" | \"danger\" | undefined" - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlProps.disabled", - "type": "CompoundType", - "tags": [], - "label": "disabled", - "description": [], - "signature": [ - "boolean | undefined" - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlProps.label", - "type": "string", - "tags": [], - "label": "label", - "description": [], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlProps.iconType", - "type": "CompoundType", - "tags": [], - "label": "iconType", - "description": [], - "signature": [ - "string | React.ComponentType<{}>" - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlProps.onClick", - "type": "Function", - "tags": [], - "label": "onClick", - "description": [], - "signature": [ - "((props: ", - { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.RowControlRowProps", - "text": "RowControlRowProps" - }, - ") => void) | undefined" - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlRowProps", - "type": "Interface", - "tags": [], - "label": "RowControlRowProps", - "description": [], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlRowProps.rowIndex", - "type": "number", - "tags": [], - "label": "rowIndex", - "description": [], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlRowProps.record", - "type": "Object", - "tags": [], - "label": "record", - "description": [], - "signature": [ - { - "pluginId": "@kbn/discover-utils", - "scope": "common", - "docId": "kibKbnDiscoverUtilsPluginApi", - "section": "def-common.DataTableRecord", - "text": "DataTableRecord" - } - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/unified-data-table", "id": "def-public.RowHeightSettingsProps", @@ -1143,10 +870,10 @@ ], "signature": [ { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.DataTableColumnsMeta", + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.DataTableColumnsMeta", "text": "DataTableColumnsMeta" }, " | undefined" @@ -2085,10 +1812,10 @@ }, "[], displayedColumns: string[], columnsMeta?: ", { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.DataTableColumnsMeta", + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.DataTableColumnsMeta", "text": "DataTableColumnsMeta" }, " | undefined) => JSX.Element | undefined) | undefined" @@ -2164,10 +1891,10 @@ "description": [], "signature": [ { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.DataTableColumnsMeta", + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.DataTableColumnsMeta", "text": "DataTableColumnsMeta" }, " | undefined" @@ -2267,10 +1994,10 @@ ], "signature": [ { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.RowControlColumn", + "pluginId": "@kbn/discover-utils", + "scope": "common", + "docId": "kibKbnDiscoverUtilsPluginApi", + "section": "def-common.RowControlColumn", "text": "RowControlColumn" }, "[] | undefined" @@ -3188,7 +2915,7 @@ }, "; esType?: string | undefined; }; }" ], - "path": "packages/kbn-unified-data-table/src/types.ts", + "path": "packages/kbn-discover-utils/src/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -3208,60 +2935,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlComponent", - "type": "Type", - "tags": [], - "label": "RowControlComponent", - "description": [], - "signature": [ - "React.FunctionComponent<", - { - "pluginId": "@kbn/unified-data-table", - "scope": "public", - "docId": "kibKbnUnifiedDataTablePluginApi", - "section": "def-public.RowControlProps", - "text": "RowControlProps" - }, - ">" - ], - "path": "packages/kbn-unified-data-table/src/types.ts", - "deprecated": false, - "trackAdoption": false, - "returnComment": [], - "children": [ - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlComponent.$1", - "type": "CompoundType", - "tags": [], - "label": "props", - "description": [], - "signature": [ - "P & { children?: React.ReactNode; }" - ], - "path": "node_modules/@types/react/index.d.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/unified-data-table", - "id": "def-public.RowControlComponent.$2", - "type": "Any", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "any" - ], - "path": "node_modules/@types/react/index.d.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/unified-data-table", "id": "def-public.SELECT_ROW", diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index b6578e62569fc..7a9da1c914ca6 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-09-11 +date: 2024-09-16 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 | |-------------------|-----------|------------------------|-----------------| -| 185 | 0 | 108 | 2 | +| 165 | 0 | 90 | 2 | ## Client diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index da49379ca0be9..f1a071751304a 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-doc-viewer'] --- import kbnUnifiedDocViewerObj from './kbn_unified_doc_viewer.devdocs.json'; diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 37557e68222b2..fada9f340d836 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.devdocs.json'; diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx index 618116e5c0d10..59298d7c2fc23 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge'] --- import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json'; diff --git a/api_docs/kbn_unsaved_changes_prompt.mdx b/api_docs/kbn_unsaved_changes_prompt.mdx index a75e7efe0d4f3..9ade999c38c39 100644 --- a/api_docs/kbn_unsaved_changes_prompt.mdx +++ b/api_docs/kbn_unsaved_changes_prompt.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-prompt title: "@kbn/unsaved-changes-prompt" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unsaved-changes-prompt plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-prompt'] --- import kbnUnsavedChangesPromptObj from './kbn_unsaved_changes_prompt.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index 44a8c50274697..64a1c5c283d17 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-09-11 +date: 2024-09-16 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 3bd0f0deba37d..b3bd469679bb8 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-09-11 +date: 2024-09-16 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 30d39c49d5a25..e818b0869ddc0 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-09-11 +date: 2024-09-16 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 5165fafc988a4..786b78c009b71 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-09-11 +date: 2024-09-16 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 a4a2967db31ef..3e224edd55945 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index 4943db59bc738..6bc692b3d1d3f 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-09-11 +date: 2024-09-16 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 76718e830f6c1..787315350f0a9 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils'] --- import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index 5d6c443d1e719..a77e1a664b032 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-09-11 +date: 2024-09-16 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 4a8139866dd9a..dd126036f0c23 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-09-11 +date: 2024-09-16 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.devdocs.json b/api_docs/kbn_zod.devdocs.json index d5b39615af9fa..e8b5087a0bbb3 100644 --- a/api_docs/kbn_zod.devdocs.json +++ b/api_docs/kbn_zod.devdocs.json @@ -19198,7 +19198,7 @@ "label": "ZodFirstPartySchemaTypes", "description": [], "signature": [ - "Zod.ZodString | Zod.ZodBoolean | Zod.ZodNumber | Zod.ZodUnknown | Zod.ZodUndefined | Zod.ZodAny | Zod.ZodNull | Zod.ZodBigInt | Zod.ZodDate | Zod.ZodSymbol | Zod.ZodNever | Zod.ZodVoid | Zod.ZodTuple | Zod.ZodNaN | Zod.ZodArray | Zod.ZodObject | Zod.ZodUnion | Zod.ZodDiscriminatedUnion | Zod.ZodIntersection | Zod.ZodRecord | Zod.ZodMap | Zod.ZodSet | Zod.ZodFunction | Zod.ZodLazy | Zod.ZodLiteral | Zod.ZodEnum | Zod.ZodEffects | Zod.ZodNativeEnum | Zod.ZodOptional | Zod.ZodNullable | Zod.ZodDefault | Zod.ZodCatch | Zod.ZodPromise | Zod.ZodBranded | Zod.ZodPipeline | Zod.ZodReadonly" + "Zod.ZodString | Zod.ZodBoolean | Zod.ZodNumber | Zod.ZodAny | Zod.ZodUnknown | Zod.ZodUndefined | Zod.ZodNull | Zod.ZodBigInt | Zod.ZodDate | Zod.ZodSymbol | Zod.ZodNever | Zod.ZodVoid | Zod.ZodTuple | Zod.ZodNaN | Zod.ZodArray | Zod.ZodObject | Zod.ZodUnion | Zod.ZodDiscriminatedUnion | Zod.ZodIntersection | Zod.ZodRecord | Zod.ZodMap | Zod.ZodSet | Zod.ZodFunction | Zod.ZodLazy | Zod.ZodLiteral | Zod.ZodEnum | Zod.ZodEffects | Zod.ZodNativeEnum | Zod.ZodOptional | Zod.ZodNullable | Zod.ZodDefault | Zod.ZodCatch | Zod.ZodPromise | Zod.ZodBranded | Zod.ZodPipeline | Zod.ZodReadonly" ], "path": "node_modules/zod/lib/types.d.ts", "deprecated": false, diff --git a/api_docs/kbn_zod.mdx b/api_docs/kbn_zod.mdx index dc16e9b75a4b1..563294de0edf8 100644 --- a/api_docs/kbn_zod.mdx +++ b/api_docs/kbn_zod.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod title: "@kbn/zod" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/zod plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/zod'] --- import kbnZodObj from './kbn_zod.devdocs.json'; diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx index 6330ed61cb349..d62a7f6c49c92 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-09-11 +date: 2024-09-16 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 a310296f28b33..fa6c238fa7800 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index 4cf448ef4bc6e..cba2b1ce1648c 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.devdocs.json'; diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index 195b25bbfcca1..0a4674502959f 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-09-11 +date: 2024-09-16 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 c6d748369529d..24e0272883296 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-09-11 +date: 2024-09-16 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 68656ff03e389..766dc69bf8124 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -11975,7 +11975,7 @@ "signature": [ "Omit<", "LensByValueInput", - ", \"overrides\" | \"attributes\"> & { attributes: LensAttributes<\"lnsXY\", ", + ", \"attributes\" | \"overrides\"> & { attributes: LensAttributes<\"lnsXY\", ", { "pluginId": "lens", "scope": "public", diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 3dde96349f44b..12fd0b398cfdd 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index 977f5c45e847b..3fc60dbb0dd26 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-09-11 +date: 2024-09-16 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 e2b6eae045304..cb1ff50182afb 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-09-11 +date: 2024-09-16 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 221e8fc450bdb..0ef3172a61244 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-09-11 +date: 2024-09-16 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 b3cee3e93a749..818c2ac82a7a6 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-09-11 +date: 2024-09-16 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 82fd0431114ac..767734b3c9d3c 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/logs_data_access.mdx b/api_docs/logs_data_access.mdx index bd16ead1ae389..af96766666cd1 100644 --- a/api_docs/logs_data_access.mdx +++ b/api_docs/logs_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsDataAccess title: "logsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the logsDataAccess plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsDataAccess'] --- import logsDataAccessObj from './logs_data_access.devdocs.json'; diff --git a/api_docs/logs_explorer.mdx b/api_docs/logs_explorer.mdx index a0fd0267f436d..4c86876f2ce98 100644 --- a/api_docs/logs_explorer.mdx +++ b/api_docs/logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsExplorer title: "logsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logsExplorer plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsExplorer'] --- import logsExplorerObj from './logs_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index 52f533bbfe79f..697e1ee33aa87 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.devdocs.json'; diff --git a/api_docs/management.mdx b/api_docs/management.mdx index 99a1280dc24e4..096313fba48ca 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index f821801774168..d027bb30a8329 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-09-11 +date: 2024-09-16 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 960751376af7c..046f26cc9edb1 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mapsEms'] --- import mapsEmsObj from './maps_ems.devdocs.json'; diff --git a/api_docs/metrics_data_access.mdx b/api_docs/metrics_data_access.mdx index 6ade551ac4d55..27c857687a2b8 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-09-11 +date: 2024-09-16 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 8a976f079a485..bfecb993411ef 100644 --- a/api_docs/ml.devdocs.json +++ b/api_docs/ml.devdocs.json @@ -1188,7 +1188,7 @@ "label": "ML_PAGES", "description": [], "signature": [ - "{ readonly ANOMALY_DETECTION_JOBS_MANAGE: \"jobs\"; readonly ANOMALY_EXPLORER: \"explorer\"; readonly SINGLE_METRIC_VIEWER: \"timeseriesexplorer\"; readonly DATA_FRAME_ANALYTICS_JOBS_MANAGE: \"data_frame_analytics\"; readonly DATA_FRAME_ANALYTICS_SOURCE_SELECTION: \"data_frame_analytics/source_selection\"; readonly DATA_FRAME_ANALYTICS_CREATE_JOB: \"data_frame_analytics/new_job\"; readonly TRAINED_MODELS_MANAGE: \"trained_models\"; readonly DATA_DRIFT_INDEX_SELECT: \"data_drift_index_select\"; readonly DATA_DRIFT_CUSTOM: \"data_drift_custom\"; readonly DATA_DRIFT: \"data_drift\"; readonly NODES: \"nodes\"; readonly MEMORY_USAGE: \"memory_usage\"; readonly DATA_FRAME_ANALYTICS_EXPLORATION: \"data_frame_analytics/exploration\"; readonly DATA_FRAME_ANALYTICS_MAP: \"data_frame_analytics/map\"; readonly DATA_VISUALIZER: \"datavisualizer\"; readonly DATA_VISUALIZER_INDEX_SELECT: \"datavisualizer_index_select\"; readonly DATA_VISUALIZER_FILE: \"filedatavisualizer\"; readonly DATA_VISUALIZER_ESQL: \"datavisualizer/esql\"; readonly DATA_VISUALIZER_INDEX_VIEWER: \"jobs/new_job/datavisualizer\"; readonly ANOMALY_DETECTION_CREATE_JOB: \"jobs/new_job\"; readonly ANOMALY_DETECTION_CREATE_JOB_RECOGNIZER: \"jobs/new_job/recognize\"; readonly ANOMALY_DETECTION_CREATE_JOB_SINGLE_METRIC: \"jobs/new_job/single_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_MULTI_METRIC: \"jobs/new_job/multi_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_MULTI_METRIC: \"jobs/new_job/convert_to_multi_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_ADVANCED: \"jobs/new_job/advanced\"; readonly ANOMALY_DETECTION_CREATE_JOB_POPULATION: \"jobs/new_job/population\"; readonly ANOMALY_DETECTION_CREATE_JOB_CATEGORIZATION: \"jobs/new_job/categorization\"; readonly ANOMALY_DETECTION_CREATE_JOB_RARE: \"jobs/new_job/rare\"; readonly ANOMALY_DETECTION_CREATE_JOB_GEO: \"jobs/new_job/geo\"; readonly ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_ADVANCED: \"jobs/new_job/convert_to_advanced\"; readonly ANOMALY_DETECTION_CREATE_JOB_SELECT_TYPE: \"jobs/new_job/step/job_type\"; readonly ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX: \"jobs/new_job/step/index_or_search\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_LENS: \"jobs/new_job/from_lens\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_PATTERN_ANALYSIS: \"jobs/new_job/from_pattern_analysis\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_MAP: \"jobs/new_job/from_map\"; readonly ANOMALY_DETECTION_MODULES_VIEW_OR_CREATE: \"modules/check_view_or_create\"; readonly SETTINGS: \"settings\"; readonly CALENDARS_MANAGE: \"settings/calendars_list\"; readonly CALENDARS_NEW: \"settings/calendars_list/new_calendar\"; readonly CALENDARS_EDIT: \"settings/calendars_list/edit_calendar\"; readonly FILTER_LISTS_MANAGE: \"settings/filter_lists\"; readonly FILTER_LISTS_NEW: \"settings/filter_lists/new_filter_list\"; readonly FILTER_LISTS_EDIT: \"settings/filter_lists/edit_filter_list\"; readonly OVERVIEW: \"overview\"; readonly NOTIFICATIONS: \"notifications\"; readonly AIOPS: \"aiops\"; readonly AIOPS_EXPLAIN_LOG_RATE_SPIKES: \"aiops/explain_log_rate_spikes\"; readonly AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT: \"aiops/explain_log_rate_spikes_index_select\"; readonly AIOPS_LOG_RATE_ANALYSIS: \"aiops/log_rate_analysis\"; readonly AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT: \"aiops/log_rate_analysis_index_select\"; readonly AIOPS_LOG_CATEGORIZATION: \"aiops/log_categorization\"; readonly AIOPS_LOG_CATEGORIZATION_INDEX_SELECT: \"aiops/log_categorization_index_select\"; readonly AIOPS_CHANGE_POINT_DETECTION: \"aiops/change_point_detection\"; readonly AIOPS_CHANGE_POINT_DETECTION_INDEX_SELECT: \"aiops/change_point_detection_index_select\"; }" + "{ readonly ANOMALY_DETECTION_JOBS_MANAGE: \"jobs\"; readonly ANOMALY_EXPLORER: \"explorer\"; readonly SINGLE_METRIC_VIEWER: \"timeseriesexplorer\"; readonly DATA_FRAME_ANALYTICS_JOBS_MANAGE: \"data_frame_analytics\"; readonly DATA_FRAME_ANALYTICS_SOURCE_SELECTION: \"data_frame_analytics/source_selection\"; readonly DATA_FRAME_ANALYTICS_CREATE_JOB: \"data_frame_analytics/new_job\"; readonly TRAINED_MODELS_MANAGE: \"trained_models\"; readonly DATA_DRIFT_INDEX_SELECT: \"data_drift_index_select\"; readonly DATA_DRIFT_CUSTOM: \"data_drift_custom\"; readonly DATA_DRIFT: \"data_drift\"; readonly NODES: \"nodes\"; readonly MEMORY_USAGE: \"memory_usage\"; readonly DATA_FRAME_ANALYTICS_EXPLORATION: \"data_frame_analytics/exploration\"; readonly DATA_FRAME_ANALYTICS_MAP: \"data_frame_analytics/map\"; readonly SUPPLIED_CONFIGURATIONS: \"supplied_configurations\"; readonly DATA_VISUALIZER: \"datavisualizer\"; readonly DATA_VISUALIZER_INDEX_SELECT: \"datavisualizer_index_select\"; readonly DATA_VISUALIZER_FILE: \"filedatavisualizer\"; readonly DATA_VISUALIZER_ESQL: \"datavisualizer/esql\"; readonly DATA_VISUALIZER_INDEX_VIEWER: \"jobs/new_job/datavisualizer\"; readonly ANOMALY_DETECTION_CREATE_JOB: \"jobs/new_job\"; readonly ANOMALY_DETECTION_CREATE_JOB_RECOGNIZER: \"jobs/new_job/recognize\"; readonly ANOMALY_DETECTION_CREATE_JOB_SINGLE_METRIC: \"jobs/new_job/single_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_MULTI_METRIC: \"jobs/new_job/multi_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_MULTI_METRIC: \"jobs/new_job/convert_to_multi_metric\"; readonly ANOMALY_DETECTION_CREATE_JOB_ADVANCED: \"jobs/new_job/advanced\"; readonly ANOMALY_DETECTION_CREATE_JOB_POPULATION: \"jobs/new_job/population\"; readonly ANOMALY_DETECTION_CREATE_JOB_CATEGORIZATION: \"jobs/new_job/categorization\"; readonly ANOMALY_DETECTION_CREATE_JOB_RARE: \"jobs/new_job/rare\"; readonly ANOMALY_DETECTION_CREATE_JOB_GEO: \"jobs/new_job/geo\"; readonly ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_ADVANCED: \"jobs/new_job/convert_to_advanced\"; readonly ANOMALY_DETECTION_CREATE_JOB_SELECT_TYPE: \"jobs/new_job/step/job_type\"; readonly ANOMALY_DETECTION_CREATE_JOB_SELECT_INDEX: \"jobs/new_job/step/index_or_search\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_LENS: \"jobs/new_job/from_lens\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_PATTERN_ANALYSIS: \"jobs/new_job/from_pattern_analysis\"; readonly ANOMALY_DETECTION_CREATE_JOB_FROM_MAP: \"jobs/new_job/from_map\"; readonly ANOMALY_DETECTION_MODULES_VIEW_OR_CREATE: \"modules/check_view_or_create\"; readonly SETTINGS: \"settings\"; readonly CALENDARS_MANAGE: \"settings/calendars_list\"; readonly CALENDARS_NEW: \"settings/calendars_list/new_calendar\"; readonly CALENDARS_EDIT: \"settings/calendars_list/edit_calendar\"; readonly FILTER_LISTS_MANAGE: \"settings/filter_lists\"; readonly FILTER_LISTS_NEW: \"settings/filter_lists/new_filter_list\"; readonly FILTER_LISTS_EDIT: \"settings/filter_lists/edit_filter_list\"; readonly OVERVIEW: \"overview\"; readonly NOTIFICATIONS: \"notifications\"; readonly AIOPS: \"aiops\"; readonly AIOPS_EXPLAIN_LOG_RATE_SPIKES: \"aiops/explain_log_rate_spikes\"; readonly AIOPS_EXPLAIN_LOG_RATE_SPIKES_INDEX_SELECT: \"aiops/explain_log_rate_spikes_index_select\"; readonly AIOPS_LOG_RATE_ANALYSIS: \"aiops/log_rate_analysis\"; readonly AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT: \"aiops/log_rate_analysis_index_select\"; readonly AIOPS_LOG_CATEGORIZATION: \"aiops/log_categorization\"; readonly AIOPS_LOG_CATEGORIZATION_INDEX_SELECT: \"aiops/log_categorization_index_select\"; readonly AIOPS_CHANGE_POINT_DETECTION: \"aiops/change_point_detection\"; readonly AIOPS_CHANGE_POINT_DETECTION_INDEX_SELECT: \"aiops/change_point_detection_index_select\"; }" ], "path": "x-pack/plugins/ml/common/constants/locator.ts", "deprecated": false, @@ -1292,9 +1292,13 @@ "MlCapabilitiesResponse", ">; checkIndicesExists({ indices }: { indices: string[]; }): Promise>; recognizeIndex({ indexPatternTitle, filter, }: { indexPatternTitle: string; filter?: string[] | undefined; }): Promise<", "RecognizeResult", - "[]>; listDataRecognizerModules(filter?: string[] | undefined): Promise; getDataRecognizerModule({ moduleId, filter }: { moduleId: string; filter?: string[] | undefined; }): Promise<", + "[]>; recognizeModule({ moduleId, size }: { moduleId: string; size?: number | undefined; }): Promise<", + "RecognizeModuleResult", + ">; listDataRecognizerModules(filter?: string[] | undefined): Promise; getDataRecognizerModule(params?: { moduleId: string; filter?: string[] | undefined; } | undefined): Promise<", "Module", - ">; dataRecognizerModuleJobsExist({ moduleId }: { moduleId: string; }): Promise; setupDataRecognizerConfig({ moduleId, prefix, groups, indexPatternName, query, useDedicatedIndex, startDatafeed, start, end, jobOverrides, estimateModelMemory, }: { moduleId: string; prefix?: string | undefined; groups?: string[] | undefined; indexPatternName?: string | undefined; query?: any; useDedicatedIndex?: boolean | undefined; startDatafeed?: boolean | undefined; start?: number | undefined; end?: number | undefined; jobOverrides?: Partial<", + " | ", + "Module", + "[]>; dataRecognizerModuleJobsExist({ moduleId }: { moduleId: string; }): Promise; setupDataRecognizerConfig({ moduleId, prefix, groups, indexPatternName, query, useDedicatedIndex, startDatafeed, start, end, jobOverrides, estimateModelMemory, }: { moduleId: string; prefix?: string | undefined; groups?: string[] | undefined; indexPatternName?: string | undefined; query?: any; useDedicatedIndex?: boolean | undefined; startDatafeed?: boolean | undefined; start?: number | undefined; end?: number | undefined; jobOverrides?: Partial<", "MlJob", ">[] | undefined; estimateModelMemory?: boolean | undefined; }): Promise<", "DataRecognizerConfigResponse", diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 589f9d22b722b..631a1506b17bd 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) for questi | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 154 | 3 | 67 | 101 | +| 154 | 3 | 67 | 102 | ## Client diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx index 5bb2841050b9a..a1bcdaf060393 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin'] --- import mockIdpPluginObj from './mock_idp_plugin.devdocs.json'; diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index a5bf1bab65b09..2ca761284d1e0 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-09-11 +date: 2024-09-16 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 ae51ca5280ca5..c2dda73f35726 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-09-11 +date: 2024-09-16 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 0b576e0e5b4c1..0e93de25a89a1 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-09-11 +date: 2024-09-16 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 a881bda121f87..233050fea8efc 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-09-11 +date: 2024-09-16 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 dc4c9dc75313c..99416ad1ee0bb 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-09-11 +date: 2024-09-16 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 cc36a9e0e7bbf..f73ec119b5760 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-09-11 +date: 2024-09-16 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 a3cffe97dc553..df57c1b532c37 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -2892,6 +2892,27 @@ "path": "x-pack/plugins/observability_solution/observability/public/plugin.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-public.ObservabilityPublicPluginsSetup.inventory", + "type": "Object", + "tags": [], + "label": "inventory", + "description": [], + "signature": [ + { + "pluginId": "inventory", + "scope": "public", + "docId": "kibInventoryPluginApi", + "section": "def-public.InventoryPublicSetup", + "text": "InventoryPublicSetup" + }, + " | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability/public/plugin.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -3842,6 +3863,27 @@ "path": "x-pack/plugins/observability_solution/observability/public/plugin.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-public.ObservabilityPublicPluginsStart.inventory", + "type": "Object", + "tags": [], + "label": "inventory", + "description": [], + "signature": [ + { + "pluginId": "inventory", + "scope": "public", + "docId": "kibInventoryPluginApi", + "section": "def-public.InventoryPublicStart", + "text": "InventoryPublicStart" + }, + " | undefined" + ], + "path": "x-pack/plugins/observability_solution/observability/public/plugin.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -8785,7 +8827,7 @@ "label": "config", "description": [], "signature": [ - "{ readonly enabled: boolean; readonly unsafe: Readonly<{} & { alertDetails: Readonly<{} & { uptime: Readonly<{} & { enabled: boolean; }>; observability: Readonly<{} & { enabled: boolean; }>; metrics: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; }>; thresholdRule: Readonly<{} & { enabled: boolean; }>; ruleFormV2: Readonly<{} & { enabled: boolean; }>; }>; readonly annotations: Readonly<{} & { index: string; enabled: boolean; }>; readonly customThresholdRule: Readonly<{} & { groupByPageSize: number; }>; readonly createO11yGenericFeatureId: boolean; }" + "{ readonly enabled: boolean; readonly annotations: Readonly<{} & { index: string; enabled: boolean; }>; readonly unsafe: Readonly<{} & { alertDetails: Readonly<{} & { uptime: Readonly<{} & { enabled: boolean; }>; observability: Readonly<{} & { enabled: boolean; }>; metrics: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; }>; thresholdRule: Readonly<{} & { enabled: boolean; }>; ruleFormV2: Readonly<{} & { enabled: boolean; }>; }>; readonly customThresholdRule: Readonly<{} & { groupByPageSize: number; }>; readonly createO11yGenericFeatureId: boolean; }" ], "path": "x-pack/plugins/observability_solution/observability/server/routes/types.ts", "deprecated": false, @@ -8805,7 +8847,15 @@ "label": "AbstractObservabilityServerRouteRepository", "description": [], "signature": [ - "{ [x: string]: { endpoint: string; params?: ", + "{ [x: string]: ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " Promise; } & Record; }" + " | undefined, any, any, Record>; }" ], "path": "x-pack/plugins/observability_solution/observability/server/routes/types.ts", "deprecated": false, @@ -8877,7 +8927,15 @@ "label": "ObservabilityAPIReturnType", "description": [], "signature": [ - "{ \"GET /api/observability/rules/alerts/dynamic_index_pattern 2023-10-31\": { endpoint: \"GET /api/observability/rules/alerts/dynamic_index_pattern 2023-10-31\"; params?: ", + "{ \"GET /api/observability/rules/alerts/dynamic_index_pattern 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/observability/rules/alerts/dynamic_index_pattern 2023-10-31\", ", "TypeC", "<{ query: ", "TypeC", @@ -8887,7 +8945,7 @@ "StringC", ">; namespace: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", { "pluginId": "observability", "scope": "server", @@ -8895,7 +8953,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - " & { params: { query: { registrationContexts: string[]; namespace: string; }; }; }) => Promise; } & ", + ", string[], ", { "pluginId": "observability", "scope": "server", @@ -8903,7 +8961,15 @@ "section": "def-server.ObservabilityRouteCreateOptions", "text": "ObservabilityRouteCreateOptions" }, - "; \"GET /internal/observability/assistant/alert_details_contextual_insights\": { endpoint: \"GET /internal/observability/assistant/alert_details_contextual_insights\"; params?: ", + ">; \"GET /internal/observability/assistant/alert_details_contextual_insights\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability/assistant/alert_details_contextual_insights\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -8931,7 +8997,7 @@ "StringC", "; 'kubernetes.pod.name': ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", { "pluginId": "observability", "scope": "server", @@ -8939,9 +9005,9 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - " & { params: { query: { alert_started_at: string; } & { alert_rule_parameter_time_size?: string | undefined; alert_rule_parameter_time_unit?: string | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.name'?: string | undefined; 'host.name'?: string | undefined; 'container.id'?: string | undefined; 'kubernetes.pod.name'?: string | undefined; }; }; }) => Promise<{ alertContext: ", + ", { alertContext: ", "AlertDetailsContextualInsight", - "[]; }>; } & ", + "[]; }, ", { "pluginId": "observability", "scope": "server", @@ -8949,7 +9015,15 @@ "section": "def-server.ObservabilityRouteCreateOptions", "text": "ObservabilityRouteCreateOptions" }, - "; }[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", + ">; }[TEndpoint] extends ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -8990,7 +9064,7 @@ "label": "ObservabilityConfig", "description": [], "signature": [ - "{ readonly enabled: boolean; readonly unsafe: Readonly<{} & { alertDetails: Readonly<{} & { uptime: Readonly<{} & { enabled: boolean; }>; observability: Readonly<{} & { enabled: boolean; }>; metrics: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; }>; thresholdRule: Readonly<{} & { enabled: boolean; }>; ruleFormV2: Readonly<{} & { enabled: boolean; }>; }>; readonly annotations: Readonly<{} & { index: string; enabled: boolean; }>; readonly customThresholdRule: Readonly<{} & { groupByPageSize: number; }>; readonly createO11yGenericFeatureId: boolean; }" + "{ readonly enabled: boolean; readonly annotations: Readonly<{} & { index: string; enabled: boolean; }>; readonly unsafe: Readonly<{} & { alertDetails: Readonly<{} & { uptime: Readonly<{} & { enabled: boolean; }>; observability: Readonly<{} & { enabled: boolean; }>; metrics: Readonly<{} & { enabled: boolean; }>; logs: Readonly<{} & { enabled: boolean; }>; }>; thresholdRule: Readonly<{} & { enabled: boolean; }>; ruleFormV2: Readonly<{} & { enabled: boolean; }>; }>; readonly customThresholdRule: Readonly<{} & { groupByPageSize: number; }>; readonly createO11yGenericFeatureId: boolean; }" ], "path": "x-pack/plugins/observability_solution/observability/server/index.ts", "deprecated": false, @@ -9005,7 +9079,15 @@ "label": "ObservabilityServerRouteRepository", "description": [], "signature": [ - "{ \"GET /api/observability/rules/alerts/dynamic_index_pattern 2023-10-31\": { endpoint: \"GET /api/observability/rules/alerts/dynamic_index_pattern 2023-10-31\"; params?: ", + "{ \"GET /api/observability/rules/alerts/dynamic_index_pattern 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /api/observability/rules/alerts/dynamic_index_pattern 2023-10-31\", ", "TypeC", "<{ query: ", "TypeC", @@ -9015,7 +9097,7 @@ "StringC", ">; namespace: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", { "pluginId": "observability", "scope": "server", @@ -9023,7 +9105,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - " & { params: { query: { registrationContexts: string[]; namespace: string; }; }; }) => Promise; } & ", + ", string[], ", { "pluginId": "observability", "scope": "server", @@ -9031,7 +9113,15 @@ "section": "def-server.ObservabilityRouteCreateOptions", "text": "ObservabilityRouteCreateOptions" }, - "; \"GET /internal/observability/assistant/alert_details_contextual_insights\": { endpoint: \"GET /internal/observability/assistant/alert_details_contextual_insights\"; params?: ", + ">; \"GET /internal/observability/assistant/alert_details_contextual_insights\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability/assistant/alert_details_contextual_insights\", ", "TypeC", "<{ query: ", "IntersectionC", @@ -9059,7 +9149,7 @@ "StringC", "; 'kubernetes.pod.name': ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", { "pluginId": "observability", "scope": "server", @@ -9067,9 +9157,9 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - " & { params: { query: { alert_started_at: string; } & { alert_rule_parameter_time_size?: string | undefined; alert_rule_parameter_time_unit?: string | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.name'?: string | undefined; 'host.name'?: string | undefined; 'container.id'?: string | undefined; 'kubernetes.pod.name'?: string | undefined; }; }; }) => Promise<{ alertContext: ", + ", { alertContext: ", "AlertDetailsContextualInsight", - "[]; }>; } & ", + "[]; }, ", { "pluginId": "observability", "scope": "server", @@ -9077,7 +9167,7 @@ "section": "def-server.ObservabilityRouteCreateOptions", "text": "ObservabilityRouteCreateOptions" }, - "; }" + ">; }" ], "path": "x-pack/plugins/observability_solution/observability/server/routes/get_global_observability_server_route_repository.ts", "deprecated": false, diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 4a3d1ad08b86d..d328829906668 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-09-11 +date: 2024-09-16 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 | |-------------------|-----------|------------------------|-----------------| -| 703 | 2 | 696 | 22 | +| 705 | 2 | 698 | 22 | ## Client diff --git a/api_docs/observability_a_i_assistant.devdocs.json b/api_docs/observability_a_i_assistant.devdocs.json index 2315816499755..b9cd1189dd76b 100644 --- a/api_docs/observability_a_i_assistant.devdocs.json +++ b/api_docs/observability_a_i_assistant.devdocs.json @@ -2058,17 +2058,33 @@ "section": "def-common.ClientRequestParamsOf", "text": "ClientRequestParamsOf" }, - "<{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"; params?: ", + "<{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ entryId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { entryId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/save\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/save\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/kb/entries/save\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/entries/save\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -2116,21 +2132,19 @@ "LiteralC", "<\"user_entry\">, ", "LiteralC", - "<\"elastic\">]>; }>]>; }> | undefined; handler: ({}: ", + "<\"elastic\">]>; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { confidence?: \"medium\" | \"high\" | \"low\" | undefined; is_correction?: boolean | undefined; public?: boolean | undefined; labels?: { [x: string]: string; } | undefined; role?: \"elastic\" | \"assistant_summarization\" | \"user_entry\" | undefined; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/import\"; params?: ", + "<\"POST /internal/observability_ai_assistant/kb/entries/import\", ", "TypeC", "<{ body: ", "TypeC", @@ -2152,27 +2166,33 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; }>>; }>; }> | undefined; handler: ({}: ", + ">; }>>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { entries: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }[]; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/observability_ai_assistant/kb/user_instructions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ userInstructions: (", + ", { userInstructions: (", "Instruction", - " & { public?: boolean | undefined; })[]; }>; } & ", + " & { public?: boolean | undefined; })[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/kb/user_instructions\", ", "TypeC", "<{ body: ", "TypeC", @@ -2192,21 +2212,19 @@ }, ">; public: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/entries\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; public: boolean; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", + "<\"GET /internal/observability_ai_assistant/kb/entries\", ", "TypeC", "<{ query: ", "TypeC", @@ -2220,9 +2238,9 @@ "LiteralC", "<\"asc\">, ", "LiteralC", - "<\"desc\">]>; }>; }> | undefined; handler: ({}: ", + "<\"desc\">]>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { query: { query: string; sortBy: string; sortDirection: \"asc\" | \"desc\"; }; }; }) => Promise<{ entries: ", + ", { entries: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -2230,21 +2248,45 @@ "section": "def-common.KnowledgeBaseEntry", "text": "KnowledgeBaseEntry" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/status\": { endpoint: \"GET /internal/observability_ai_assistant/kb/status\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/kb/status\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/kb/status\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ ready: boolean; error?: any; deployment_state?: ", + ", { ready: boolean; error?: any; deployment_state?: ", "MlDeploymentState", " | undefined; allocation_state?: ", "MlDeploymentAllocationState", - " | undefined; model_name?: string | undefined; }>; } & ", + " | undefined; model_name?: string | undefined; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/setup\": { endpoint: \"POST /internal/observability_ai_assistant/kb/setup\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/observability_ai_assistant/kb/setup\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/setup\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{}>; } & ", + ", {}, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/summarize\": { endpoint: \"POST /internal/observability_ai_assistant/functions/summarize\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/functions/summarize\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/functions/summarize\", ", "TypeC", "<{ body: ", "TypeC", @@ -2286,21 +2328,19 @@ "StringC", ", ", "StringC", - ">; }>; }> | undefined; handler: ({}: ", + ">; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/functions/recall\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/functions/recall\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -2324,15 +2364,23 @@ "ArrayC", "<", "StringC", - ">; }>]>; }> | undefined; handler: ({}: ", + ">; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { queries: ({ text: string; } & { boost?: number | undefined; })[]; } & { categories?: string[] | undefined; }; }; }) => Promise<{ entries: ", + ", { entries: ", "RecalledEntry", - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/functions\": { endpoint: \"GET /internal/observability_ai_assistant/functions\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/functions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/functions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ functionDefinitions: ", + ", { functionDefinitions: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -2340,11 +2388,19 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "[]; systemMessage: string; }>; } & ", + "[]; systemMessage: string; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/connectors\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/connectors\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<", + ", ", { "pluginId": "actions", "scope": "server", @@ -2352,19 +2408,35 @@ "section": "def-server.ConnectorWithExtraFindData", "text": "ConnectorWithExtraFindData" }, - "[]>; } & ", + "[], ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\", ", "TypeC", "<{ path: ", "TypeC", @@ -2374,9 +2446,9 @@ "TypeC", "<{ title: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { title: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -2384,9 +2456,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -2400,11 +2480,9 @@ "ConversationUpdateRequest", ", ", "ConversationUpdateRequest", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { conversation: ", - "ConversationUpdateRequest", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -2412,9 +2490,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversation\": { endpoint: \"POST /internal/observability_ai_assistant/conversation\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversation\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversation\", ", "TypeC", "<{ body: ", "TypeC", @@ -2424,11 +2510,9 @@ "ConversationRequestBase", ", ", "ConversationRequestBase", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { conversation: ", - "ConversationRequestBase", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -2436,17 +2520,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversations\": { endpoint: \"POST /internal/observability_ai_assistant/conversations\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversations\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversations\", ", "PartialC", "<{ body: ", "PartialC", "<{ query: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params?: { body?: { query?: string | undefined; } | undefined; } | undefined; }) => Promise<{ conversations: ", + ", { conversations: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -2454,17 +2546,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"GET /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -2472,9 +2572,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": { endpoint: \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\"; params?: ", + ">; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/observability_ai_assistant/chat/complete 2023-10-31\", ", "IntersectionC", "<[", "TypeC", @@ -2566,21 +2674,21 @@ "LiteralC", "<\"default\">, ", "LiteralC", - "<\"openai\">]>; }>; }>]> | undefined; handler: ({}: ", + "<\"openai\">]>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/complete\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/complete\": { endpoint: \"POST /internal/observability_ai_assistant/chat/complete\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/complete\", ", "IntersectionC", "<[", "TypeC", @@ -2658,23 +2766,21 @@ "ObservabilityAIAssistantScreenContextRequest", ", ", "ObservabilityAIAssistantScreenContextRequest", - ", unknown>>; }>; }>]> | undefined; handler: ({}: ", + ", unknown>>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/recall\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", - "ObservabilityAIAssistantScreenContextRequest", - "[]; }; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/recall\": { endpoint: \"POST /internal/observability_ai_assistant/chat/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/recall\", ", "TypeC", "<{ body: ", "TypeC", @@ -2684,13 +2790,21 @@ "StringC", "; connectorId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { prompt: string; context: string; connectorId: string; }; }; }) => Promise<", + ", ", "Readable", - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/chat\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/chat\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -2738,21 +2852,13 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { name: string; messages: ", - { - "pluginId": "observabilityAIAssistant", - "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" - }, - "[]; connectorId: string; functions: ({ name: string; description: string; } & { parameters?: any; })[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", + ", ", "Readable", - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; }, TEndpoint> & Omit & { signal: AbortSignal | null; }>) => Promise<", + ">; }, TEndpoint> & Omit & { signal: AbortSignal | null; }>) => Promise<", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -2760,17 +2866,33 @@ "section": "def-common.ReturnOf", "text": "ReturnOf" }, - "<{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"; params?: ", + "<{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ entryId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { entryId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/save\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/save\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/kb/entries/save\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/entries/save\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -2818,21 +2940,19 @@ "LiteralC", "<\"user_entry\">, ", "LiteralC", - "<\"elastic\">]>; }>]>; }> | undefined; handler: ({}: ", + "<\"elastic\">]>; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { confidence?: \"medium\" | \"high\" | \"low\" | undefined; is_correction?: boolean | undefined; public?: boolean | undefined; labels?: { [x: string]: string; } | undefined; role?: \"elastic\" | \"assistant_summarization\" | \"user_entry\" | undefined; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/import\"; params?: ", + "<\"POST /internal/observability_ai_assistant/kb/entries/import\", ", "TypeC", "<{ body: ", "TypeC", @@ -2854,27 +2974,33 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; }>>; }>; }> | undefined; handler: ({}: ", + ">; }>>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { entries: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }[]; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/observability_ai_assistant/kb/user_instructions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ userInstructions: (", + ", { userInstructions: (", "Instruction", - " & { public?: boolean | undefined; })[]; }>; } & ", + " & { public?: boolean | undefined; })[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/kb/user_instructions\", ", "TypeC", "<{ body: ", "TypeC", @@ -2894,21 +3020,19 @@ }, ">; public: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/entries\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; public: boolean; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", + "<\"GET /internal/observability_ai_assistant/kb/entries\", ", "TypeC", "<{ query: ", "TypeC", @@ -2922,9 +3046,9 @@ "LiteralC", "<\"asc\">, ", "LiteralC", - "<\"desc\">]>; }>; }> | undefined; handler: ({}: ", + "<\"desc\">]>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { query: { query: string; sortBy: string; sortDirection: \"asc\" | \"desc\"; }; }; }) => Promise<{ entries: ", + ", { entries: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -2932,21 +3056,45 @@ "section": "def-common.KnowledgeBaseEntry", "text": "KnowledgeBaseEntry" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/status\": { endpoint: \"GET /internal/observability_ai_assistant/kb/status\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/kb/status\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/kb/status\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ ready: boolean; error?: any; deployment_state?: ", + ", { ready: boolean; error?: any; deployment_state?: ", "MlDeploymentState", " | undefined; allocation_state?: ", "MlDeploymentAllocationState", - " | undefined; model_name?: string | undefined; }>; } & ", + " | undefined; model_name?: string | undefined; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/setup\": { endpoint: \"POST /internal/observability_ai_assistant/kb/setup\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/observability_ai_assistant/kb/setup\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/setup\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{}>; } & ", + ", {}, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/summarize\": { endpoint: \"POST /internal/observability_ai_assistant/functions/summarize\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/functions/summarize\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/functions/summarize\", ", "TypeC", "<{ body: ", "TypeC", @@ -2988,21 +3136,19 @@ "StringC", ", ", "StringC", - ">; }>; }> | undefined; handler: ({}: ", + ">; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/functions/recall\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/functions/recall\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -3026,15 +3172,23 @@ "ArrayC", "<", "StringC", - ">; }>]>; }> | undefined; handler: ({}: ", + ">; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { queries: ({ text: string; } & { boost?: number | undefined; })[]; } & { categories?: string[] | undefined; }; }; }) => Promise<{ entries: ", + ", { entries: ", "RecalledEntry", - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/functions\": { endpoint: \"GET /internal/observability_ai_assistant/functions\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/functions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/functions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ functionDefinitions: ", + ", { functionDefinitions: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -3042,11 +3196,19 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "[]; systemMessage: string; }>; } & ", + "[]; systemMessage: string; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/connectors\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/connectors\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<", + ", ", { "pluginId": "actions", "scope": "server", @@ -3054,19 +3216,35 @@ "section": "def-server.ConnectorWithExtraFindData", "text": "ConnectorWithExtraFindData" }, - "[]>; } & ", + "[], ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\", ", "TypeC", "<{ path: ", "TypeC", @@ -3076,9 +3254,9 @@ "TypeC", "<{ title: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { title: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -3086,9 +3264,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -3102,11 +3288,9 @@ "ConversationUpdateRequest", ", ", "ConversationUpdateRequest", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { conversation: ", - "ConversationUpdateRequest", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -3114,9 +3298,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversation\": { endpoint: \"POST /internal/observability_ai_assistant/conversation\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversation\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversation\", ", "TypeC", "<{ body: ", "TypeC", @@ -3126,11 +3318,9 @@ "ConversationRequestBase", ", ", "ConversationRequestBase", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { conversation: ", - "ConversationRequestBase", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -3138,17 +3328,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversations\": { endpoint: \"POST /internal/observability_ai_assistant/conversations\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversations\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversations\", ", "PartialC", "<{ body: ", "PartialC", "<{ query: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params?: { body?: { query?: string | undefined; } | undefined; } | undefined; }) => Promise<{ conversations: ", + ", { conversations: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -3156,17 +3354,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"GET /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -3174,9 +3380,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": { endpoint: \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\"; params?: ", + ">; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/observability_ai_assistant/chat/complete 2023-10-31\", ", "IntersectionC", "<[", "TypeC", @@ -3268,21 +3482,21 @@ "LiteralC", "<\"default\">, ", "LiteralC", - "<\"openai\">]>; }>; }>]> | undefined; handler: ({}: ", + "<\"openai\">]>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/complete\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/complete\": { endpoint: \"POST /internal/observability_ai_assistant/chat/complete\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/complete\", ", "IntersectionC", "<[", "TypeC", @@ -3359,24 +3573,22 @@ "<", "ObservabilityAIAssistantScreenContextRequest", ", ", - "ObservabilityAIAssistantScreenContextRequest", - ", unknown>>; }>; }>]> | undefined; handler: ({}: ", - "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + "ObservabilityAIAssistantScreenContextRequest", + ", unknown>>; }>; }>]>, ", + "ObservabilityAIAssistantRouteHandlerResources", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/recall\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", - "ObservabilityAIAssistantScreenContextRequest", - "[]; }; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/recall\": { endpoint: \"POST /internal/observability_ai_assistant/chat/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/recall\", ", "TypeC", "<{ body: ", "TypeC", @@ -3386,13 +3598,21 @@ "StringC", "; connectorId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { prompt: string; context: string; connectorId: string; }; }; }) => Promise<", + ", ", "Readable", - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/chat\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/chat\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -3440,21 +3660,13 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { name: string; messages: ", - { - "pluginId": "observabilityAIAssistant", - "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" - }, - "[]; connectorId: string; functions: ({ name: string; description: string; } & { parameters?: any; })[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", + ", ", "Readable", - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; }, TEndpoint>>" + ">; }, TEndpoint>>" ], "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/types.ts", "deprecated": false, @@ -4089,17 +4301,33 @@ "label": "APIReturnType", "description": [], "signature": [ - "{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"; params?: ", + "{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ entryId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { entryId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/save\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/save\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/kb/entries/save\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/entries/save\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -4147,21 +4375,19 @@ "LiteralC", "<\"user_entry\">, ", "LiteralC", - "<\"elastic\">]>; }>]>; }> | undefined; handler: ({}: ", + "<\"elastic\">]>; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { confidence?: \"medium\" | \"high\" | \"low\" | undefined; is_correction?: boolean | undefined; public?: boolean | undefined; labels?: { [x: string]: string; } | undefined; role?: \"elastic\" | \"assistant_summarization\" | \"user_entry\" | undefined; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/import\"; params?: ", + "<\"POST /internal/observability_ai_assistant/kb/entries/import\", ", "TypeC", "<{ body: ", "TypeC", @@ -4183,27 +4409,33 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; }>>; }>; }> | undefined; handler: ({}: ", + ">; }>>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { entries: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }[]; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/observability_ai_assistant/kb/user_instructions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ userInstructions: (", + ", { userInstructions: (", "Instruction", - " & { public?: boolean | undefined; })[]; }>; } & ", + " & { public?: boolean | undefined; })[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/kb/user_instructions\", ", "TypeC", "<{ body: ", "TypeC", @@ -4223,21 +4455,19 @@ }, ">; public: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/entries\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; public: boolean; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", + "<\"GET /internal/observability_ai_assistant/kb/entries\", ", "TypeC", "<{ query: ", "TypeC", @@ -4251,9 +4481,9 @@ "LiteralC", "<\"asc\">, ", "LiteralC", - "<\"desc\">]>; }>; }> | undefined; handler: ({}: ", + "<\"desc\">]>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { query: { query: string; sortBy: string; sortDirection: \"asc\" | \"desc\"; }; }; }) => Promise<{ entries: ", + ", { entries: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -4261,21 +4491,45 @@ "section": "def-common.KnowledgeBaseEntry", "text": "KnowledgeBaseEntry" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/status\": { endpoint: \"GET /internal/observability_ai_assistant/kb/status\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/kb/status\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/kb/status\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ ready: boolean; error?: any; deployment_state?: ", + ", { ready: boolean; error?: any; deployment_state?: ", "MlDeploymentState", " | undefined; allocation_state?: ", "MlDeploymentAllocationState", - " | undefined; model_name?: string | undefined; }>; } & ", + " | undefined; model_name?: string | undefined; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/setup\": { endpoint: \"POST /internal/observability_ai_assistant/kb/setup\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/observability_ai_assistant/kb/setup\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/setup\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{}>; } & ", + ", {}, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/summarize\": { endpoint: \"POST /internal/observability_ai_assistant/functions/summarize\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/functions/summarize\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/functions/summarize\", ", "TypeC", "<{ body: ", "TypeC", @@ -4317,21 +4571,19 @@ "StringC", ", ", "StringC", - ">; }>; }> | undefined; handler: ({}: ", + ">; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/functions/recall\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/functions/recall\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -4355,15 +4607,23 @@ "ArrayC", "<", "StringC", - ">; }>]>; }> | undefined; handler: ({}: ", + ">; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { queries: ({ text: string; } & { boost?: number | undefined; })[]; } & { categories?: string[] | undefined; }; }; }) => Promise<{ entries: ", + ", { entries: ", "RecalledEntry", - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/functions\": { endpoint: \"GET /internal/observability_ai_assistant/functions\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/functions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/functions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ functionDefinitions: ", + ", { functionDefinitions: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -4371,11 +4631,19 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "[]; systemMessage: string; }>; } & ", + "[]; systemMessage: string; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/connectors\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/connectors\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<", + ", ", { "pluginId": "actions", "scope": "server", @@ -4383,19 +4651,35 @@ "section": "def-server.ConnectorWithExtraFindData", "text": "ConnectorWithExtraFindData" }, - "[]>; } & ", + "[], ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\", ", "TypeC", "<{ path: ", "TypeC", @@ -4405,9 +4689,9 @@ "TypeC", "<{ title: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { title: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -4415,9 +4699,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -4431,11 +4723,9 @@ "ConversationUpdateRequest", ", ", "ConversationUpdateRequest", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { conversation: ", - "ConversationUpdateRequest", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -4443,9 +4733,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversation\": { endpoint: \"POST /internal/observability_ai_assistant/conversation\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversation\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversation\", ", "TypeC", "<{ body: ", "TypeC", @@ -4455,11 +4753,9 @@ "ConversationRequestBase", ", ", "ConversationRequestBase", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { conversation: ", - "ConversationRequestBase", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -4467,17 +4763,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversations\": { endpoint: \"POST /internal/observability_ai_assistant/conversations\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversations\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversations\", ", "PartialC", "<{ body: ", "PartialC", "<{ query: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params?: { body?: { query?: string | undefined; } | undefined; } | undefined; }) => Promise<{ conversations: ", + ", { conversations: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -4485,17 +4789,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"GET /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -4503,9 +4815,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": { endpoint: \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\"; params?: ", + ">; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/observability_ai_assistant/chat/complete 2023-10-31\", ", "IntersectionC", "<[", "TypeC", @@ -4597,21 +4917,21 @@ "LiteralC", "<\"default\">, ", "LiteralC", - "<\"openai\">]>; }>; }>]> | undefined; handler: ({}: ", + "<\"openai\">]>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/complete\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/complete\": { endpoint: \"POST /internal/observability_ai_assistant/chat/complete\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/complete\", ", "IntersectionC", "<[", "TypeC", @@ -4689,23 +5009,21 @@ "ObservabilityAIAssistantScreenContextRequest", ", ", "ObservabilityAIAssistantScreenContextRequest", - ", unknown>>; }>; }>]> | undefined; handler: ({}: ", + ", unknown>>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/recall\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", - "ObservabilityAIAssistantScreenContextRequest", - "[]; }; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/recall\": { endpoint: \"POST /internal/observability_ai_assistant/chat/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/recall\", ", "TypeC", "<{ body: ", "TypeC", @@ -4715,13 +5033,21 @@ "StringC", "; connectorId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { prompt: string; context: string; connectorId: string; }; }; }) => Promise<", + ", ", "Readable", - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/chat\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/chat\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -4769,21 +5095,21 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { name: string; messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; }[TEndpoint] extends ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; functions: ({ name: string; description: string; } & { parameters?: any; })[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; }[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", + " ? TReturnType extends ", { "pluginId": "@kbn/core-http-server", "scope": "server", @@ -5014,17 +5340,33 @@ "label": "ObservabilityAIAssistantAPIClientRequestParamsOf", "description": [], "signature": [ - "{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"; params?: ", + "{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ entryId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { entryId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/save\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/save\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/kb/entries/save\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/entries/save\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -5072,21 +5414,19 @@ "LiteralC", "<\"user_entry\">, ", "LiteralC", - "<\"elastic\">]>; }>]>; }> | undefined; handler: ({}: ", + "<\"elastic\">]>; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { confidence?: \"medium\" | \"high\" | \"low\" | undefined; is_correction?: boolean | undefined; public?: boolean | undefined; labels?: { [x: string]: string; } | undefined; role?: \"elastic\" | \"assistant_summarization\" | \"user_entry\" | undefined; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/import\"; params?: ", + "<\"POST /internal/observability_ai_assistant/kb/entries/import\", ", "TypeC", "<{ body: ", "TypeC", @@ -5108,27 +5448,33 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; }>>; }>; }> | undefined; handler: ({}: ", + ">; }>>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { entries: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }[]; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/observability_ai_assistant/kb/user_instructions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ userInstructions: (", + ", { userInstructions: (", "Instruction", - " & { public?: boolean | undefined; })[]; }>; } & ", + " & { public?: boolean | undefined; })[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/kb/user_instructions\", ", "TypeC", "<{ body: ", "TypeC", @@ -5148,21 +5494,19 @@ }, ">; public: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/entries\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; public: boolean; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", + "<\"GET /internal/observability_ai_assistant/kb/entries\", ", "TypeC", "<{ query: ", "TypeC", @@ -5176,9 +5520,9 @@ "LiteralC", "<\"asc\">, ", "LiteralC", - "<\"desc\">]>; }>; }> | undefined; handler: ({}: ", + "<\"desc\">]>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { query: { query: string; sortBy: string; sortDirection: \"asc\" | \"desc\"; }; }; }) => Promise<{ entries: ", + ", { entries: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -5186,21 +5530,45 @@ "section": "def-common.KnowledgeBaseEntry", "text": "KnowledgeBaseEntry" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/status\": { endpoint: \"GET /internal/observability_ai_assistant/kb/status\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/kb/status\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/kb/status\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ ready: boolean; error?: any; deployment_state?: ", + ", { ready: boolean; error?: any; deployment_state?: ", "MlDeploymentState", " | undefined; allocation_state?: ", "MlDeploymentAllocationState", - " | undefined; model_name?: string | undefined; }>; } & ", + " | undefined; model_name?: string | undefined; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/setup\": { endpoint: \"POST /internal/observability_ai_assistant/kb/setup\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/observability_ai_assistant/kb/setup\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/setup\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{}>; } & ", + ", {}, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/summarize\": { endpoint: \"POST /internal/observability_ai_assistant/functions/summarize\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/functions/summarize\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/functions/summarize\", ", "TypeC", "<{ body: ", "TypeC", @@ -5242,21 +5610,19 @@ "StringC", ", ", "StringC", - ">; }>; }> | undefined; handler: ({}: ", + ">; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/functions/recall\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/functions/recall\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -5280,15 +5646,23 @@ "ArrayC", "<", "StringC", - ">; }>]>; }> | undefined; handler: ({}: ", + ">; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { queries: ({ text: string; } & { boost?: number | undefined; })[]; } & { categories?: string[] | undefined; }; }; }) => Promise<{ entries: ", + ", { entries: ", "RecalledEntry", - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/functions\": { endpoint: \"GET /internal/observability_ai_assistant/functions\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/functions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/functions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ functionDefinitions: ", + ", { functionDefinitions: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -5296,11 +5670,19 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "[]; systemMessage: string; }>; } & ", + "[]; systemMessage: string; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/connectors\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/connectors\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<", + ", ", { "pluginId": "actions", "scope": "server", @@ -5308,19 +5690,35 @@ "section": "def-server.ConnectorWithExtraFindData", "text": "ConnectorWithExtraFindData" }, - "[]>; } & ", + "[], ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\", ", "TypeC", "<{ path: ", "TypeC", @@ -5330,9 +5728,9 @@ "TypeC", "<{ title: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { title: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -5340,9 +5738,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -5356,11 +5762,9 @@ "ConversationUpdateRequest", ", ", "ConversationUpdateRequest", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { conversation: ", - "ConversationUpdateRequest", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -5368,9 +5772,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversation\": { endpoint: \"POST /internal/observability_ai_assistant/conversation\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversation\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversation\", ", "TypeC", "<{ body: ", "TypeC", @@ -5380,11 +5792,9 @@ "ConversationRequestBase", ", ", "ConversationRequestBase", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { conversation: ", - "ConversationRequestBase", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -5392,17 +5802,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversations\": { endpoint: \"POST /internal/observability_ai_assistant/conversations\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversations\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversations\", ", "PartialC", "<{ body: ", "PartialC", "<{ query: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params?: { body?: { query?: string | undefined; } | undefined; } | undefined; }) => Promise<{ conversations: ", + ", { conversations: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -5410,17 +5828,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"GET /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -5428,9 +5854,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": { endpoint: \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\"; params?: ", + ">; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/observability_ai_assistant/chat/complete 2023-10-31\", ", "IntersectionC", "<[", "TypeC", @@ -5522,21 +5956,21 @@ "LiteralC", "<\"default\">, ", "LiteralC", - "<\"openai\">]>; }>; }>]> | undefined; handler: ({}: ", + "<\"openai\">]>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/complete\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/complete\": { endpoint: \"POST /internal/observability_ai_assistant/chat/complete\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/complete\", ", "IntersectionC", "<[", "TypeC", @@ -5614,23 +6048,21 @@ "ObservabilityAIAssistantScreenContextRequest", ", ", "ObservabilityAIAssistantScreenContextRequest", - ", unknown>>; }>; }>]> | undefined; handler: ({}: ", + ", unknown>>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/recall\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", - "ObservabilityAIAssistantScreenContextRequest", - "[]; }; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/recall\": { endpoint: \"POST /internal/observability_ai_assistant/chat/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/recall\", ", "TypeC", "<{ body: ", "TypeC", @@ -5640,13 +6072,21 @@ "StringC", "; connectorId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { prompt: string; context: string; connectorId: string; }; }; }) => Promise<", + ", ", "Readable", - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/chat\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/chat\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -5694,21 +6134,21 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { name: string; messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; }[TEndpoint] extends ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; functions: ({ name: string; description: string; } & { parameters?: any; })[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + " Promise; } & ", + " | undefined, any, any, ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -5724,7 +6164,7 @@ "section": "def-common.ServerRouteCreateOptions", "text": "ServerRouteCreateOptions" }, - " ? TRouteParamsRT extends ", + "> ? TRouteParamsRT extends ", { "pluginId": "@kbn/server-route-repository-utils", "scope": "common", @@ -5732,7 +6172,7 @@ "section": "def-common.RouteParamsRT", "text": "RouteParamsRT" }, - " ? ClientRequestParamsOfType : {} : never" + " ? ClientRequestParamsOfType : TRouteParamsRT extends undefined ? {} : never : never" ], "path": "x-pack/plugins/observability_solution/observability_ai_assistant/public/api/index.ts", "deprecated": false, @@ -6460,17 +6900,33 @@ "label": "ObservabilityAIAssistantServerRouteRepository", "description": [], "signature": [ - "{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\"; params?: ", + "{ \"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/kb/entries/{entryId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ entryId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { entryId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/save\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/save\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/kb/entries/save\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/entries/save\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -6518,21 +6974,19 @@ "LiteralC", "<\"user_entry\">, ", "LiteralC", - "<\"elastic\">]>; }>]>; }> | undefined; handler: ({}: ", + "<\"elastic\">]>; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; } & { confidence?: \"medium\" | \"high\" | \"low\" | undefined; is_correction?: boolean | undefined; public?: boolean | undefined; labels?: { [x: string]: string; } | undefined; role?: \"elastic\" | \"assistant_summarization\" | \"user_entry\" | undefined; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/entries/import\": { endpoint: \"POST /internal/observability_ai_assistant/kb/entries/import\"; params?: ", + "<\"POST /internal/observability_ai_assistant/kb/entries/import\", ", "TypeC", "<{ body: ", "TypeC", @@ -6554,27 +7008,33 @@ "section": "def-common.NonEmptyStringBrand", "text": "NonEmptyStringBrand" }, - ">; }>>; }>; }> | undefined; handler: ({}: ", + ">; }>>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { entries: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; }[]; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"GET /internal/observability_ai_assistant/kb/user_instructions\"; params?: undefined; handler: ({}: ", + "<\"GET /internal/observability_ai_assistant/kb/user_instructions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ userInstructions: (", + ", { userInstructions: (", "Instruction", - " & { public?: boolean | undefined; })[]; }>; } & ", + " & { public?: boolean | undefined; })[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": { endpoint: \"PUT /internal/observability_ai_assistant/kb/user_instructions\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/kb/user_instructions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/kb/user_instructions\", ", "TypeC", "<{ body: ", "TypeC", @@ -6594,21 +7054,19 @@ }, ">; public: ", "Type", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"GET /internal/observability_ai_assistant/kb/entries\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; public: boolean; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/entries\": { endpoint: \"GET /internal/observability_ai_assistant/kb/entries\"; params?: ", + "<\"GET /internal/observability_ai_assistant/kb/entries\", ", "TypeC", "<{ query: ", "TypeC", @@ -6622,9 +7080,9 @@ "LiteralC", "<\"asc\">, ", "LiteralC", - "<\"desc\">]>; }>; }> | undefined; handler: ({}: ", + "<\"desc\">]>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { query: { query: string; sortBy: string; sortDirection: \"asc\" | \"desc\"; }; }; }) => Promise<{ entries: ", + ", { entries: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -6632,21 +7090,45 @@ "section": "def-common.KnowledgeBaseEntry", "text": "KnowledgeBaseEntry" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/kb/status\": { endpoint: \"GET /internal/observability_ai_assistant/kb/status\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/kb/status\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/kb/status\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ ready: boolean; error?: any; deployment_state?: ", + ", { ready: boolean; error?: any; deployment_state?: ", "MlDeploymentState", " | undefined; allocation_state?: ", "MlDeploymentAllocationState", - " | undefined; model_name?: string | undefined; }>; } & ", + " | undefined; model_name?: string | undefined; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/kb/setup\": { endpoint: \"POST /internal/observability_ai_assistant/kb/setup\"; params?: undefined; handler: ({}: ", + ">; \"POST /internal/observability_ai_assistant/kb/setup\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/kb/setup\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{}>; } & ", + ", {}, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/summarize\": { endpoint: \"POST /internal/observability_ai_assistant/functions/summarize\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/functions/summarize\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/functions/summarize\", ", "TypeC", "<{ body: ", "TypeC", @@ -6688,21 +7170,19 @@ "StringC", ", ", "StringC", - ">; }>; }> | undefined; handler: ({}: ", + ">; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { id: string; text: ", - "Branded", - "; \"POST /internal/observability_ai_assistant/functions/recall\": ", { - "pluginId": "@kbn/io-ts-utils", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibKbnIoTsUtilsPluginApi", - "section": "def-common.NonEmptyStringBrand", - "text": "NonEmptyStringBrand" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - ">; confidence: \"medium\" | \"high\" | \"low\"; is_correction: boolean; type: \"user_instruction\" | \"contextual\"; public: boolean; labels: { [x: string]: string; }; }; }; }) => Promise; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/functions/recall\": { endpoint: \"POST /internal/observability_ai_assistant/functions/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/functions/recall\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -6726,15 +7206,23 @@ "ArrayC", "<", "StringC", - ">; }>]>; }> | undefined; handler: ({}: ", + ">; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { queries: ({ text: string; } & { boost?: number | undefined; })[]; } & { categories?: string[] | undefined; }; }; }) => Promise<{ entries: ", + ", { entries: ", "RecalledEntry", - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/functions\": { endpoint: \"GET /internal/observability_ai_assistant/functions\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/functions\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/functions\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<{ functionDefinitions: ", + ", { functionDefinitions: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -6742,11 +7230,19 @@ "section": "def-common.FunctionDefinition", "text": "FunctionDefinition" }, - "[]; systemMessage: string; }>; } & ", + "[]; systemMessage: string; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/connectors\": { endpoint: \"GET /internal/observability_ai_assistant/connectors\"; params?: undefined; handler: ({}: ", + ">; \"GET /internal/observability_ai_assistant/connectors\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/connectors\", undefined, ", "ObservabilityAIAssistantRouteHandlerResources", - ") => Promise<", + ", ", { "pluginId": "actions", "scope": "server", @@ -6754,19 +7250,35 @@ "section": "def-server.ConnectorWithExtraFindData", "text": "ConnectorWithExtraFindData" }, - "[]>; } & ", + "[], ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"DELETE /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise; } & ", + ", void, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}/title\", ", "TypeC", "<{ path: ", "TypeC", @@ -6776,9 +7288,9 @@ "TypeC", "<{ title: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { title: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -6786,9 +7298,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"PUT /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"PUT /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", @@ -6802,11 +7322,9 @@ "ConversationUpdateRequest", ", ", "ConversationUpdateRequest", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; body: { conversation: ", - "ConversationUpdateRequest", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -6814,9 +7332,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversation\": { endpoint: \"POST /internal/observability_ai_assistant/conversation\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversation\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversation\", ", "TypeC", "<{ body: ", "TypeC", @@ -6826,11 +7352,9 @@ "ConversationRequestBase", ", ", "ConversationRequestBase", - ", unknown>; }>; }> | undefined; handler: ({}: ", + ", unknown>; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { conversation: ", - "ConversationRequestBase", - "; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -6838,17 +7362,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/conversations\": { endpoint: \"POST /internal/observability_ai_assistant/conversations\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/conversations\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/conversations\", ", "PartialC", "<{ body: ", "PartialC", "<{ query: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params?: { body?: { query?: string | undefined; } | undefined; } | undefined; }) => Promise<{ conversations: ", + ", { conversations: ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -6856,17 +7388,25 @@ "section": "def-common.Conversation", "text": "Conversation" }, - "[]; }>; } & ", + "[]; }, ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": { endpoint: \"GET /internal/observability_ai_assistant/conversation/{conversationId}\"; params?: ", + ">; \"GET /internal/observability_ai_assistant/conversation/{conversationId}\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/observability_ai_assistant/conversation/{conversationId}\", ", "TypeC", "<{ path: ", "TypeC", "<{ conversationId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { path: { conversationId: string; }; }; }) => Promise<", + ", ", { "pluginId": "observabilityAIAssistant", "scope": "common", @@ -6874,9 +7414,17 @@ "section": "def-common.Conversation", "text": "Conversation" }, - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": { endpoint: \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\"; params?: ", + ">; \"POST /api/observability_ai_assistant/chat/complete 2023-10-31\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /api/observability_ai_assistant/chat/complete 2023-10-31\", ", "IntersectionC", "<[", "TypeC", @@ -6968,21 +7516,21 @@ "LiteralC", "<\"default\">, ", "LiteralC", - "<\"openai\">]>; }>; }>]> | undefined; handler: ({}: ", + "<\"openai\">]>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/complete\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body?: { actions?: ({ name: string; description: string; } & { parameters?: any; })[] | undefined; } | undefined; query?: { format?: \"default\" | \"openai\" | undefined; } | undefined; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/complete\": { endpoint: \"POST /internal/observability_ai_assistant/chat/complete\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/complete\", ", "IntersectionC", "<[", "TypeC", @@ -7060,23 +7608,21 @@ "ObservabilityAIAssistantScreenContextRequest", ", ", "ObservabilityAIAssistantScreenContextRequest", - ", unknown>>; }>; }>]> | undefined; handler: ({}: ", + ", unknown>>; }>; }>]>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { messages: ", + ", ", + "Readable", + ", ", + "ObservabilityAIAssistantRouteCreateOptions", + ">; \"POST /internal/observability_ai_assistant/chat/recall\": ", { - "pluginId": "observabilityAIAssistant", + "pluginId": "@kbn/server-route-repository-utils", "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" }, - "[]; connectorId: string; persist: boolean; } & { conversationId?: string | undefined; title?: string | undefined; disableFunctions?: boolean | { except: string[]; } | undefined; instructions?: ({ doc_id?: string | undefined; } & { text: string; instruction_type: \"user_instruction\" | \"application_instruction\"; })[] | undefined; }; } & { body: { screenContexts: ", - "ObservabilityAIAssistantScreenContextRequest", - "[]; }; }; }) => Promise<", - "Readable", - ">; } & ", - "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat/recall\": { endpoint: \"POST /internal/observability_ai_assistant/chat/recall\"; params?: ", + "<\"POST /internal/observability_ai_assistant/chat/recall\", ", "TypeC", "<{ body: ", "TypeC", @@ -7086,13 +7632,21 @@ "StringC", "; connectorId: ", "StringC", - "; }>; }> | undefined; handler: ({}: ", + "; }>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { prompt: string; context: string; connectorId: string; }; }; }) => Promise<", + ", ", "Readable", - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", + ">; \"POST /internal/observability_ai_assistant/chat\": ", + { + "pluginId": "@kbn/server-route-repository-utils", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryUtilsPluginApi", + "section": "def-common.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/observability_ai_assistant/chat\", ", "TypeC", "<{ body: ", "IntersectionC", @@ -7140,21 +7694,13 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }> | undefined; handler: ({}: ", + "; }>]>; }>, ", "ObservabilityAIAssistantRouteHandlerResources", - " & { params: { body: { name: string; messages: ", - { - "pluginId": "observabilityAIAssistant", - "scope": "common", - "docId": "kibObservabilityAIAssistantPluginApi", - "section": "def-common.Message", - "text": "Message" - }, - "[]; connectorId: string; functions: ({ name: string; description: string; } & { parameters?: any; })[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", + ", ", "Readable", - ">; } & ", + ", ", "ObservabilityAIAssistantRouteCreateOptions", - "; }" + ">; }" ], "path": "x-pack/plugins/observability_solution/observability_ai_assistant/server/routes/get_global_observability_ai_assistant_route_repository.ts", "deprecated": false, diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index a19da5dc686ba..8df0c80b4f7b3 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant_app.mdx b/api_docs/observability_a_i_assistant_app.mdx index 8ef621f7a6043..bbf024f9241f2 100644 --- a/api_docs/observability_a_i_assistant_app.mdx +++ b/api_docs/observability_a_i_assistant_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistantApp title: "observabilityAIAssistantApp" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistantApp plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistantApp'] --- import observabilityAIAssistantAppObj from './observability_a_i_assistant_app.devdocs.json'; diff --git a/api_docs/observability_ai_assistant_management.mdx b/api_docs/observability_ai_assistant_management.mdx index c20a710e83e08..a1f56e774a6c1 100644 --- a/api_docs/observability_ai_assistant_management.mdx +++ b/api_docs/observability_ai_assistant_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAiAssistantManagement title: "observabilityAiAssistantManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAiAssistantManagement plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAiAssistantManagement'] --- import observabilityAiAssistantManagementObj from './observability_ai_assistant_management.devdocs.json'; diff --git a/api_docs/observability_logs_explorer.mdx b/api_docs/observability_logs_explorer.mdx index c5acbb6094b50..f4e66e35942ae 100644 --- a/api_docs/observability_logs_explorer.mdx +++ b/api_docs/observability_logs_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogsExplorer title: "observabilityLogsExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogsExplorer plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogsExplorer'] --- import observabilityLogsExplorerObj from './observability_logs_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index f3e55d70ba077..d7f711fa592da 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index 43d40f724c334..92deb6b8fc266 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index 98421078aa309..51906c837cfab 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx index 78754d1bdca27..e50c55dada803 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-09-11 +date: 2024-09-16 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 3b5e6d607bd88..39add68e0e4c7 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-09-11 +date: 2024-09-16 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 | |--------------|----------|------------------------| -| 850 | 724 | 46 | +| 854 | 728 | 46 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 53013 | 245 | 39835 | 1965 | +| 53130 | 245 | 39936 | 1978 | ## Plugin Directory @@ -32,14 +32,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 4 | 0 | 4 | 1 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 74 | 0 | 9 | 2 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 875 | 1 | 843 | 52 | -| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | The user interface for Elastic APM | 29 | 0 | 29 | 118 | -| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 93 | 0 | 93 | 0 | +| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | The user interface for Elastic APM | 29 | 0 | 29 | 119 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 93 | 0 | 93 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 9 | 0 | 9 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Considering using bfetch capabilities when fetching large amounts of data. This services supports batching HTTP requests and streaming responses back. | 83 | 1 | 73 | 2 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Canvas application to Kibana | 9 | 0 | 8 | 3 | | | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | The Case management system in Kibana | 115 | 0 | 95 | 28 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 268 | 2 | 253 | 10 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 81 | 0 | 20 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 84 | 0 | 21 | 0 | | cloudChat | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Chat available on Elastic Cloud deployments for quicker assistance. | 0 | 0 | 0 | 0 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | Static migration page where self-managed users can see text/copy about migrating to Elastic Cloud | 8 | 0 | 8 | 1 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | Defend for containers (D4C) | 52 | 0 | 43 | 2 | @@ -74,7 +74,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@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/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | Adds dashboards for discovering and managing Enterprise Search products. | 5 | 0 | 5 | 0 | | | [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entities) | - | 2 | 0 | 2 | 0 | -| | [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entities) | Entity manager plugin for entity assets (inventory, topology, etc) | 17 | 0 | 17 | 2 | +| | [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entities) | Entity manager plugin for entity assets (inventory, topology, etc) | 20 | 0 | 20 | 3 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 99 | 3 | 97 | 3 | | | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 24 | 0 | 9 | 0 | | | [@elastic/kibana-esql](https://github.com/orgs/elastic/teams/kibana-esql) | - | 2 | 0 | 2 | 0 | @@ -96,13 +96,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@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. | 180 | 0 | 169 | 13 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds expression runtime to Kibana | 2235 | 17 | 1765 | 6 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 247 | 0 | 102 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 255 | 0 | 105 | 2 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Index pattern fields and ambiguous values formatters | 292 | 5 | 253 | 3 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | Exposes services for async usage and search of fields metadata. | 42 | 0 | 42 | 7 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | The file upload plugin contains components and services for uploading a file, analyzing its data, and then importing the data into an Elasticsearch index. Supported file types include CSV, TSV, newline-delimited JSON and GeoJSON. | 88 | 0 | 88 | 8 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 240 | 0 | 24 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Simple UI for managing files in Kibana | 3 | 0 | 3 | 0 | -| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1362 | 5 | 1239 | 74 | +| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1361 | 5 | 1238 | 74 | | ftrApis | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 72 | 0 | 14 | 5 | | globalSearchBar | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 0 | 0 | 0 | 0 | @@ -114,13 +114,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Image embeddable | 1 | 0 | 1 | 0 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 238 | 0 | 233 | 1 | -| | [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai-infra) | - | 41 | 0 | 39 | 13 | +| | [@elastic/appex-ai-infra](https://github.com/orgs/elastic/teams/appex-ai-infra) | - | 49 | 0 | 44 | 12 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 23 | 0 | 23 | 5 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 4 | 0 | 4 | 0 | | inputControlVis | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds Input Control visualization to Kibana | 0 | 0 | 0 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 127 | 2 | 100 | 4 | | | [@elastic/security-scalability](https://github.com/orgs/elastic/teams/security-scalability) | Plugin implementing the Integration Assistant API and UI | 54 | 0 | 46 | 3 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides UI and APIs for the interactive setup mode. | 28 | 0 | 18 | 0 | +| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 5 | 0 | 5 | 3 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 43 | 0 | 43 | 4 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 5 | 0 | 5 | 2 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 | @@ -142,7 +143,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 209 | 0 | 205 | 28 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 60 | 0 | 60 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | Exposes utilities for accessing metrics data | 137 | 8 | 137 | 5 | -| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 154 | 3 | 67 | 101 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 154 | 3 | 67 | 102 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 2 | 0 | 2 | 0 | | | [@elastic/stack-monitoring](https://github.com/orgs/elastic/teams/stack-monitoring) | - | 15 | 3 | 13 | 1 | | | [@elastic/stack-monitoring](https://github.com/orgs/elastic/teams/stack-monitoring) | - | 9 | 0 | 9 | 0 | @@ -150,7 +151,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 3 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | -| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 703 | 2 | 696 | 22 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 705 | 2 | 698 | 22 | | | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 286 | 1 | 284 | 27 | | | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 4 | 0 | 4 | 0 | | | [@elastic/obs-ai-assistant](https://github.com/orgs/elastic/teams/obs-ai-assistant) | - | 2 | 0 | 2 | 0 | @@ -274,8 +275,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@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/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 63 | 1 | 63 | 0 | -| | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 57 | 0 | 56 | 0 | +| | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 74 | 1 | 74 | 0 | +| | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 61 | 0 | 60 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 41 | 0 | 17 | 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 | @@ -362,10 +363,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@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) | - | 54 | 7 | 54 | 6 | -| | [@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) | - | 495 | 2 | 193 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 15 | 0 | 15 | 1 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 496 | 2 | 193 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 96 | 0 | 83 | 10 | -| | [@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) | - | 46 | 0 | 45 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 2 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 1 | 0 | @@ -472,7 +473,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@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) | - | 52 | 0 | 52 | 1 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 14 | 0 | 9 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 19 | 0 | 14 | 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) | - | 7 | 0 | 5 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 44 | 0 | 43 | 0 | @@ -481,7 +482,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 3 | 0 | 3 | 0 | | | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 4 | 0 | 4 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 3 | 0 | 3 | 0 | -| | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 62 | 0 | 50 | 0 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 62 | 0 | 50 | 0 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 17 | 0 | 17 | 0 | | | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 5 | 0 | 5 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | @@ -493,16 +494,16 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 102 | 0 | 86 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 15 | 0 | 9 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 38 | 2 | 33 | 0 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 136 | 0 | 109 | 1 | -| | [@elastic/docs](https://github.com/orgs/elastic/teams/docs) | - | 78 | 0 | 78 | 2 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 174 | 0 | 140 | 1 | +| | [@elastic/docs](https://github.com/orgs/elastic/teams/docs) | - | 79 | 0 | 79 | 2 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 5 | 0 | 5 | 1 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 57 | 0 | 30 | 6 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 37 | 0 | 28 | 2 | | | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 16 | 0 | 8 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 35 | 0 | 34 | 0 | -| | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 156 | 0 | 130 | 9 | +| | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 159 | 0 | 133 | 10 | | | [@elastic/security-generative-ai](https://github.com/orgs/elastic/teams/security-generative-ai) | - | 390 | 0 | 363 | 0 | -| | [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entities) | - | 41 | 0 | 41 | 0 | +| | [@elastic/obs-entities](https://github.com/orgs/elastic/teams/obs-entities) | - | 44 | 0 | 44 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 55 | 0 | 40 | 7 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 32 | 0 | 19 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 0 | 6 | 0 | @@ -535,11 +536,11 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 37 | 0 | 27 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 36 | 0 | 7 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 47 | 0 | 40 | 0 | -| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 109 | 3 | 109 | 0 | +| | [@elastic/kibana-management](https://github.com/orgs/elastic/teams/kibana-management) | - | 109 | 3 | 109 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 7 | 1 | 7 | 1 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 9 | 0 | 9 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 52 | 12 | 43 | 0 | -| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 56 | 0 | 56 | 0 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 59 | 0 | 59 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 60 | 0 | 60 | 4 | | | [@elastic/search-kibana](https://github.com/orgs/elastic/teams/search-kibana) | - | 44 | 0 | 44 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 0 | 13 | 0 | @@ -689,9 +690,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 120 | 0 | 116 | 0 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 60 | 0 | 54 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 69 | 0 | 64 | 0 | -| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 38 | 0 | 38 | 0 | -| | [@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) | - | 26 | 0 | 26 | 0 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 42 | 0 | 42 | 0 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 15 | 0 | 15 | 0 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 30 | 0 | 30 | 2 | | | [@elastic/appex-sharedux @elastic/kibana-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 1 | 0 | 1 | 0 | | | [@elastic/appex-sharedux @elastic/kibana-management @elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 1 | 0 | 1 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 7 | 1 | @@ -742,6 +743,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 182 | 0 | 182 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 20 | 0 | 12 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 4 | 0 | 4 | 0 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 19 | 0 | 19 | 3 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 1 | 0 | 1 | 1 | +| | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 2 | 0 | 2 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 111 | 2 | 72 | 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 | @@ -762,7 +766,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 42 | 0 | 28 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 59 | 0 | 50 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 9 | 0 | 8 | 0 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the unified data table which can be integrated into apps | 185 | 0 | 108 | 2 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the unified data table which can be integrated into apps | 165 | 0 | 90 | 2 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 18 | 0 | 17 | 5 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Contains functionality for the field list and field stats which can be integrated into apps | 314 | 0 | 285 | 8 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 13 | 0 | 9 | 0 | diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx index a75ecc24ec756..646744ab4d1ec 100644 --- a/api_docs/presentation_panel.mdx +++ b/api_docs/presentation_panel.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationPanel title: "presentationPanel" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationPanel plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel'] --- import presentationPanelObj from './presentation_panel.devdocs.json'; diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 65223ee0973d9..162fc6e74f476 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.devdocs.json'; diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index a5c3f9d17fd42..2fd0d31b6befe 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-09-11 +date: 2024-09-16 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 0357563af7f5e..4eb55274641b8 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-09-11 +date: 2024-09-16 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 060d02308196b..e7b01d7ff7ffe 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-09-11 +date: 2024-09-16 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 acc336379cd73..d9a7e189a17f6 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-09-11 +date: 2024-09-16 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 d6cde975bc87b..360f1614d991c 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'rollup'] --- import rollupObj from './rollup.devdocs.json'; diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index 8b6634ccfbfdd..c5cc8848d1971 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-09-11 +date: 2024-09-16 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 099da73adad76..460641f166d87 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-09-11 +date: 2024-09-16 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 4a87b09502f6c..2572dc210c579 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.devdocs.json b/api_docs/saved_objects_finder.devdocs.json index f23341ed4ab5d..db6089b00c4c6 100644 --- a/api_docs/saved_objects_finder.devdocs.json +++ b/api_docs/saved_objects_finder.devdocs.json @@ -420,7 +420,7 @@ }, { "plugin": "visualizations", - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx" + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx" }, { "plugin": "graph", diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index 60707427cf376..8a78de16d7341 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index b39a5d35540b1..b789f43069fd5 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-09-11 +date: 2024-09-16 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 b0e13874c1b2d..e3ac8a9b1203d 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-09-11 +date: 2024-09-16 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 6cd20526b61af..8887542976ce0 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-09-11 +date: 2024-09-16 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 58ab596206bb8..408fe1666f918 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-09-11 +date: 2024-09-16 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 5d03d531f5e4e..aa29491df81f8 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-09-11 +date: 2024-09-16 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 df42f01f8175c..986f4f6fb8ca0 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/search_assistant.mdx b/api_docs/search_assistant.mdx index 038258398cf5a..d204567b135de 100644 --- a/api_docs/search_assistant.mdx +++ b/api_docs/search_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchAssistant title: "searchAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the searchAssistant plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchAssistant'] --- import searchAssistantObj from './search_assistant.devdocs.json'; diff --git a/api_docs/search_connectors.mdx b/api_docs/search_connectors.mdx index 68b88ec6f2e99..8ecce79d63de4 100644 --- a/api_docs/search_connectors.mdx +++ b/api_docs/search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchConnectors title: "searchConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the searchConnectors plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchConnectors'] --- import searchConnectorsObj from './search_connectors.devdocs.json'; diff --git a/api_docs/search_homepage.mdx b/api_docs/search_homepage.mdx index 292f35fb2895a..e984afce0f94a 100644 --- a/api_docs/search_homepage.mdx +++ b/api_docs/search_homepage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchHomepage title: "searchHomepage" image: https://source.unsplash.com/400x175/?github description: API docs for the searchHomepage plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchHomepage'] --- import searchHomepageObj from './search_homepage.devdocs.json'; diff --git a/api_docs/search_indices.mdx b/api_docs/search_indices.mdx index 01d372947a819..f9054f79c1e13 100644 --- a/api_docs/search_indices.mdx +++ b/api_docs/search_indices.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchIndices title: "searchIndices" image: https://source.unsplash.com/400x175/?github description: API docs for the searchIndices plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchIndices'] --- import searchIndicesObj from './search_indices.devdocs.json'; diff --git a/api_docs/search_inference_endpoints.mdx b/api_docs/search_inference_endpoints.mdx index f6adf0f8dd5a3..2dff31fcd1cf8 100644 --- a/api_docs/search_inference_endpoints.mdx +++ b/api_docs/search_inference_endpoints.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchInferenceEndpoints title: "searchInferenceEndpoints" image: https://source.unsplash.com/400x175/?github description: API docs for the searchInferenceEndpoints plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchInferenceEndpoints'] --- import searchInferenceEndpointsObj from './search_inference_endpoints.devdocs.json'; diff --git a/api_docs/search_notebooks.mdx b/api_docs/search_notebooks.mdx index ea8442a4bd730..e2dc610985b9a 100644 --- a/api_docs/search_notebooks.mdx +++ b/api_docs/search_notebooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchNotebooks title: "searchNotebooks" image: https://source.unsplash.com/400x175/?github description: API docs for the searchNotebooks plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchNotebooks'] --- import searchNotebooksObj from './search_notebooks.devdocs.json'; diff --git a/api_docs/search_playground.mdx b/api_docs/search_playground.mdx index a064aad4c6002..9bbc096d212d1 100644 --- a/api_docs/search_playground.mdx +++ b/api_docs/search_playground.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/searchPlayground title: "searchPlayground" image: https://source.unsplash.com/400x175/?github description: API docs for the searchPlayground plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'searchPlayground'] --- import searchPlaygroundObj from './search_playground.devdocs.json'; diff --git a/api_docs/security.devdocs.json b/api_docs/security.devdocs.json index fd01c193d4ae3..907b33cf37b97 100644 --- a/api_docs/security.devdocs.json +++ b/api_docs/security.devdocs.json @@ -5912,26 +5912,6 @@ "plugin": "cloudSecurityPosture", "path": "x-pack/plugins/cloud_security_posture/server/routes/setup_routes.ts" }, - { - "plugin": "serverlessSearch", - "path": "x-pack/plugins/serverless_search/server/routes/api_key_routes.ts" - }, - { - "plugin": "transform", - "path": "x-pack/plugins/transform/server/routes/api/reauthorize_transforms/route_handler_factory.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" - }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" - }, { "plugin": "entityManager", "path": "x-pack/plugins/observability_solution/entity_manager/server/lib/auth/api_key/api_key.ts" @@ -5952,6 +5932,26 @@ "plugin": "entityManager", "path": "x-pack/plugins/observability_solution/entity_manager/server/routes/enablement/disable.ts" }, + { + "plugin": "serverlessSearch", + "path": "x-pack/plugins/serverless_search/server/routes/api_key_routes.ts" + }, + { + "plugin": "transform", + "path": "x-pack/plugins/transform/server/routes/api/reauthorize_transforms/route_handler_factory.ts" + }, + { + "plugin": "upgradeAssistant", + "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" + }, + { + "plugin": "upgradeAssistant", + "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" + }, + { + "plugin": "upgradeAssistant", + "path": "x-pack/plugins/upgrade_assistant/server/lib/reindexing/credential_store.ts" + }, { "plugin": "apm", "path": "x-pack/plugins/observability_solution/apm/server/lib/helpers/get_random_sampler/index.ts" diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 0c9e86a95d9ae..550367e4ff248 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.mdx b/api_docs/security_solution.mdx index f7e4a4445e58e..53aa3877df819 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index d76c33c121667..b093fd4d765c6 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-09-11 +date: 2024-09-16 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 fcdb4b9e154fa..a3eefbf9ccaee 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index 4d188e1af276f..52cffee88bcda 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless'] --- import serverlessObj from './serverless.devdocs.json'; diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx index 3891c93146e08..a323bc4580c74 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-09-11 +date: 2024-09-16 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 c19ec032fc1e2..4428b3ceb59f5 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-09-11 +date: 2024-09-16 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 b9865907cf9cf..43d2bec876682 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-09-11 +date: 2024-09-16 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 7f0bdcc780338..30b36cb134adf 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/slo.mdx b/api_docs/slo.mdx index 65a249e219ba8..00c58dbf57ab5 100644 --- a/api_docs/slo.mdx +++ b/api_docs/slo.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/slo title: "slo" image: https://source.unsplash.com/400x175/?github description: API docs for the slo plugin -date: 2024-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'slo'] --- import sloObj from './slo.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 00ed75a24caad..8e5e9891ebfec 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-09-11 +date: 2024-09-16 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 6d55bbfd83848..e584521cc85e1 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-09-11 +date: 2024-09-16 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 1e0c99affa251..7ee09695b7b2e 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-09-11 +date: 2024-09-16 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 b86e17f4f1540..3f8f7fc803c10 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-09-11 +date: 2024-09-16 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 8926aebc6e3bf..7fbb7287d12ce 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-09-11 +date: 2024-09-16 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 bc0a5d326a3d6..e18eced7d7869 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-09-11 +date: 2024-09-16 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 f93bf8f51822e..19b4d115bbe1f 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-09-11 +date: 2024-09-16 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 51c205d192a0e..39719302115f0 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-09-11 +date: 2024-09-16 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 151b507300bfa..683518ca6a6ab 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index 8bf8f27f4da19..1f9daa3d86635 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 0d131f580cd67..814bead03c066 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-09-11 +date: 2024-09-16 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 e70f970fe0795..6d1102fd341f6 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index f078badc7e833..1980e77cfbfcc 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'triggersActionsUi'] --- import triggersActionsUiObj from './triggers_actions_ui.devdocs.json'; diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 4b7e5d5c06ad3..b46f49ea8eb7f 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.devdocs.json'; diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index a3b3fb63d0911..e40877f315f9b 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-09-11 +date: 2024-09-16 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 001cb1e06c140..f118ba9c56651 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-09-11 +date: 2024-09-16 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 3086a7ac945da..61df3075d8198 100644 --- a/api_docs/unified_histogram.devdocs.json +++ b/api_docs/unified_histogram.devdocs.json @@ -614,7 +614,7 @@ }, ") => void) | undefined; } & Pick<", "UnifiedHistogramLayoutProps", - ", \"className\" | \"children\" | \"columns\" | \"timeRange\" | \"query\" | \"filters\" | \"services\" | \"container\" | \"onBrushEnd\" | \"disabledActions\" | \"dataView\" | \"table\" | \"relativeTimeRange\" | \"renderCustomChartToggleActions\" | \"onFilter\" | \"externalVisContext\" | \"withDefaultActions\" | \"abortController\"> & ", + ", \"className\" | \"children\" | \"columns\" | \"timeRange\" | \"query\" | \"filters\" | \"services\" | \"dataView\" | \"container\" | \"onBrushEnd\" | \"disabledActions\" | \"table\" | \"relativeTimeRange\" | \"renderCustomChartToggleActions\" | \"onFilter\" | \"externalVisContext\" | \"withDefaultActions\" | \"abortController\"> & ", { "pluginId": "@kbn/shared-ux-utility", "scope": "common", @@ -1615,7 +1615,7 @@ }, ") => void) | undefined; } & Pick<", "UnifiedHistogramLayoutProps", - ", \"className\" | \"children\" | \"columns\" | \"timeRange\" | \"query\" | \"filters\" | \"services\" | \"container\" | \"onBrushEnd\" | \"disabledActions\" | \"dataView\" | \"table\" | \"relativeTimeRange\" | \"renderCustomChartToggleActions\" | \"onFilter\" | \"externalVisContext\" | \"withDefaultActions\" | \"abortController\">" + ", \"className\" | \"children\" | \"columns\" | \"timeRange\" | \"query\" | \"filters\" | \"services\" | \"dataView\" | \"container\" | \"onBrushEnd\" | \"disabledActions\" | \"table\" | \"relativeTimeRange\" | \"renderCustomChartToggleActions\" | \"onFilter\" | \"externalVisContext\" | \"withDefaultActions\" | \"abortController\">" ], "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 fff7ae6a994ee..af8f458b3a92b 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index 82c652ce2a9fb..e398c6e2bce6e 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-09-11 +date: 2024-09-16 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 40473f8a61274..9a96a2613f452 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-09-11 +date: 2024-09-16 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 ba9d623e17738..8342013b10fca 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-09-11 +date: 2024-09-16 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 8488e1d36d6b2..056f6c0440ee2 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-09-11 +date: 2024-09-16 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 73101f9e7c8a1..4ec27a6c500c2 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-09-11 +date: 2024-09-16 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 d9f54a1a5f8c1..00136d67d47bf 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 65a7d82579030..33ef7cd83adf8 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-09-11 +date: 2024-09-16 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 6e19252494a5e..41e7074607ed0 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-09-11 +date: 2024-09-16 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 535c84e59cf8c..c9616af6ad168 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-09-11 +date: 2024-09-16 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 40ce04132477a..fb65c6216e1fb 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-09-11 +date: 2024-09-16 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 3b5695680c145..ff76e8dc2ba54 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-09-11 +date: 2024-09-16 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 7eaeb4c56bb2a..397ec16eb82a4 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-09-11 +date: 2024-09-16 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 017d1a77ff354..0c0202f8f4e3b 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-09-11 +date: 2024-09-16 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 bfd2b767b8d90..b4f4ec879bd5b 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-09-11 +date: 2024-09-16 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 c2cb00fea7202..8cc44e5783455 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-09-11 +date: 2024-09-16 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 536bac1b89442..4d9f3085c22b9 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-09-11 +date: 2024-09-16 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 379c615ab090c..3e76fdcd641e3 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -1366,7 +1366,7 @@ "text": "FilterableEmbeddable" } ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": true, "trackAdoption": false, "references": [ @@ -1394,7 +1394,7 @@ "signature": [ "\"visualization\"" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false }, @@ -1408,7 +1408,7 @@ "signature": [ "any" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -1428,7 +1428,7 @@ "text": "TimefilterContract" } ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -1443,7 +1443,7 @@ "signature": [ "VisualizeEmbeddableConfiguration" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -1464,7 +1464,7 @@ "text": "VisualizeInput" } ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -1492,7 +1492,7 @@ "VisualizeByReferenceInput", ", unknown> | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -1530,7 +1530,7 @@ }, "> | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -1548,7 +1548,7 @@ "signature": [ "() => boolean" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1580,7 +1580,7 @@ }, ">" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1606,7 +1606,7 @@ }, "[]" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1642,7 +1642,7 @@ }, " | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1668,7 +1668,7 @@ }, " | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1692,7 +1692,7 @@ }, " | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1710,7 +1710,7 @@ "signature": [ "() => void" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1726,7 +1726,7 @@ "signature": [ "() => boolean" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1742,7 +1742,7 @@ "signature": [ "() => void" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1758,7 +1758,7 @@ "signature": [ "() => void" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1774,7 +1774,7 @@ "signature": [ "() => void" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1798,7 +1798,7 @@ }, ") => void" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -1818,7 +1818,7 @@ "text": "ExpressionRenderError" } ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -1838,7 +1838,7 @@ "signature": [ "(domNode: HTMLElement) => Promise" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -1852,7 +1852,7 @@ "signature": [ "HTMLElement" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -1870,7 +1870,7 @@ "signature": [ "() => void" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1886,7 +1886,7 @@ "signature": [ "() => Promise" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1902,7 +1902,7 @@ "signature": [ "() => string[]" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1920,7 +1920,7 @@ "Observable", " | undefined>" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1936,7 +1936,7 @@ "signature": [ "() => Record | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -1961,7 +1961,7 @@ ") => input is ", "VisualizeByReferenceInput" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -1981,7 +1981,7 @@ "text": "VisualizeInput" } ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -2001,7 +2001,7 @@ "VisualizeByValueInput", ">" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -2019,7 +2019,7 @@ "VisualizeByReferenceInput", ">" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -6126,7 +6126,7 @@ "text": "EmbeddableInput" } ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -6140,7 +6140,7 @@ "signature": [ "{ colors?: { [key: string]: string; } | undefined; } | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false }, @@ -6169,7 +6169,7 @@ }, "> | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false }, @@ -6190,7 +6190,7 @@ }, " | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false }, @@ -6204,7 +6204,7 @@ "signature": [ "unknown" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false }, @@ -6225,7 +6225,7 @@ }, " | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false }, @@ -6246,7 +6246,7 @@ }, "[] | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false }, @@ -6267,7 +6267,7 @@ }, " | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false }, @@ -6281,7 +6281,7 @@ "signature": [ "[number, number] | undefined" ], - "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", + "path": "src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx", "deprecated": false, "trackAdoption": false } @@ -6386,7 +6386,7 @@ "signature": [ "{ id: string; getDisplayName: () => string; getIconType: () => string; order: number; }[]" ], - "path": "src/plugins/visualizations/public/embeddable/constants.ts", + "path": "src/plugins/visualizations/public/legacy/embeddable/constants.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6819,7 +6819,7 @@ }, "> & { colors?: Record | undefined; legendOpen?: boolean | undefined; }) | undefined; }" ], - "path": "src/plugins/visualizations/public/react_embeddable/types.ts", + "path": "src/plugins/visualizations/public/embeddable/types.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false @@ -6848,7 +6848,7 @@ "section": "def-public.ViewMode", "text": "ViewMode" }, - ">; uuid: string; readonly parent?: ", + ">; uuid: string; destroy: () => void; readonly parent?: ", { "pluginId": "embeddable", "scope": "public", @@ -7056,7 +7056,7 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>; destroy: () => void; getQuery: () => ", + " | undefined>; getQuery: () => ", { "pluginId": "@kbn/es-query", "scope": "common", diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index fb7084188e519..123e96ab36e08 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-09-11 +date: 2024-09-16 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/config/kibana.yml b/config/kibana.yml index c816337f881d4..6c4fb774eb37c 100644 --- a/config/kibana.yml +++ b/config/kibana.yml @@ -181,3 +181,8 @@ # Maximum number of documents loaded by each shard to generate autocomplete suggestions. # This value must be a whole number greater than zero. Defaults to 100_000 #unifiedSearch.autocomplete.valueSuggestions.terminateAfter: 100000 + +# Must be removed before v9 release +# Requires all registry packages to add v9 as a compatible semver range +# https://github.com/elastic/kibana/issues/192624 +xpack.fleet.internal.registry.kibanaVersionCheckEnabled: false diff --git a/config/serverless.oblt.yml b/config/serverless.oblt.yml index 3cee8b352756e..67b0cfe6ab4d5 100644 --- a/config/serverless.oblt.yml +++ b/config/serverless.oblt.yml @@ -143,10 +143,9 @@ xpack.uptime.service.tls.key: /mnt/elastic-internal/http-certs/tls.key # Fleet specific configuration xpack.fleet.internal.registry.capabilities: ['apm', 'observability', 'uptime'] +xpack.fleet.internal.registry.spec.min: '3.0' +xpack.fleet.internal.registry.spec.max: '3.2' xpack.fleet.internal.registry.kibanaVersionCheckEnabled: false -xpack.fleet.internal.registry.spec.max: '3.0' -# Temporary until all packages implement new spec https://github.com/elastic/kibana/issues/166742 -xpack.fleet.internal.registry.spec.min: '1.0' xpack.fleet.internal.registry.excludePackages: [ # Security integrations 'endpoint', diff --git a/config/serverless.security.yml b/config/serverless.security.yml index 6f39182d1e2e6..39346310f78f0 100644 --- a/config/serverless.security.yml +++ b/config/serverless.security.yml @@ -75,10 +75,9 @@ telemetry.labels.serverless: security # Fleet specific configuration xpack.fleet.internal.registry.capabilities: ['security'] -xpack.fleet.internal.registry.spec.max: '3.0' +xpack.fleet.internal.registry.spec.min: '3.0' +xpack.fleet.internal.registry.spec.max: '3.2' xpack.fleet.internal.registry.kibanaVersionCheckEnabled: false -# Temporary until all packages implement new spec https://github.com/elastic/kibana/issues/166742 -xpack.fleet.internal.registry.spec.min: '1.0' xpack.fleet.internal.registry.excludePackages: [ # Oblt integrations 'apm', diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index d12d5a91f8273..c164708bc12d8 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -179,11 +179,11 @@ you make the necessary updates after you upgrade to 8.15.0. [discrete] [[deprecation-uptime]] -.Uptime is deprecated in 8.15.0 and will be removed in 9.0.0. +.Uptime is deprecated in 8.15.0 and will be removed in a future version. [%collapsible] ==== *Details* + -The Uptime app is already hidden from Kibana when there is no recent Heartbeat data, but will be completely removed in 9.0.0. You should migrate to Synthetics as an alternative. For more details, refer to the {observability-guide}/uptime-intro.html[Uptime documentation]. +The Uptime app is already hidden from Kibana when there is no recent Heartbeat data, and will be completely removed in early 2026. You should migrate to Synthetics as an alternative. For more details, refer to the {observability-guide}/uptime-intro.html[Uptime documentation]. ==== [float] diff --git a/docs/action-type-template.asciidoc b/docs/action-type-template.asciidoc index b9d7ca3c6326c..ad59f2a2d9ed6 100644 --- a/docs/action-type-template.asciidoc +++ b/docs/action-type-template.asciidoc @@ -22,7 +22,9 @@ or as needed when you're creating a rule. connectors have the following configuration properties: //// -List of user-facing connector configurations. This should align with the fields available in the Create connector flyout form for this connector type. +List of user-facing connector configurations. +This should align with the fields available in the Create connector flyout form for this connector type. +To include these configuration details in the API documentation, add appropriate files in x-pack/plugins/actions/docs/openapi/components/schemas/ and reference them from oas_docs/overlays/connectors.overlays.yaml //// Property1:: A short description of this property. @@ -41,7 +43,9 @@ You can test connectors as you're creating or editing the connector in {kib}. actions have the following properties. //// -List of user-facing action configurations. This should align with the fields available in the Action section of the Create/Update alert flyout. +List of user-facing action configurations. +This should align with the fields available in the Action section of the Create/Update alert flyout. +To include these configuration details in the API documentation, add appropriate files in x-pack/plugins/actions/docs/openapi/components/schemas/ and reference them from oas_docs/overlays/connectors.overlays.yaml //// Property1:: A short description of this property. diff --git a/docs/developer/architecture/security/feature-registration.asciidoc b/docs/developer/architecture/security/feature-registration.asciidoc index c9d173a6be6fb..b16142311cc75 100644 --- a/docs/developer/architecture/security/feature-registration.asciidoc +++ b/docs/developer/architecture/security/feature-registration.asciidoc @@ -59,6 +59,11 @@ of features within the management screens. |See <> |The set of subfeatures that enables finer access control than the `all` and `read` feature privileges. These options are only available in the Gold subscription level and higher. +|`scope` (optional) +|`string[]` +|`["spaces", "security"]` +| Default `security`. Scope identifies if feature should appear in both Spaces Visibility Toggles and Security Feature Privileges or only in Security Feature Privileges. + |=== ==== Privilege definition diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index 1f4f516e59167..0010045ab3c92 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -648,6 +648,10 @@ the infrastructure monitoring use-case within Kibana. |Team owner: Security Integrations Scalability +|{kib-repo}blob/{branch}/x-pack/plugins/observability_solution/inventory/README.md[inventory] +|Home of the Inventory plugin, which renders the... inventory. + + |{kib-repo}blob/{branch}/x-pack/plugins/observability_solution/investigate/README.md[investigate] |undefined @@ -840,12 +844,13 @@ Kibana. |{kib-repo}blob/{branch}/x-pack/plugins/security_solution_ess/README.md[securitySolutionEss] -|This plugin contains the ESS/on-prem deployments (non-serverless) specific logic for Security Solution. +|The security_solution_ess plugin is an internal plugin for Kibana's Security Solution, designed to encapsulate ESS-specific logic. +This plugin is only enabled when the application is built for stateful deployments (ESS or on-prem), keeping the main security_solution plugin clean and agnostic of the offering model. -|{kib-repo}blob/{branch}/x-pack/plugins/security_solution_serverless/README.mdx[securitySolutionServerless] -|This plugin contains configuration and code used to create a Serverless Security project. -It leverages universal configuration and other APIs in the serverless plugin to configure Kibana. +|{kib-repo}blob/{branch}/x-pack/plugins/security_solution_serverless/README.md[securitySolutionServerless] +|The security_solution_serverless plugin is an internal plugin for Kibana's Security Solution, designed to encapsulate serverless-specific logic. +This plugin is only enabled when the application is built for serverless project, keeping the main security_solution plugin clean and agnostic of the offering model. |{kib-repo}blob/{branch}/x-pack/plugins/serverless/README.mdx[serverless] diff --git a/docs/discover/search-sessions.asciidoc b/docs/discover/search-sessions.asciidoc index 663c4231c0718..e7d7466b5ae0c 100644 --- a/docs/discover/search-sessions.asciidoc +++ b/docs/discover/search-sessions.asciidoc @@ -1,6 +1,8 @@ [[search-sessions]] == Run a search session in the background +deprecated::[8.15.0,Search Sessions are deprecated and will be removed in a future version.] + Sometimes you might need to search through large amounts of data, no matter how long the search takes. Consider a threat hunting scenario, where you need to search through years of data. diff --git a/docs/management/advanced-options.asciidoc b/docs/management/advanced-options.asciidoc index de8d4e6cd0996..cda03f91dfc17 100644 --- a/docs/management/advanced-options.asciidoc +++ b/docs/management/advanced-options.asciidoc @@ -556,8 +556,8 @@ Includes {ref}/frozen-indices.html[frozen indices] in results. Searching through frozen indices might increase the search time. This setting is off by default. Users must opt-in to include frozen indices. -[[search-timeout]]`search:timeout`:: Change the maximum timeout, in milliseconds (ms), for a search -session. To disable the timeout and allow queries to run to completion, set to 0. The default is 600,000 ms, or 10 minutes. +[[search-timeout]]`search:timeout`:: Change the maximum timeout, in milliseconds (ms), for search requests. To disable +the timeout and allow queries to run to completion, set to 0. The default is `600000`, or 10 minutes. [float] [[kibana-siem-settings]] diff --git a/docs/management/connectors/action-types/crowdstrike.asciidoc b/docs/management/connectors/action-types/crowdstrike.asciidoc index ba7e544055910..813b6a699a71c 100644 --- a/docs/management/connectors/action-types/crowdstrike.asciidoc +++ b/docs/management/connectors/action-types/crowdstrike.asciidoc @@ -19,7 +19,7 @@ The CrowdStrike connector communicates with CrowdStrike Management Console via R You can create connectors in *{stack-manage-app} > {connectors-ui}*. For example: [role="screenshot"] -image::management/connectors/images/crowdstrike-connector.png[Crowdstrike connector] +image::management/connectors/images/crowdstrike-connector.png[CrowdStrike connector] // NOTE: This is an autogenerated screenshot. Do not edit it directly. [float] @@ -29,9 +29,8 @@ image::management/connectors/images/crowdstrike-connector.png[Crowdstrike connec CrowdStrike connectors have the following configuration properties: CrowdStrike API URL:: The CrowdStrike tenant URL. If you are using the <> setting, make sure the hostname is added to the allowed hosts. -CrowdStrike Client ID:: A CrowdStrike API client ID. -Client Secret:: A CrowdStrike API client secret created by the user. - +CrowdStrike client ID:: The CrowdStrike API client identifier. +Client secret:: The CrowdStrike API client secret to authenticate the client ID. [float] [[crowdstrike-action-parameters]] diff --git a/docs/management/connectors/action-types/thehive.asciidoc b/docs/management/connectors/action-types/thehive.asciidoc index 3252a1a5830d8..d218833527ee3 100644 --- a/docs/management/connectors/action-types/thehive.asciidoc +++ b/docs/management/connectors/action-types/thehive.asciidoc @@ -8,7 +8,13 @@ :frontmatter-tags-content-type: [how-to] :frontmatter-tags-user-goals: [configure] -TheHive connector uses the https://docs.strangebee.com/thehive/api-docs/[TheHive (v1) REST API] to create cases and alerts. +TheHive connector uses the https://docs.strangebee.com/thehive/api-docs/[TheHive (v1) REST API] to create cases and alerts. added:[8.16.0] + +[NOTE] +==== +If you use this connector with <>, the status values differ in {kib} and TheHive. +The status values are not synchronized when you update a case. +==== [float] [[define-thehive-ui]] @@ -28,9 +34,9 @@ image::management/connectors/images/thehive-connector.png[TheHive connector] TheHive connectors have the following configuration properties: Name:: The name of the connector. -Organisation:: Organisation name in which user intends to create cases or alerts. -URL:: TheHive instance URL. -API Key:: TheHive API key for authentication. +Organisation:: The organisation in TheHive that will contain the cases or alerts. +URL:: The instance URL in TheHive. +API key:: The API key for authentication in TheHive. [float] [[thehive-action-configuration]] @@ -49,28 +55,16 @@ image::management/connectors/images/thehive-params-alert-test.png[TheHive alert TheHive actions have the following configuration properties. -Event Action:: Action that will be performed in thehive. Supported actions are Create Case (default) and Create Alert. -Title:: Title of the incident. +Event action:: The action that will be performed in TheHive: create a case or an alert. +Title:: The title of the incident. Description:: The details about the incident. -Severity:: Severity of the incident. This can be one of `LOW`, `MEDIUM`(default), `HIGH` or `CRITICAL`. -TLP:: Traffic Light Protocol designation for the incident. This can be one of `CLEAR`, `GREEN`, `AMBER`(default), `AMBER+STRICT` or `RED`. -Tags:: The keywords or tags about the incident. -Additional comments:: Additional information about the Case. -Type:: Type of the Alert. -Source:: Source of the Alert. -Source Reference:: Source reference of the Alert. - -[float] -[[thehive-features]] -=== Features - -1. Rule base creation of alerts and cases. -2. Create case, Update case. - -[NOTE] -==== -* For update case, status of the case is not sync with the kibana case. -==== +Severity:: The severity of the incident: `LOW`, `MEDIUM`, `HIGH` or `CRITICAL`. +TLP:: The traffic light protocol designation for the incident: `CLEAR`, `GREEN`, `AMBER`, `AMBER+STRICT` or `RED`. +Tags:: The keywords or tags for the incident. +Additional comments:: Additional information about the incident. +Type:: The type of alert. +Source:: The source of the alert. +Source reference:: A source reference for the alert. [float] [[thehive-connector-networking-configuration]] @@ -82,7 +76,7 @@ Use the <> to customize connecto [[configure-thehive]] === Configure TheHive -To generate an API Key in TheHive: +To generate an API key in TheHive: 1. Log in to your TheHive instance. 2. Open profile tab and select the settings. diff --git a/docs/management/connectors/images/crowdstrike-connector.png b/docs/management/connectors/images/crowdstrike-connector.png index 04eef86f1e2ae..4943d2402b1bb 100644 Binary files a/docs/management/connectors/images/crowdstrike-connector.png and b/docs/management/connectors/images/crowdstrike-connector.png differ diff --git a/docs/management/connectors/images/thehive-connector.png b/docs/management/connectors/images/thehive-connector.png index 592307023172e..d115a4fefb848 100644 Binary files a/docs/management/connectors/images/thehive-connector.png and b/docs/management/connectors/images/thehive-connector.png differ diff --git a/docs/management/connectors/images/thehive-params-alert-test.png b/docs/management/connectors/images/thehive-params-alert-test.png index c72eff5e31054..e2f39565e8d6e 100644 Binary files a/docs/management/connectors/images/thehive-params-alert-test.png and b/docs/management/connectors/images/thehive-params-alert-test.png differ diff --git a/docs/management/connectors/images/thehive-params-case-test.png b/docs/management/connectors/images/thehive-params-case-test.png index a7004bdf35af0..888df73aa92c6 100644 Binary files a/docs/management/connectors/images/thehive-params-case-test.png and b/docs/management/connectors/images/thehive-params-case-test.png differ diff --git a/docs/settings/search-sessions-settings.asciidoc b/docs/settings/search-sessions-settings.asciidoc index 2862dec25b881..01898549189b7 100644 --- a/docs/settings/search-sessions-settings.asciidoc +++ b/docs/settings/search-sessions-settings.asciidoc @@ -5,22 +5,20 @@ Search sessions settings ++++ +deprecated::[8.15.0,Search Sessions are deprecated and will be removed in a future version.] + Configure the search session settings in your `kibana.yml` configuration file. -`data.search.sessions.enabled` {ess-icon}:: +deprecated:[8.15.0] `data.search.sessions.enabled` {ess-icon}:: Set to `true` (default) to enable search sessions. -`data.search.sessions.pageSize` {ess-icon}:: -How many search sessions {kib} processes at once while monitoring -session progress. The default is `100`. - -`data.search.sessions.notTouchedTimeout` {ess-icon}:: +deprecated:[8.15.0] `data.search.sessions.notTouchedTimeout` {ess-icon}:: How long {kib} stores search results from unsaved sessions, after the last search in the session completes. The default is `5m`. -`data.search.sessions.maxUpdateRetries` {ess-icon}:: +deprecated:[8.15.0] `data.search.sessions.maxUpdateRetries` {ess-icon}:: How many retries {kib} can perform while attempting to save a search session. The default is `10`. -`data.search.sessions.defaultExpiration` {ess-icon}:: +deprecated:[8.15.0] `data.search.sessions.defaultExpiration` {ess-icon}:: How long search session results are stored before they are deleted. Extending a search session resets the expiration by the same value. The default is `7d`. diff --git a/docs/settings/task-manager-settings.asciidoc b/docs/settings/task-manager-settings.asciidoc index 0ea057fb9dee7..1311974e27342 100644 --- a/docs/settings/task-manager-settings.asciidoc +++ b/docs/settings/task-manager-settings.asciidoc @@ -23,6 +23,7 @@ How often, in milliseconds, the task manager will look for more work. Defaults How many requests can Task Manager buffer before it rejects new requests. Defaults to 1000. `xpack.task_manager.max_workers`:: +deprecated:[8.16.0] The maximum number of tasks that this Kibana instance will run simultaneously. Defaults to 10. Starting in 8.0, it will not be possible to set the value greater than 100. @@ -48,6 +49,9 @@ Enables event loop delay monitoring, which will log a warning when a task causes `xpack.task_manager.event_loop_delay.warn_threshold`:: Sets the amount of event loop delay during a task execution which will cause a warning to be logged. Defaults to 5000 milliseconds (5 seconds). +`xpack.task_manager.capacity`:: +Controls the number of tasks that can be run at one time. The minimum value is 5 and the maximum is 50. Defaults to 10. + [float] [[task-manager-health-settings]] ==== Task Manager Health settings diff --git a/docs/user/alerting/alerting-troubleshooting.asciidoc b/docs/user/alerting/alerting-troubleshooting.asciidoc index a0bcd6dcea290..b1626ba5ca515 100644 --- a/docs/user/alerting/alerting-troubleshooting.asciidoc +++ b/docs/user/alerting/alerting-troubleshooting.asciidoc @@ -197,7 +197,7 @@ If cluster performance becomes degraded from excessive or expensive rules and {k [source,txt] -------------------------------------------------- -xpack.task_manager.max_workers: 1 +xpack.task_manager.capacity: 5 xpack.task_manager.poll_interval: 1h -------------------------------------------------- diff --git a/docs/user/production-considerations/index.asciidoc b/docs/user/production-considerations/index.asciidoc index 22307f6394248..70ebdf0f06da7 100644 --- a/docs/user/production-considerations/index.asciidoc +++ b/docs/user/production-considerations/index.asciidoc @@ -2,6 +2,6 @@ include::production.asciidoc[] include::security-production-considerations.asciidoc[] include::alerting-production-considerations.asciidoc[] include::reporting-production-considerations.asciidoc[] -include::task-manager-production-considerations.asciidoc[] +include::task-manager-production-considerations.asciidoc[leveloffset=+1] include::task-manager-health-monitoring.asciidoc[] include::task-manager-troubleshooting.asciidoc[] diff --git a/docs/user/production-considerations/task-manager-production-considerations.asciidoc b/docs/user/production-considerations/task-manager-production-considerations.asciidoc index 8dd27d4e2d5ee..43352d47b76aa 100644 --- a/docs/user/production-considerations/task-manager-production-considerations.asciidoc +++ b/docs/user/production-considerations/task-manager-production-considerations.asciidoc @@ -1,6 +1,5 @@ -[role="xpack"] [[task-manager-production-considerations]] -== Task Manager += Task Manager {kib} Task Manager is leveraged by features such as Alerting, Actions, and Reporting to run mission critical work as persistent background tasks. These background tasks distribute work across multiple {kib} instances. @@ -21,7 +20,7 @@ If you lose this index, all scheduled alerts and actions are lost. [float] [[task-manager-background-tasks]] -=== Running background tasks +== Running background tasks {kib} background tasks are managed as follows: @@ -47,13 +46,13 @@ For detailed troubleshooting guidance, see <>. ============================================== [float] -=== Deployment considerations +== Deployment considerations {es} and {kib} instances use the system clock to determine the current time. To ensure schedules are triggered when expected, synchronize the clocks of all nodes in the cluster using a time service such as http://www.ntp.org/[Network Time Protocol]. [float] [[task-manager-scaling-guidance]] -=== Scaling guidance +== Scaling guidance How you deploy {kib} largely depends on your use case. Predicting the throughout a deployment might require to support Task Management is difficult because features can schedule an unpredictable number of tasks at a variety of scheduled cadences. @@ -61,7 +60,7 @@ However, there is a relatively straight forward method you can follow to produce [float] [[task-manager-default-scaling]] -==== Default scale +=== Default scale By default, {kib} polls for tasks at a rate of 10 tasks every 3 seconds. This means that you can expect a single {kib} instance to support up to 200 _tasks per minute_ (`200/tpm`). @@ -74,24 +73,24 @@ For details on monitoring the health of {kib} Task Manager, follow the guidance [float] [[task-manager-scaling-horizontally]] -==== Scaling horizontally +=== Scaling horizontally At times, the sustainable approach might be to expand the throughput of your cluster by provisioning additional {kib} instances. By default, each additional {kib} instance will add an additional 10 tasks that your cluster can run concurrently, but you can also scale each {kib} instance vertically, if your diagnosis indicates that they can handle the additional workload. [float] [[task-manager-scaling-vertically]] -==== Scaling vertically +=== Scaling vertically Other times it, might be preferable to increase the throughput of individual {kib} instances. -Tweak the *Max Workers* via the <> setting, which allows each {kib} to pull a higher number of tasks per interval. This could impact the performance of each {kib} instance as the workload will be higher. +Tweak the capacity with the <> setting, which enables each {kib} instance to pull a higher number of tasks per interval. This setting can impact the performance of each instance as the workload will be higher. -Tweak the *Poll Interval* via the <> setting, which allows each {kib} to pull scheduled tasks at a higher rate. This could impact the performance of the {es} cluster as the workload will be higher. +Tweak the poll interval with the <> setting, which enables each {kib} instance to pull scheduled tasks at a higher rate. This setting can impact the performance of the {es} cluster as the workload will be higher. [float] [[task-manager-choosing-scaling-strategy]] -==== Choosing a scaling strategy +=== Choosing a scaling strategy Each scaling strategy comes with its own considerations, and the appropriate strategy largely depends on your use case. @@ -113,7 +112,7 @@ A higher frequency suggests {kib} instances conflict at a high rate, which you c [float] [[task-manager-rough-throughput-estimation]] -==== Rough throughput estimation +=== Rough throughput estimation Predicting the required throughput a deployment might need to support Task Management is difficult, as features can schedule an unpredictable number of tasks at a variety of scheduled cadences. However, a rough lower bound can be estimated, which is then used as a guide. @@ -123,7 +122,7 @@ Throughput is best thought of as a measurements in tasks per minute. A default {kib} instance can support up to `200/tpm`. [float] -===== Automatic estimation +==== Automatic estimation experimental[] @@ -145,7 +144,7 @@ When evaluating the proposed {kib} instance number under `proposed.provisioned_k ============================================================================ [float] -===== Manual estimation +==== Manual estimation By <>, you can make a rough estimate as to the required throughput as a _tasks per minute_ measurement. diff --git a/docs/user/production-considerations/task-manager-troubleshooting.asciidoc b/docs/user/production-considerations/task-manager-troubleshooting.asciidoc index a5cbbefbe3160..593c008bd1b89 100644 --- a/docs/user/production-considerations/task-manager-troubleshooting.asciidoc +++ b/docs/user/production-considerations/task-manager-troubleshooting.asciidoc @@ -1002,7 +1002,7 @@ server log [12:41:33.672] [warn][plugins][taskManager][taskManager] taskManager This log message tells us that Task Manager is not managing to keep up with the sheer amount of work it has been tasked with completing. This might mean that rules are not running at the frequency that was expected (instead of running every 5 minutes, it runs every 7-8 minutes, just as an example). -By default Task Manager is limited to 10 tasks and this can be bumped up by setting a higher number in the kibana.yml file using the `xpack.task_manager.max_workers` configuration. It is important to keep in mind that a higher number of tasks running at any given time means more load on both Kibana and Elasticsearch, so only change this setting if increasing load in your environment makes sense. +By default Task Manager is limited to 10 tasks and this can be bumped up by setting a higher number in the `kibana.yml` file using the `xpack.task_manager.capacity` configuration. It is important to keep in mind that a higher number of tasks running at any given time means more load on both Kibana and Elasticsearch; only change this setting if increasing load in your environment makes sense. Another approach to addressing this might be to tell workers to run at a higher rate, rather than adding more of them, which would be configured using xpack.task_manager.poll_interval. This value dictates how often Task Manager checks to see if there’s more work to be done and uses milliseconds (by default it is 3000, which means an interval of 3 seconds). diff --git a/examples/content_management_examples/public/examples/todos/todos.tsx b/examples/content_management_examples/public/examples/todos/todos.tsx index e83bdd1fd4c98..dc2a76ed5df44 100644 --- a/examples/content_management_examples/public/examples/todos/todos.tsx +++ b/examples/content_management_examples/public/examples/todos/todos.tsx @@ -80,7 +80,7 @@ export const Todos = () => { deleteTodoMutation.isLoading || updateTodoMutation.isLoading; - if (isError) return

Error: {error}

; + if (isError) return

Error: {error as string}

; return ( <> diff --git a/examples/embeddable_examples/public/app/app.tsx b/examples/embeddable_examples/public/app/app.tsx index c95a2baf0babc..f59169849e9f0 100644 --- a/examples/embeddable_examples/public/app/app.tsx +++ b/examples/embeddable_examples/public/app/app.tsx @@ -7,107 +7,98 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import React, { useState } from 'react'; +import React, { useMemo } from 'react'; +import { Redirect } from 'react-router-dom'; import ReactDOM from 'react-dom'; import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; import { AppMountParameters, CoreStart } from '@kbn/core/public'; -import { - EuiPage, - EuiPageBody, - EuiPageHeader, - EuiPageSection, - EuiPageTemplate, - EuiSpacer, - EuiTab, - EuiTabs, -} from '@elastic/eui'; +import { BrowserRouter as Router, Routes, Route } from '@kbn/shared-ux-router'; +import { EuiPageTemplate, EuiTitle } from '@elastic/eui'; import { Overview } from './overview'; import { RegisterEmbeddable } from './register_embeddable'; import { RenderExamples } from './render_examples'; import { PresentationContainerExample } from './presentation_container_example/components/presentation_container_example'; import { StartDeps } from '../plugin'; +import { Sidebar } from './sidebar'; +import { StateManagementExample } from './state_management_example/state_management_example'; -const OVERVIEW_TAB_ID = 'overview'; -const REGISTER_EMBEDDABLE_TAB_ID = 'register'; -const RENDER_TAB_ID = 'render'; -const PRESENTATION_CONTAINER_EXAMPLE_ID = 'presentationContainerExample'; +const App = ({ + core, + deps, + mountParams, +}: { + core: CoreStart; + deps: StartDeps; + mountParams: AppMountParameters; +}) => { + const pages = useMemo(() => { + return [ + { + id: 'overview', + title: 'Embeddables overview', + component: , + }, + { + id: 'registerEmbeddable', + title: 'Register a new embeddable type', + component: , + }, + { + id: 'renderEmbeddable', + title: 'Render embeddables in your application', + component: , + }, + { + id: 'stateManagement', + title: 'Embeddable state management', + component: , + }, + { + id: 'presentationContainer', + title: 'Create a dashboard like experience with embeddables', + component: , + }, + ]; + }, [deps.uiActions]); -const App = ({ core, deps }: { core: CoreStart; deps: StartDeps }) => { - const [selectedTabId, setSelectedTabId] = useState(OVERVIEW_TAB_ID); - - function onSelectedTabChanged(tabId: string) { - setSelectedTabId(tabId); - } - - function renderTabContent() { - if (selectedTabId === RENDER_TAB_ID) { - return ; - } - - if (selectedTabId === REGISTER_EMBEDDABLE_TAB_ID) { - return ; - } - - if (selectedTabId === PRESENTATION_CONTAINER_EXAMPLE_ID) { - return ; - } - - return ; - } + const routes = useMemo(() => { + return pages.map((page) => ( + ( + <> + + +

{page.title}

+
+
+ {page.component} + + )} + /> + )); + }, [pages]); return ( - - - - - - - - - onSelectedTabChanged(OVERVIEW_TAB_ID)} - isSelected={OVERVIEW_TAB_ID === selectedTabId} - > - Embeddables overview - - onSelectedTabChanged(REGISTER_EMBEDDABLE_TAB_ID)} - isSelected={REGISTER_EMBEDDABLE_TAB_ID === selectedTabId} - > - Register new embeddable type - - onSelectedTabChanged(RENDER_TAB_ID)} - isSelected={RENDER_TAB_ID === selectedTabId} - > - Rendering embeddables in your application - - onSelectedTabChanged(PRESENTATION_CONTAINER_EXAMPLE_ID)} - isSelected={PRESENTATION_CONTAINER_EXAMPLE_ID === selectedTabId} - > - PresentationContainer example - - - - - - {renderTabContent()} - - - - + + + + + + + {routes} + + + + ); }; -export const renderApp = ( - core: CoreStart, - deps: StartDeps, - element: AppMountParameters['element'] -) => { - ReactDOM.render(, element); +export const renderApp = (core: CoreStart, deps: StartDeps, mountParams: AppMountParameters) => { + ReactDOM.render(, mountParams.element); - return () => ReactDOM.unmountComponentAtNode(element); + return () => ReactDOM.unmountComponentAtNode(mountParams.element); }; diff --git a/examples/embeddable_examples/public/app/presentation_container_example/components/add_button.tsx b/examples/embeddable_examples/public/app/presentation_container_example/components/add_button.tsx index 8a8390b8dcdfb..3bef0d4e1192e 100644 --- a/examples/embeddable_examples/public/app/presentation_container_example/components/add_button.tsx +++ b/examples/embeddable_examples/public/app/presentation_container_example/components/add_button.tsx @@ -10,15 +10,9 @@ import React, { ReactElement, useEffect, useState } from 'react'; import { EuiButton, EuiContextMenuItem, EuiContextMenuPanel, EuiPopover } from '@elastic/eui'; import { ADD_PANEL_TRIGGER, UiActionsStart } from '@kbn/ui-actions-plugin/public'; -import { ParentApi } from '../types'; +import { PageApi } from '../types'; -export function AddButton({ - parentApi, - uiActions, -}: { - parentApi: ParentApi; - uiActions: UiActionsStart; -}) { +export function AddButton({ pageApi, uiActions }: { pageApi: PageApi; uiActions: UiActionsStart }) { const [isPopoverOpen, setIsPopoverOpen] = useState(false); const [items, setItems] = useState([]); @@ -26,7 +20,7 @@ export function AddButton({ let cancelled = false; const actionContext = { - embeddable: parentApi, + embeddable: pageApi, trigger: { id: ADD_PANEL_TRIGGER, }, @@ -67,7 +61,7 @@ export function AddButton({ return () => { cancelled = true; }; - }, [parentApi, uiActions]); + }, [pageApi, uiActions]); return ( { - const { cleanUp, componentApi, parentApi } = useMemo(() => { - return getParentApi(); + const { cleanUp, componentApi, pageApi } = useMemo(() => { + return getPageApi(); }, []); useEffect(() => { @@ -37,25 +37,23 @@ export const PresentationContainerExample = ({ uiActions }: { uiActions: UiActio }, [cleanUp]); const [dataLoading, panels, timeRange] = useBatchedPublishingSubjects( - parentApi.dataLoading, + pageApi.dataLoading, componentApi.panels$, - parentApi.timeRange$ + pageApi.timeRange$ ); return (

- At times, you will need to render many embeddables and allow users to add, remove, and - re-arrange embeddables. Use the PresentationContainer and{' '} + At times, you will need to render many embeddables and allow users to add and remove + embeddables. Use the PresentationContainer and{' '} CanAddNewPanel interfaces for this functionallity.

- Each embeddable manages its own state. The page is only responsible for persisting and - providing the last persisted state to the embeddable. Implement{' '} - HasSerializedChildState interface to provide an embeddable with last - persisted state. Implement HasRuntimeChildState interface to provide an - embeddable with a previous session's unsaved changes. + New embeddable state is provided to the page by calling{' '} + pageApi.addNewPanel. The page provides new embeddable state to the + embeddable with pageApi.getRuntimeStateForChild.

This example uses session storage to persist saved state and unsaved changes while a @@ -96,8 +94,8 @@ export const PresentationContainerExample = ({ uiActions }: { uiActions: UiActio @@ -110,7 +108,7 @@ export const PresentationContainerExample = ({ uiActions }: { uiActions: UiActio parentApi} + getParentApi={() => pageApi} hidePanelChrome={false} onApiAvailable={(api) => { componentApi.setChild(id, api); @@ -121,7 +119,7 @@ export const PresentationContainerExample = ({ uiActions }: { uiActions: UiActio ); })} - +

); }; diff --git a/examples/embeddable_examples/public/app/presentation_container_example/parent_api.ts b/examples/embeddable_examples/public/app/presentation_container_example/page_api.ts similarity index 98% rename from examples/embeddable_examples/public/app/presentation_container_example/parent_api.ts rename to examples/embeddable_examples/public/app/presentation_container_example/page_api.ts index 5d1e789011023..a2e4114bf59a8 100644 --- a/examples/embeddable_examples/public/app/presentation_container_example/parent_api.ts +++ b/examples/embeddable_examples/public/app/presentation_container_example/page_api.ts @@ -27,9 +27,9 @@ import { } from '@kbn/presentation-publishing'; import { DEFAULT_STATE, lastSavedStateSessionStorage } from './session_storage/last_saved_state'; import { unsavedChangesSessionStorage } from './session_storage/unsaved_changes'; -import { LastSavedState, ParentApi, UnsavedChanges } from './types'; +import { LastSavedState, PageApi, UnsavedChanges } from './types'; -export function getParentApi() { +export function getPageApi() { const initialUnsavedChanges = unsavedChangesSessionStorage.load(); const initialSavedState = lastSavedStateSessionStorage.load(); let newPanels: Record = {}; @@ -185,7 +185,7 @@ export function getParentApi() { timeRange$.next(timeRange); }, }, - parentApi: { + pageApi: { addNewPanel: async ({ panelType, initialState }: PanelPackage) => { const id = generateId(); panels$.next([...panels$.value, { id, type: panelType }]); @@ -257,6 +257,6 @@ export function getParentApi() { }, timeRange$, unsavedChanges: unsavedChanges$ as PublishingSubject, - } as ParentApi, + } as PageApi, }; } diff --git a/examples/embeddable_examples/public/app/presentation_container_example/types.ts b/examples/embeddable_examples/public/app/presentation_container_example/types.ts index 151401f5e0c78..66ac415ffebbe 100644 --- a/examples/embeddable_examples/public/app/presentation_container_example/types.ts +++ b/examples/embeddable_examples/public/app/presentation_container_example/types.ts @@ -26,7 +26,7 @@ import { } from '@kbn/presentation-publishing'; import { PublishesReload } from '@kbn/presentation-publishing/interfaces/fetch/publishes_reload'; -export type ParentApi = PresentationContainer & +export type PageApi = PresentationContainer & CanAddNewPanel & HasExecutionContext & HasSaveNotification & diff --git a/examples/embeddable_examples/public/app/setup_app.ts b/examples/embeddable_examples/public/app/setup_app.ts index 5039c39b0a667..49827fc7550e9 100644 --- a/examples/embeddable_examples/public/app/setup_app.ts +++ b/examples/embeddable_examples/public/app/setup_app.ts @@ -19,10 +19,10 @@ export function setupApp(core: CoreSetup, developerExamples: Develope id: APP_ID, title, visibleIn: [], - async mount(params: AppMountParameters) { + async mount(mountParams: AppMountParameters) { const { renderApp } = await import('./app'); const [coreStart, deps] = await core.getStartServices(); - return renderApp(coreStart, deps, params.element); + return renderApp(coreStart, deps, mountParams); }, }); developerExamples.register({ diff --git a/examples/embeddable_examples/public/app/sidebar.tsx b/examples/embeddable_examples/public/app/sidebar.tsx new file mode 100644 index 0000000000000..515ac1926a21e --- /dev/null +++ b/examples/embeddable_examples/public/app/sidebar.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import React, { useMemo } from 'react'; +import { css } from '@emotion/react'; +import { useHistory } from 'react-router-dom'; +import { EuiSideNav } from '@elastic/eui'; + +export function Sidebar({ pages }: { pages: Array<{ id: string; title: string }> }) { + const history = useHistory(); + + const items = useMemo(() => { + return pages.map((page) => { + return { + id: page.id, + name: page.title, + onClick: () => history.push(`/${page.id}`), + }; + }); + }, [pages, history]); + + return ( + + ); +} diff --git a/examples/embeddable_examples/public/app/state_management_example/last_saved_state.ts b/examples/embeddable_examples/public/app/state_management_example/last_saved_state.ts new file mode 100644 index 0000000000000..bf96dd6b809ac --- /dev/null +++ b/examples/embeddable_examples/public/app/state_management_example/last_saved_state.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { SerializedPanelState } from '@kbn/presentation-containers'; +import { BookSerializedState } from '../../react_embeddables/saved_book/types'; + +const SAVED_STATE_SESSION_STORAGE_KEY = + 'kibana.examples.embeddables.stateManagementExample.savedState'; + +export const lastSavedStateSessionStorage = { + clear: () => { + sessionStorage.removeItem(SAVED_STATE_SESSION_STORAGE_KEY); + }, + load: (): SerializedPanelState | undefined => { + const savedState = sessionStorage.getItem(SAVED_STATE_SESSION_STORAGE_KEY); + return savedState ? JSON.parse(savedState) : undefined; + }, + save: (state: SerializedPanelState) => { + sessionStorage.setItem(SAVED_STATE_SESSION_STORAGE_KEY, JSON.stringify(state)); + }, +}; diff --git a/examples/embeddable_examples/public/app/state_management_example/state_management_example.tsx b/examples/embeddable_examples/public/app/state_management_example/state_management_example.tsx new file mode 100644 index 0000000000000..a3dcd06618155 --- /dev/null +++ b/examples/embeddable_examples/public/app/state_management_example/state_management_example.tsx @@ -0,0 +1,175 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import React, { useEffect, useMemo, useState } from 'react'; +import { + EuiBadge, + EuiButton, + EuiButtonEmpty, + EuiCallOut, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, +} from '@elastic/eui'; +import { UiActionsStart } from '@kbn/ui-actions-plugin/public'; +import { ViewMode } from '@kbn/presentation-publishing'; +import { ReactEmbeddableRenderer } from '@kbn/embeddable-plugin/public'; +import { BehaviorSubject, Subject } from 'rxjs'; +import useMountedState from 'react-use/lib/useMountedState'; +import { SAVED_BOOK_ID } from '../../react_embeddables/saved_book/constants'; +import { + BookApi, + BookRuntimeState, + BookSerializedState, +} from '../../react_embeddables/saved_book/types'; +import { lastSavedStateSessionStorage } from './last_saved_state'; +import { unsavedChangesSessionStorage } from './unsaved_changes'; + +export const StateManagementExample = ({ uiActions }: { uiActions: UiActionsStart }) => { + const isMounted = useMountedState(); + const saveNotification$ = useMemo(() => { + return new Subject(); + }, []); + + const [bookApi, setBookApi] = useState(); + const [isSaving, setIsSaving] = useState(false); + const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false); + + useEffect(() => { + if (!bookApi || !bookApi.unsavedChanges) { + return; + } + const subscription = bookApi.unsavedChanges.subscribe((unsavedChanges) => { + setHasUnsavedChanges(unsavedChanges !== undefined); + unsavedChangesSessionStorage.save(unsavedChanges ?? {}); + }); + + return () => { + subscription.unsubscribe(); + }; + }, [bookApi]); + + return ( +
+ +

+ Each embeddable manages its own state. The page is only responsible for persisting and + providing the last persisted state to the embeddable. +

+ +

+ The page renders the embeddable with ReactEmbeddableRenderer component. + On mount, ReactEmbeddableRenderer component calls{' '} + pageApi.getSerializedStateForChild to get the last saved state. + ReactEmbeddableRenderer component then calls{' '} + pageApi.getRuntimeStateForChild to get the last session's unsaved + changes. ReactEmbeddableRenderer merges last saved state with unsaved changes and passes + the merged state to the embeddable factory. ReactEmbeddableRender passes the embeddableApi + to the page by calling onApiAvailable. +

+ +

+ The page subscribes to embeddableApi.unsavedChanges to receive embeddable + unsaved changes. The page persists unsaved changes in session storage. The page provides + unsaved changes to the embeddable with pageApi.getRuntimeStateForChild. +

+ +

+ The page gets embeddable state by calling embeddableApi.serializeState. + The page persists embeddable state in session storage. The page provides last saved state + to the embeddable with pageApi.getSerializedStateForChild. +

+ +

+ { + lastSavedStateSessionStorage.clear(); + unsavedChangesSessionStorage.clear(); + window.location.reload(); + }} + > + Reset example + +

+
+ + + + + {hasUnsavedChanges && ( + <> + + Unsaved changes + + + { + bookApi?.resetUnsavedChanges?.(); + }} + > + Reset + + + + )} + + { + if (!bookApi) { + return; + } + + setIsSaving(true); + const bookSerializedState = await bookApi.serializeState(); + if (!isMounted()) { + return; + } + lastSavedStateSessionStorage.save(bookSerializedState); + saveNotification$.next(); // signals embeddable unsaved change tracking to update last saved state + setHasUnsavedChanges(false); + setIsSaving(false); + }} + > + Save + + + + + + + + type={SAVED_BOOK_ID} + getParentApi={() => { + return { + /** + * return last saved embeddable state + */ + getSerializedStateForChild: (childId: string) => { + return lastSavedStateSessionStorage.load(); + }, + /** + * return previous session's unsaved changes for embeddable + */ + getRuntimeStateForChild: (childId: string) => { + return unsavedChangesSessionStorage.load(); + }, + saveNotification$, + viewMode: new BehaviorSubject('edit'), + }; + }} + onApiAvailable={(api) => { + setBookApi(api); + }} + /> +
+ ); +}; diff --git a/examples/embeddable_examples/public/app/state_management_example/unsaved_changes.ts b/examples/embeddable_examples/public/app/state_management_example/unsaved_changes.ts new file mode 100644 index 0000000000000..7106872db59e1 --- /dev/null +++ b/examples/embeddable_examples/public/app/state_management_example/unsaved_changes.ts @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { BookRuntimeState } from '../../react_embeddables/saved_book/types'; + +const UNSAVED_CHANGES_SESSION_STORAGE_KEY = + 'kibana.examples.embeddables.stateManagementExample.unsavedChanges'; + +export const unsavedChangesSessionStorage = { + clear: () => { + sessionStorage.removeItem(UNSAVED_CHANGES_SESSION_STORAGE_KEY); + }, + load: (): Partial | undefined => { + const unsavedChanges = sessionStorage.getItem(UNSAVED_CHANGES_SESSION_STORAGE_KEY); + return unsavedChanges ? JSON.parse(unsavedChanges) : undefined; + }, + save: (unsavedChanges: Partial) => { + sessionStorage.setItem(UNSAVED_CHANGES_SESSION_STORAGE_KEY, JSON.stringify(unsavedChanges)); + }, +}; diff --git a/examples/embeddable_examples/public/react_embeddables/saved_book/create_saved_book_action.tsx b/examples/embeddable_examples/public/react_embeddables/saved_book/create_saved_book_action.tsx index a88aad33113f9..dfcff31dd8a8d 100644 --- a/examples/embeddable_examples/public/react_embeddables/saved_book/create_saved_book_action.tsx +++ b/examples/embeddable_examples/public/react_embeddables/saved_book/create_saved_book_action.tsx @@ -9,7 +9,7 @@ import { CoreStart } from '@kbn/core/public'; import { i18n } from '@kbn/i18n'; -import { apiIsPresentationContainer } from '@kbn/presentation-containers'; +import { apiCanAddNewPanel } from '@kbn/presentation-containers'; import { EmbeddableApiContext } from '@kbn/presentation-publishing'; import { IncompatibleActionError, ADD_PANEL_TRIGGER } from '@kbn/ui-actions-plugin/public'; import { UiActionsPublicStart } from '@kbn/ui-actions-plugin/public/plugin'; @@ -30,10 +30,10 @@ export const registerCreateSavedBookAction = (uiActions: UiActionsPublicStart, c getIconType: () => 'folderClosed', grouping: [embeddableExamplesGrouping], isCompatible: async ({ embeddable }) => { - return apiIsPresentationContainer(embeddable); + return apiCanAddNewPanel(embeddable); }, execute: async ({ embeddable }) => { - if (!apiIsPresentationContainer(embeddable)) throw new IncompatibleActionError(); + if (!apiCanAddNewPanel(embeddable)) throw new IncompatibleActionError(); const newPanelStateManager = stateManagerFromAttributes(defaultBookAttributes); const { addToLibrary } = await openSavedBookEditor(newPanelStateManager, true, core, { diff --git a/examples/embeddable_examples/public/react_embeddables/saved_book/saved_book_editor.tsx b/examples/embeddable_examples/public/react_embeddables/saved_book/saved_book_editor.tsx index fe22ce9883e9e..69fb6053d882d 100644 --- a/examples/embeddable_examples/public/react_embeddables/saved_book/saved_book_editor.tsx +++ b/examples/embeddable_examples/public/react_embeddables/saved_book/saved_book_editor.tsx @@ -135,7 +135,7 @@ export const SavedBookEditor = ({ })} > attributesManager.authorName.next(e.target.value)} /> @@ -145,7 +145,7 @@ export const SavedBookEditor = ({ })} > attributesManager.bookTitle.next(e.target.value)} /> @@ -155,7 +155,7 @@ export const SavedBookEditor = ({ })} > attributesManager.numberOfPages.next(+e.target.value)} /> @@ -165,7 +165,7 @@ export const SavedBookEditor = ({ })} > attributesManager.bookSynopsis.next(e.target.value)} /> diff --git a/examples/embeddable_examples/public/react_embeddables/saved_book/saved_book_react_embeddable.tsx b/examples/embeddable_examples/public/react_embeddables/saved_book/saved_book_react_embeddable.tsx index d6e4964c84bee..58f0f4de8555c 100644 --- a/examples/embeddable_examples/public/react_embeddables/saved_book/saved_book_react_embeddable.tsx +++ b/examples/embeddable_examples/public/react_embeddables/saved_book/saved_book_react_embeddable.tsx @@ -13,6 +13,7 @@ import { CoreStart } from '@kbn/core-lifecycle-browser'; import { ReactEmbeddableFactory } from '@kbn/embeddable-plugin/public'; import { i18n } from '@kbn/i18n'; import { + apiHasParentApi, initializeTitles, SerializedTitles, useBatchedPublishingSubjects, @@ -20,6 +21,7 @@ import { import { euiThemeVars } from '@kbn/ui-theme'; import React from 'react'; import { BehaviorSubject } from 'rxjs'; +import { PresentationContainer } from '@kbn/presentation-containers'; import { serializeBookAttributes, stateManagerFromAttributes } from './book_state'; import { SAVED_BOOK_ID } from './constants'; import { openSavedBookEditor } from './saved_book_editor'; @@ -137,6 +139,10 @@ export const getSavedBookEmbeddableFactory = (core: CoreStart) => { } ); + const showLibraryCallout = + apiHasParentApi(api) && + typeof (api.parentApi as PresentationContainer)?.replacePanel === 'function'; + return { api, Component: () => { @@ -155,20 +161,22 @@ export const getSavedBookEmbeddableFactory = (core: CoreStart) => { width: 100%; `} > - + {showLibraryCallout && ( + + )}
- {error} + {JSON.stringify(error)} ) : null} {randomNumber > -1 ? ( diff --git a/examples/search_examples/public/search/app.tsx b/examples/search_examples/public/search/app.tsx index 63d6499c76935..6639d446e80ec 100644 --- a/examples/search_examples/public/search/app.tsx +++ b/examples/search_examples/public/search/app.tsx @@ -218,7 +218,7 @@ export const SearchExamplesApp = ({ const executedAt = (res as IMyStrategyResponse).executed_at; const message = ( - Searched {res.rawResponse.hits.total} documents.
+ Searched {res.rawResponse.hits.total as number} documents.
The ${metricAggType} of {selectedNumericField!.name} is{' '} {aggResult ? Math.floor(aggResult) : 0}.
@@ -331,7 +331,9 @@ export const SearchExamplesApp = ({ setWarningContents(warnings); } - const message = Searched {result.rawResponse.hits.total} documents.; + const message = ( + Searched {result.rawResponse.hits.total as number} documents. + ); notifications.toasts.addSuccess( { title: 'Query result', diff --git a/examples/search_examples/public/search_sessions/app.tsx b/examples/search_examples/public/search_sessions/app.tsx index bc50fccd1b5c4..d9fe9d454848e 100644 --- a/examples/search_examples/public/search_sessions/app.tsx +++ b/examples/search_examples/public/search_sessions/app.tsx @@ -726,7 +726,7 @@ function doSearch( const message = ( - Searched {res.rawResponse.hits.total} documents.
+ Searched {res.rawResponse.hits.total as number} documents.
The average of {numericFieldName} is {avgResult ? Math.floor(avgResult) : 0} .
diff --git a/oas_docs/output/kibana.serverless.yaml b/oas_docs/output/kibana.serverless.yaml index 348fa975c5f27..caaee59e30287 100644 --- a/oas_docs/output/kibana.serverless.yaml +++ b/oas_docs/output/kibana.serverless.yaml @@ -79,4289 +79,3949 @@ servers: kibana_url: default: 'localhost:5601' - url: / - - description: Public and supported Fleet API - url: 'http://KIBANA_HOST:5601/api/fleet' + - url: 'http://KIBANA_HOST:5601' - description: local url: 'http://localhost:5601' paths: - /agent_download_sources: + /api/actions: get: - operationId: get-download-sources - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_download_sources' - type: array - page: - type: integer - perPage: - type: integer - total: - type: integer - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agent binary download sources + deprecated: true + operationId: '%2Fapi%2Factions#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + responses: {} + summary: Get all connectors tags: - - Elastic Agent binary download sources + - connectors + /api/actions/action: post: - operationId: post-download-sources + deprecated: true + operationId: '%2Fapi%2Factions%2Faction#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - host: - type: string - id: + actionTypeId: + description: The connector type identifier. type: string - is_default: - type: boolean + config: + additionalProperties: {} + default: {} + type: object name: + description: The display name for the connector. type: string + secrets: + additionalProperties: {} + default: {} + type: object required: - name - - host - - is_default + - actionTypeId responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_download_sources' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create agent binary download source + description: Indicates a successful call. + summary: Create a connector tags: - - Elastic Agent binary download sources - '/agent_download_sources/{sourceId}': + - connectors + '/api/actions/action/{id}': delete: - operationId: delete-download-source + deprecated: true + description: 'WARNING: When you delete a connector, it cannot be recovered.' + operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#0' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - id: - type: string - required: - - id - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete agent binary download source by ID + '204': + description: Indicates a successful call. + summary: Delete a connector tags: - - Elastic Agent binary download sources + - connectors get: - operationId: get-one-download-source + deprecated: true + operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#1' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_download_sources' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent binary download source by ID + description: Indicates a successful call. + summary: Get connector information tags: - - Elastic Agent binary download sources - parameters: - - in: path - name: sourceId - required: true - schema: - type: string + - connectors put: - operationId: update-download-source + deprecated: true + operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#2' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - host: - type: string - is_default: - type: boolean + config: + additionalProperties: {} + default: {} + type: object name: type: string + secrets: + additionalProperties: {} + default: {} + type: object required: - name - - is_default - - host responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_download_sources' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update agent binary download source by ID + description: Indicates a successful call. + summary: Update a connector tags: - - Elastic Agent binary download sources - /agent_policies: - get: - description: '' - operationId: agent-policy-list + - connectors + '/api/actions/action/{id}/_execute': + post: + deprecated: true + operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D%2F_execute#0' parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - $ref: '#/components/parameters/Fleet_kuery' - - $ref: '#/components/parameters/Fleet_format' - - description: >- - When set to true, retrieve the related package policies for each - agent policy. - in: query - name: full + - description: The version of the API to use + in: header + name: elastic-api-version schema: - type: boolean + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + params: + additionalProperties: {} + type: object + required: + - params + responses: + '200': + description: Indicates a successful call. + summary: Run a connector + tags: + - connectors + /api/actions/connector_types: + get: + description: You do not need any Kibana feature privileges to run this API. + operationId: '%2Fapi%2Factions%2Fconnector_types#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string - description: >- - When set to true, do not count how many agents are in the agent - policy, this can improve performance if you are searching over a - large number of agent policies. The "agents" property will always be - 0 if set to true. + A filter to limit the retrieved connector types to those that + support a specific feature (such as alerting or cases). in: query - name: noAgentCount + name: feature_id + required: false schema: - type: boolean + type: string + responses: {} + summary: Get connector types + tags: + - connectors + '/api/actions/connector/{id}': + delete: + description: 'WARNING: When you delete a connector, it cannot be recovered.' + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Delete a connector + tags: + - connectors + get: + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#1' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_agent_policy' - type: array - page: - type: number - perPage: - type: number - total: - type: number - required: - - items - - total - - page - - perPage - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agent policies + description: Indicates a successful call. + summary: Get connector information tags: - - Elastic Agent policies + - connectors post: - operationId: create-agent-policy + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%3F%7D#0' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: id + required: false + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_agent_policy_create_request' + additionalProperties: false + type: object + properties: + config: + additionalProperties: {} + default: {} + type: object + connector_type_id: + description: The type of connector. + type: string + name: + description: The display name for the connector. + type: string + secrets: + additionalProperties: {} + default: {} + type: object + required: + - name + - connector_type_id responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_policy' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create agent policy + description: Indicates a successful call. + summary: Create a connector tags: - - Elastic Agent policies - /agent_policies/_bulk_get: - post: - operationId: bulk-get-agent-policies + - connectors + put: + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#2' parameters: - - $ref: '#/components/parameters/Fleet_format' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - full: - description: get full policies with package policies populated - type: boolean - ids: - description: list of agent policy ids - items: - type: string - type: array - ignoreMissing: - type: boolean + config: + additionalProperties: {} + default: {} + type: object + name: + description: The display name for the connector. + type: string + secrets: + additionalProperties: {} + default: {} + type: object required: - - ids + - name responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_agent_policy' - type: array - required: - - items - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk get agent policies - tags: - - Elastic Agent policies - '/agent_policies/{agentPolicyId}': - get: - description: Get one agent policy - operationId: agent-policy-info - parameters: [] - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_policy' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent policy by ID - tags: - - Elastic Agent policies - parameters: - - in: path - name: agentPolicyId - required: true - schema: - type: string - - $ref: '#/components/parameters/Fleet_format' - put: - operationId: update-agent-policy - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_agent_policy_update_request' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_policy' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update agent policy by ID + description: Indicates a successful call. + summary: Update a connector tags: - - Elastic Agent policies - '/agent_policies/{agentPolicyId}/copy': - parameters: - - in: path - name: agentPolicyId - required: true - schema: - type: string - - $ref: '#/components/parameters/Fleet_format' + - connectors + '/api/actions/connector/{id}/_execute': post: - operationId: agent-policy-copy + description: >- + You can use this API to test an action that involves interaction with + Kibana services or integrations with third-party systems. + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D%2F_execute#0' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - description: - type: string - name: - type: string + params: + additionalProperties: {} + type: object required: - - name - description: '' + - params responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_policy' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Copy agent policy by ID + description: Indicates a successful call. + summary: Run a connector tags: - - Elastic Agent policies - '/agent_policies/{agentPolicyId}/download': + - connectors + /api/actions/connectors: get: - operationId: agent-policy-download + operationId: '%2Fapi%2Factions%2Fconnectors#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + responses: {} + summary: Get all connectors + tags: + - connectors + /api/actions/list_action_types: + get: + deprecated: true + operationId: '%2Fapi%2Factions%2Flist_action_types#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + responses: {} + summary: Get connector types + tags: + - connectors + '/api/alerting/rule/{id}': + delete: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#2' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Download agent policy by ID + '204': + description: Indicates a successful call. + summary: Delete a rule tags: - - Elastic Agent policies - parameters: - - in: path - name: agentPolicyId - required: true - schema: - type: string - - in: query - name: download - required: false - schema: - type: string - - in: query - name: standalone - required: false - schema: - type: string - - in: query - name: kubernetes - required: false - schema: - type: string - '/agent_policies/{agentPolicyId}/full': + - alerting get: - operationId: agent-policy-full + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - item: - oneOf: - - type: string - - $ref: '#/components/schemas/Fleet_agent_policy_full' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get full agent policy by ID - tags: - - Elastic Agent policies - parameters: - - in: path - name: agentPolicyId - required: true - schema: - type: string - - in: query - name: download - required: false - schema: - type: string - - in: query - name: standalone - required: false - schema: - type: string - - in: query - name: kubernetes - required: false - schema: - type: string - /agent_policies/delete: - parameters: [] - post: - operationId: delete-agent-policy - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - agentPolicyId: - type: string - force: - description: >- - bypass validation checks that can prevent agent policy - deletion - type: boolean - required: - - agentPolicyId - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - id: - type: string - success: - type: boolean - required: - - id - - success - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete agent policy by ID - tags: - - Elastic Agent policies - /agent_status: - get: - operationId: get-agent-status - parameters: - - in: query - name: policyId - required: false - schema: - type: string - - deprecated: true - in: query - name: kuery - required: false - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - active: - type: integer - all: - type: integer - error: - type: integer - events: - type: integer - inactive: - type: integer - offline: - type: integer - online: - type: integer - other: - type: integer - total: - deprecated: true - type: integer - unenrolled: - type: integer - updating: - type: integer - required: - - active - - all - - error - - events - - inactive - - offline - - online - - other - - total - - updating - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent status summary - tags: - - Elastic Agent status - /agent_status/data: - get: - operationId: get-agent-data - parameters: - - in: query - name: agentsIds - required: true - schema: - items: - type: string - type: array - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: + actions: items: - additionalProperties: - type: object - properties: - data: - type: boolean + additionalProperties: false type: object - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get incoming agent data - tags: - - Elastic Agent status - /agent-status: - get: - deprecated: true - operationId: get-agent-status-deprecated - parameters: - - in: query - name: policyId - required: false - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - error: - type: integer - events: - type: integer - inactive: - type: integer - offline: - type: integer - online: - type: integer - other: - type: integer - total: - type: integer - updating: - type: integer - required: - - error - - events - - inactive - - offline - - online - - other - - total - - updating - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent status summary - tags: - - Elastic Agent status - /agents: - get: - operationId: get-agents - parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - $ref: '#/components/parameters/Fleet_kuery' - - $ref: '#/components/parameters/Fleet_show_inactive' - - $ref: '#/components/parameters/Fleet_show_upgradeable' - - $ref: '#/components/parameters/Fleet_sort_field' - - $ref: '#/components/parameters/Fleet_sort_order' - - $ref: '#/components/parameters/Fleet_with_metrics' - - in: query - name: getStatusSummary - required: false - schema: - type: boolean - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_get_agents_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agents - tags: - - Elastic Agents - post: - operationId: get-agents-by-actions - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionIds: - items: - type: string - type: array - required: - - policy_id - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_agent_get_by_actions' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agents by action ids - tags: - - Elastic Agents - '/agents/{agentId}': - delete: - operationId: delete-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - action: - enum: - - deleted + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true type: string - required: - - action - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete agent by ID - tags: - - Elastic Agents - get: - operationId: get-agent - parameters: - - $ref: '#/components/parameters/Fleet_with_metrics' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent by ID - tags: - - Elastic Agents - parameters: - - in: path - name: agentId - required: true - schema: - type: string - put: - operationId: update-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - tags: - items: - type: string - type: array - user_provided_metadata: - type: object - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update agent by ID - tags: - - Elastic Agents - '/agents/{agentId}/actions': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: new-agent-action - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - action: - $ref: '#/components/schemas/Fleet_agent_action' - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - body: - items: - type: number - type: array - headers: - type: string - statusCode: - type: number - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create agent action - tags: - - Elastic Agent actions - '/agents/{agentId}/reassign': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: reassign-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - policy_id: - type: string - required: - - policy_id - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Reassign agent - tags: - - Elastic Agents - put: - deprecated: true - operationId: reassign-agent-deprecated - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - policy_id: - type: string - required: - - policy_id - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Reassign agent - tags: - - Elastic Agents - '/agents/{agentId}/request_diagnostics': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: request-diagnostics-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - additional_metrics: - items: - oneOf: - - enum: - - CPU - type: string - type: array - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Request agent diagnostics - tags: - - Elastic Agents - '/agents/{agentId}/unenroll': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: unenroll-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - force: - type: boolean - revoke: - type: boolean - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: OK - '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - error: + created_at: + description: The date and time that the rule was created. type: string - message: + created_by: + description: The identifier for the user that created the rule. + nullable: true type: string - statusCode: - enum: - - 400 - type: number - description: BAD REQUEST - summary: Unenroll agent - tags: - - Elastic Agents - '/agents/{agentId}/upgrade': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: upgrade-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_upgrade_agent' - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_upgrade_agent' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Upgrade agent - tags: - - Elastic Agents - '/agents/{agentId}/uploads': - get: - operationId: list-agent-uploads - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - body: + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false type: object properties: - item: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: items: - $ref: '#/components/schemas/Fleet_agent_diagnostics' - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agent uploads - tags: - - Elastic Agents - parameters: - - in: path - name: agentId - required: true - schema: - type: string - /agents/action_status: - get: - operationId: agents-action-status - parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - in: query - name: errorSize - schema: - default: 5 - type: integer - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - type: object - properties: - actionId: - type: string - cancellationTime: - type: string - completionTime: - type: string - creationTime: - description: creation time of action - type: string - expiration: + description: Outcome message generated during last rule run. type: string - latestErrors: - description: >- - latest errors that happened when the agents executed - the action - items: + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. type: object properties: - agentId: - type: string - error: - type: string - timestamp: - type: string - type: array - nbAgentsAck: - description: number of agents that acknowledged the action - type: number - nbAgentsActionCreated: - description: number of agents included in action from kibana - type: number - nbAgentsActioned: - description: number of agents actioned - type: number - nbAgentsFailed: - description: number of agents that failed to execute the action - type: number - newPolicyId: - description: new policy id (POLICY_REASSIGN action) - type: string - policyId: - description: policy id (POLICY_CHANGE action) - type: string - revision: - description: new policy revision (POLICY_CHANGE action) - type: string - startTime: - description: start time of action (scheduled actions) - type: string - status: - enum: - - COMPLETE - - EXPIRED - - CANCELLED - - FAILED - - IN_PROGRESS - - ROLLOUT_PASSED - type: string - type: - enum: - - POLICY_REASSIGN - - UPGRADE - - UNENROLL - - FORCE_UNENROLL - - UPDATE_TAGS - - CANCEL - - REQUEST_DIAGNOSTICS - - SETTINGS - - POLICY_CHANGE - - INPUT_ACTION - type: string - version: - description: agent version number (UPGRADE action) - type: string - required: - - actionId - - complete - - nbAgentsActioned - - nbAgentsActionCreated - - nbAgentsAck - - nbAgentsFailed - - status - - creationTime - - type - type: array - required: - - items - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent action status - tags: - - Elastic Agent actions - '/agents/actions/{actionId}/cancel': - parameters: - - in: path - name: actionId - required: true - schema: - type: string - post: - operationId: agent-action-cancel - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_action' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Cancel agent action - tags: - - Elastic Agent actions - /agents/bulk_reassign: - post: - operationId: bulk-reassign-agents - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' - policy_id: policy_id - schema: - type: object - properties: - agents: - oneOf: - - description: 'KQL query string, leave empty to action all agents' + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' type: string - - description: list of agent IDs - items: - type: string - type: array - policy_id: - description: new agent policy id - type: string - required: - - policy_id - - agents - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk reassign agents - tags: - - Elastic Agents - /agents/bulk_request_diagnostics: - post: - operationId: bulk-request-diagnostics - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' - schema: - type: object - properties: - additional_metrics: - items: - oneOf: - - enum: - - CPU - type: string - type: array - agents: - oneOf: - - description: 'KQL query string, leave empty to action all agents' - type: string - - description: list of agent IDs - items: - type: string - type: array - batchSize: - type: number - required: - - agents - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk request diagnostics from agents - tags: - - Elastic Agents - /agents/bulk_unenroll: - post: - operationId: bulk-unenroll-agents - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: - - agent1 - - agent2 - force: false - revoke: true - schema: - type: object - properties: - agents: - oneOf: - - description: 'KQL query string, leave empty to action all agents' - type: string - - description: list of agent IDs - items: - type: string - type: array - force: - description: Unenrolls hosted agents too - type: boolean - includeInactive: - description: >- - When passing agents by KQL query, unenrolls inactive agents - too - type: boolean - revoke: - description: Revokes API keys of agents - type: boolean - required: - - agents - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk unenroll agents - tags: - - Elastic Agents - /agents/bulk_update_agent_tags: - post: - operationId: bulk-update-agent-tags - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: - - agent1 - - agent2 - tagsToAdd: - - newTag - tagsToRemove: - - existingTag - schema: - type: object - properties: - agents: - oneOf: - - description: 'KQL query string, leave empty to action all agents' - type: string - - description: list of agent IDs - items: - type: string - type: array - batchSize: - type: number - tagsToAdd: - items: + type: array + name: + description: ' The name of the rule.' type: string - type: array - tagsToRemove: - items: + next_run: + description: Date and time of the next run of the rule. + nullable: true type: string - type: array - required: - - agents - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk update agent tags - tags: - - Elastic Agents - /agents/bulk_upgrade: - post: - operationId: bulk-upgrade-agents - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: - - agent1 - - agent2 - rollout_duration_seconds: 3600 - source_uri: 'https://artifacts.elastic.co/downloads/beats/elastic-agent' - start_time: 2022-08-03T14:00:00.000Z - version: 8.4.0 - schema: - $ref: '#/components/schemas/Fleet_bulk_upgrade_agents' - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk upgrade agents - tags: - - Elastic Agents - '/agents/files/{fileId}': - delete: - operationId: delete-agent-upload-file - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - body: + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false type: object properties: - deleted: - type: boolean - id: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete file uploaded by agent - tags: - - Elastic Agents - parameters: - - in: path - name: fileId - required: true - schema: - type: string - '/agents/files/{fileId}/{fileName}': - get: - operationId: get-agent-upload-file - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - body: + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Get rule details + tags: + - alerting + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%3F%7D#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: >- + The identifier for the rule. If it is omitted, an ID is randomly + generated. + in: path + name: id + required: false + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + default: [] + items: + additionalProperties: false + description: An action that runs under defined conditions. type: object properties: - items: + alerts_filter: + additionalProperties: false + description: >- + Conditions that affect whether the action runs. If you + specify multiple conditions, all conditions must be + met for the action to run. For example, if an alert + occurs within the specified time frame and matches the + query, the action runs. type: object properties: - body: {} - headers: {} - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get file uploaded by agent - tags: - - Elastic Agents - parameters: - - in: path - name: fileId - required: true - schema: - type: string - - in: path - name: fileName - required: true - schema: - type: string - /agents/setup: - get: - operationId: get-agents-setup-status - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_status_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent setup info - tags: - - Elastic Agents - post: - operationId: setup-agents - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - admin_password: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL) as defined in the + `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the days + of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + description: >- + Defines the range of time in a day that the + action can run. If the `start` value is + `00:00` and the `end` value is `24:00`, + actions be generated all day. + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work but + lack built-in daylight savings time support + and are not recommended. + type: string + required: + - days + - hours + - timezone + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. Valid + values include: `onActionGroupChange`: Actions run + when the alert status changes; `onActiveAlert`: + Actions run when the alert becomes active and at + each check interval while the rule conditions are + met; `onThrottleInterval`: Actions run when the + alert becomes active and at the interval specified + in the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` at + both the rule and action level. The recommended + method is to set it for each action. If you set it + at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific + values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often an + alert generates repeated actions. It is specified + in seconds, minutes, hours, or days and is + applicable only if `notify_when` is set to + `onThrottleInterval`. NOTE: You cannot specify the + throttle interval at both the rule and action + level. The recommended method is to set it for + each action. If you set it at the rule level then + update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + default: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: A universally unique identifier (UUID) for the action. + type: string + required: + - id + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, `infrastructure`, + `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, + `siem`, `stackAlerts`, or `uptime`. type: string - admin_username: + enabled: + default: true + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + name: + description: >- + The name of the rule. While this name does not have to be + unique, a distinctive name can help you identify a rule. type: string - required: - - admin_username - - admin_password - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_setup_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Initiate agent setup - tags: - - Elastic Agents - /agents/tags: - get: - operationId: get-agent-tags - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_get_agent_tags_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agent tags - tags: - - Elastic Agents - /api/actions: - get: - deprecated: true - operationId: '%2Fapi%2Factions#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - responses: {} - summary: Get all connectors - tags: - - connectors - /api/actions/action: - post: - deprecated: true - operationId: '%2Fapi%2Factions%2Faction#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - actionTypeId: - description: The connector type identifier. + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while the rule + conditions are met; `onThrottleInterval`: Actions run when + the alert becomes active and at the interval specified in + the throttle property while the rule conditions are met. + NOTE: You cannot specify `notify_when` at both the rule and + action level. The recommended method is to set it for each + action. If you set it at the rule level then update the rule + in Kibana, it is automatically changed to use + action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true type: string - config: + params: additionalProperties: {} default: {} + description: The parameters for the rule. type: object - name: - description: The display name for the connector. + rule_type_id: + description: The rule type identifier. type: string - secrets: - additionalProperties: {} - default: {} - type: object - required: - - name - - actionTypeId - responses: - '200': - description: Indicates a successful call. - summary: Create a connector - tags: - - connectors - '/api/actions/action/{id}': - delete: - deprecated: true - description: 'WARNING: When you delete a connector, it cannot be recovered.' - operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - responses: - '204': - description: Indicates a successful call. - summary: Delete a connector - tags: - - connectors - get: - deprecated: true - operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#1' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - responses: - '200': - description: Indicates a successful call. - summary: Get connector information - tags: - - connectors - put: - deprecated: true - operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#2' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - config: - additionalProperties: {} - default: {} + schedule: + additionalProperties: false + description: >- + The check interval, which specifies how frequently the rule + conditions are checked. type: object - name: + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, or + days. + type: string + required: + - interval + tags: + default: [] + description: The tags for the rule. + items: + type: string + type: array + throttle: + description: >- + Use the `throttle` property in the action `frequency` object + instead. The throttle interval, which defines how often an + alert generates repeated actions. NOTE: You cannot specify + the throttle interval at both the rule and action level. If + you set it at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific values. + nullable: true type: string - secrets: - additionalProperties: {} - default: {} - type: object required: - name + - rule_type_id + - consumer + - schedule responses: '200': - description: Indicates a successful call. - summary: Update a connector - tags: - - connectors - '/api/actions/action/{id}/_execute': - post: - deprecated: true - operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D%2F_execute#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - params: - additionalProperties: {} - type: object - required: - - params - responses: - '200': - description: Indicates a successful call. - summary: Run a connector - tags: - - connectors - /api/actions/connector_types: - get: - description: You do not need any Kibana feature privileges to run this API. - operationId: '%2Fapi%2Factions%2Fconnector_types#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: >- - A filter to limit the retrieved connector types to those that - support a specific feature (such as alerting or cases). - in: query - name: feature_id - required: false - schema: - type: string - responses: {} - summary: Get connector types - tags: - - connectors - '/api/actions/connector/{id}': - delete: - description: 'WARNING: When you delete a connector, it cannot be recovered.' - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - responses: - '204': - description: Indicates a successful call. - summary: Delete a connector - tags: - - connectors - get: - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#1' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - responses: - '200': - description: Indicates a successful call. - summary: Get connector information - tags: - - connectors - post: - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%3F%7D#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - in: path - name: id - required: false - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - config: - additionalProperties: {} - default: {} - type: object - connector_type_id: - description: The type of connector. - type: string - name: - description: The display name for the connector. - type: string - secrets: - additionalProperties: {} - default: {} - type: object - required: - - name - - connector_type_id - responses: - '200': - description: Indicates a successful call. - summary: Create a connector - tags: - - connectors - put: - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#2' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - config: - additionalProperties: {} - default: {} - type: object - name: - description: The display name for the connector. - type: string - secrets: - additionalProperties: {} - default: {} - type: object - required: - - name - responses: - '200': - description: Indicates a successful call. - summary: Update a connector - tags: - - connectors - '/api/actions/connector/{id}/_execute': - post: - description: >- - You can use this API to test an action that involves interaction with - Kibana services or integrations with third-party systems. - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D%2F_execute#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - params: - additionalProperties: {} - type: object - required: - - params - responses: - '200': - description: Indicates a successful call. - summary: Run a connector - tags: - - connectors - /api/actions/connectors: - get: - operationId: '%2Fapi%2Factions%2Fconnectors#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - responses: {} - summary: Get all connectors - tags: - - connectors - /api/actions/list_action_types: - get: - deprecated: true - operationId: '%2Fapi%2Factions%2Flist_action_types#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - responses: {} - summary: Get connector types - tags: - - connectors - '/api/alerting/rule/{id}': - delete: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#2' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - responses: - '204': - description: Indicates a successful call. - summary: Delete a rule - tags: - - alerting - get: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - actions: - items: - additionalProperties: false - type: object - properties: - alerts_filter: - additionalProperties: false - description: >- - Defines a period that limits whether the action - runs. - type: object - properties: - query: - additionalProperties: false - type: object - properties: - dsl: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL). - type: string - filters: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL) as defined in - the `kbn-es-query` package. - items: - additionalProperties: false - type: object - properties: - $state: - additionalProperties: false - type: object - properties: - store: - description: >- - A filter can be either specific to an - application context or applied globally. - enum: - - appState - - globalState - type: string - required: - - store - meta: - additionalProperties: {} - type: object - query: - additionalProperties: {} - type: object - required: - - meta - type: array - kql: - description: >- - A filter written in Kibana Query Language - (KQL). - type: string - required: - - kql - - filters - timeframe: - additionalProperties: false - type: object - properties: - days: - description: >- - Defines the days of the week that the action - can run, represented as an array of numbers. - For example, `1` represents Monday. An empty - array is equivalent to specifying all the - days of the week. - items: - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - type: array - hours: - additionalProperties: false - type: object - properties: - end: - description: >- - The end of the time frame in 24-hour - notation (`hh:mm`). - type: string - start: - description: >- - The start of the time frame in 24-hour - notation (`hh:mm`). - type: string - required: - - start - - end - timezone: - description: >- - The ISO time zone for the `hours` values. - Values such as `UTC` and `UTC+1` also work - but lack built-in daylight savings time - support and are not recommended. - type: string - required: - - days - - hours - - timezone - connector_type_id: - description: >- - The type of connector. This property appears in - responses but cannot be set in requests. - type: string - frequency: - additionalProperties: false - type: object - properties: - notify_when: - description: >- - Indicates how often alerts generate actions. - Valid values include: `onActionGroupChange`: - Actions run when the alert status changes; - `onActiveAlert`: Actions run when the alert - becomes active and at each check interval while - the rule conditions are met; - `onThrottleInterval`: Actions run when the alert - becomes active and at the interval specified in - the throttle property while the rule conditions - are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The - recommended method is to set it for each action. - If you set it at the rule level then update the - rule in Kibana, it is automatically changed to - use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - type: string - summary: - description: Indicates whether the action is a summary. - type: boolean - throttle: - description: >- - The throttle interval, which defines how often - an alert generates repeated actions. It is - specified in seconds, minutes, hours, or days - and is applicable only if 'notify_when' is set - to 'onThrottleInterval'. NOTE: You cannot - specify the throttle interval at both the rule - and action level. The recommended method is to - set it for each action. If you set it at the - rule level then update the rule in Kibana, it is - automatically changed to use action-specific - values. - nullable: true - type: string - required: - - summary - - notify_when - - throttle - group: - description: >- - The group name, which affects when the action runs - (for example, when the threshold is met or when the - alert is recovered). Each rule type has a list of - valid action group names. If you don't need to group - actions, set to `default`. - type: string - id: - description: The identifier for the connector saved object. - type: string - params: - additionalProperties: {} - description: >- - The parameters for the action, which are sent to the - connector. The `params` are handled as Mustache - templates and passed a default set of context. - type: object - use_alert_data_for_template: - description: Indicates whether to use alert data as a template. - type: boolean - uuid: - description: >- - A universally unique identifier (UUID) for the - action. - type: string - required: - - id - - connector_type_id - - params - type: array - active_snoozes: - items: - description: List of active snoozes for the rule. - type: string - type: array - alert_delay: - additionalProperties: false - description: >- - Indicates that an alert occurs only when the specified - number of consecutive runs met the rule conditions. - type: object - properties: - active: - description: >- - The number of consecutive runs that must meet the rule - conditions. - type: number - required: - - active - api_key_created_by_user: - description: >- - Indicates whether the API key that is associated with the - rule was created by the user. - nullable: true - type: boolean - api_key_owner: - description: >- - The owner of the API key that is associated with the rule - and used to run background tasks. - nullable: true - type: string - consumer: - description: >- - The name of the application or feature that owns the rule. - For example: `alerts`, `apm`, `discover`, - `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, - `securitySolution`, `siem`, `stackAlerts`, or `uptime`. - type: string - created_at: - description: The date and time that the rule was created. - type: string - created_by: - description: The identifier for the user that created the rule. - nullable: true - type: string - enabled: - description: >- - Indicates whether you want to run the rule on an interval - basis after it is created. - type: boolean - execution_status: - additionalProperties: false - type: object - properties: - error: - additionalProperties: false - type: object - properties: - message: - description: Error message. - type: string - reason: - description: Reason for error. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - type: string - required: - - reason - - message - last_duration: - description: Duration of last execution of the rule. - type: number - last_execution_date: - description: The date and time when rule was executed last. - type: string - status: - description: Status of rule execution. - enum: - - ok - - active - - error - - warning - - pending - - unknown - type: string - warning: - additionalProperties: false - type: object - properties: - message: - description: Warning message. - type: string - reason: - description: Reason for warning. - enum: - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - type: string - required: - - reason - - message - required: - - status - - last_execution_date - id: - description: The identifier for the rule. - type: string - is_snoozed_until: - description: The date when the rule will no longer be snoozed. - nullable: true - type: string - last_run: - additionalProperties: false - nullable: true - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: Number of ignored alerts during last run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: Number of recovered alerts during last run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value could be - succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: Outcome message generated during last rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - mapped_params: - additionalProperties: {} - type: object - monitoring: - additionalProperties: false - description: Monitoring details of the rule. - type: object - properties: - run: - additionalProperties: false - description: Rule run details. - type: object - properties: - calculated_metrics: - additionalProperties: false - description: >- - Calculation of different percentiles and success - ratio. - type: object - properties: - p50: - type: number - p95: - type: number - p99: - type: number - success_ratio: - type: number - required: - - success_ratio - history: - description: History of the rule run. - items: - additionalProperties: false - type: object - properties: - duration: - description: Duration of the rule run. - type: number - outcome: - additionalProperties: false - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: >- - Number of ignored alerts during last - run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: >- - Number of recovered alerts during last - run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value - could be succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: >- - Outcome message generated during last - rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - success: - description: >- - Indicates whether the rule run was - successful. - type: boolean - timestamp: - description: Time of rule run. - type: number - required: - - success - - timestamp - type: array - last_run: - additionalProperties: false - type: object - properties: - metrics: - additionalProperties: false - type: object - properties: - duration: - description: Duration of most recent rule run. - type: number - gap_duration_s: - description: Duration in seconds of rule run gap. - nullable: true - type: number - total_alerts_created: - description: >- - Total number of alerts created during last - rule run. - nullable: true - type: number - total_alerts_detected: - description: >- - Total number of alerts detected during - last rule run. - nullable: true - type: number - total_indexing_duration_ms: - description: >- - Total time spent indexing documents during - last rule run in milliseconds. - nullable: true - type: number - total_search_duration_ms: - description: >- - Total time spent performing Elasticsearch - searches as measured by Kibana; includes - network latency and time spent serializing - or deserializing the request and response. - nullable: true - type: number - timestamp: - description: Time of the most recent rule run. - type: string - required: - - timestamp - - metrics - required: - - history - - calculated_metrics - - last_run - required: - - run - mute_all: - description: Indicates whether all alerts are muted. - type: boolean - muted_alert_ids: - items: - description: 'List of identifiers of muted alerts. ' - type: string - type: array - name: - description: ' The name of the rule.' - type: string - next_run: - description: Date and time of the next run of the rule. - nullable: true - type: string - notify_when: - description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the - alert becomes active and at each check interval while the - rule conditions are met; `onThrottleInterval`: Actions run - when the alert becomes active and at the interval - specified in the throttle property while the rule - conditions are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The recommended method - is to set it for each action. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - nullable: true - type: string - params: - additionalProperties: {} - description: The parameters for the rule. - type: object - revision: - description: The rule revision number. - type: number - rule_type_id: - description: The rule type identifier. - type: string - running: - description: Indicates whether the rule is running. - nullable: true - type: boolean - schedule: - additionalProperties: false - type: object - properties: - interval: - description: >- - The interval is specified in seconds, minutes, hours, - or days. - type: string - required: - - interval - scheduled_task_id: - description: Identifier of the scheduled task. - type: string - snooze_schedule: - items: - additionalProperties: false - type: object - properties: - duration: - description: Duration of the rule snooze schedule. - type: number - id: - description: Identifier of the rule snooze schedule. - type: string - rRule: - additionalProperties: false - type: object - properties: - byhour: - items: - description: Indicates hours of the day to recur. - type: number - type: array - byminute: - items: - description: Indicates minutes of the hour to recur. - type: number - type: array - bymonth: - items: - description: >- - Indicates months of the year that this rule - should recur. - type: number - type: array - bymonthday: - items: - description: Indicates the days of the month to recur. - type: number - type: array - bysecond: - items: - description: Indicates seconds of the day to recur. - type: number - type: array - bysetpos: - items: - description: >- - A positive or negative integer affecting the - nth day of the month. For example, -2 combined - with `byweekday` of FR is 2nd to last Friday - of the month. It is recommended to not set - this manually and just use `byweekday`. - type: number - type: array - byweekday: - items: - anyOf: - - type: string - - type: number - description: >- - Indicates the days of the week to recur or - else nth-day-of-month strings. For example, - "+2TU" second Tuesday of month, "-1FR" last - Friday of the month, which are internally - converted to a `byweekday/bysetpos` - combination. - type: array - byweekno: - items: - description: Indicates number of the week hours to recur. - type: number - type: array - byyearday: - items: - description: >- - Indicates the days of the year that this rule - should recur. - type: number - type: array - count: - description: >- - Number of times the rule should recur until it - stops. - type: number - dtstart: - description: >- - Rule start date in Coordinated Universal Time - (UTC). - type: string - freq: - description: >- - Indicates frequency of the rule. Options are - YEARLY, MONTHLY, WEEKLY, DAILY. - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - type: integer - interval: - description: >- - Indicates the interval of frequency. For - example, 1 and YEARLY is every 1 year, 2 and - WEEKLY is every 2 weeks. - type: number - tzid: - description: Indicates timezone abbreviation. - type: string - until: - description: Recur the rule until this date. - type: string - wkst: - description: 'Indicates the start of week, defaults to Monday.' - enum: - - MO - - TU - - WE - - TH - - FR - - SA - - SU - type: string - required: - - dtstart - - tzid - skipRecurrences: - items: - description: Skips recurrence of rule on this date. - type: string - type: array - required: - - duration - - rRule - type: array - tags: - items: - description: The tags for the rule. - type: string - type: array - throttle: - deprecated: true - description: >- - Deprecated in 8.13.0. Use the `throttle` property in the - action `frequency` object instead. The throttle interval, - which defines how often an alert generates repeated - actions. NOTE: You cannot specify the throttle interval at - both the rule and action level. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. - nullable: true - type: string - updated_at: - description: The date and time that the rule was updated most recently. - type: string - updated_by: - description: >- - The identifier for the user that updated this rule most - recently. - nullable: true - type: string - view_in_app_relative_url: - description: Relative URL to view rule in the app. - nullable: true - type: string - required: - - id - - enabled - - name - - tags - - rule_type_id - - consumer - - schedule - - actions - - params - - created_by - - updated_by - - created_at - - updated_at - - api_key_owner - - mute_all - - muted_alert_ids - - execution_status - - revision - description: Indicates a successful call. - summary: Get rule details - tags: - - alerting - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%3F%7D#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: >- - The identifier for the rule. If it is omitted, an ID is randomly - generated. - in: path - name: id - required: false - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - actions: - default: [] - items: - additionalProperties: false - description: An action that runs under defined conditions. - type: object - properties: - alerts_filter: - additionalProperties: false - description: >- - Conditions that affect whether the action runs. If you - specify multiple conditions, all conditions must be - met for the action to run. For example, if an alert - occurs within the specified time frame and matches the - query, the action runs. - type: object - properties: - query: - additionalProperties: false - type: object - properties: - dsl: - description: >- - A filter written in Elasticsearch Query Domain - Specific Language (DSL). - type: string - filters: - description: >- - A filter written in Elasticsearch Query Domain - Specific Language (DSL) as defined in the - `kbn-es-query` package. - items: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: additionalProperties: false type: object properties: - $state: - additionalProperties: false - type: object - properties: - store: - description: >- - A filter can be either specific to an - application context or applied globally. - enum: - - appState - - globalState - type: string - required: - - store - meta: - additionalProperties: {} - type: object - query: - additionalProperties: {} - type: object + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string required: - - meta - type: array - kql: - description: >- - A filter written in Kibana Query Language - (KQL). - type: string - required: - - kql - - filters - timeframe: - additionalProperties: false - description: >- - Defines a period that limits whether the action - runs. - type: object - properties: - days: - description: >- - Defines the days of the week that the action - can run, represented as an array of numbers. - For example, `1` represents Monday. An empty - array is equivalent to specifying all the days - of the week. - items: - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - type: array - hours: - additionalProperties: false - description: >- - Defines the range of time in a day that the - action can run. If the `start` value is - `00:00` and the `end` value is `24:00`, - actions be generated all day. - type: object - properties: - end: - description: >- - The end of the time frame in 24-hour - notation (`hh:mm`). - type: string - start: - description: >- - The start of the time frame in 24-hour - notation (`hh:mm`). - type: string - required: - - start - - end - timezone: - description: >- - The ISO time zone for the `hours` values. - Values such as `UTC` and `UTC+1` also work but - lack built-in daylight savings time support - and are not recommended. - type: string - required: - - days - - hours - - timezone - frequency: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: additionalProperties: false type: object properties: - notify_when: - description: >- - Indicates how often alerts generate actions. Valid - values include: `onActionGroupChange`: Actions run - when the alert status changes; `onActiveAlert`: - Actions run when the alert becomes active and at - each check interval while the rule conditions are - met; `onThrottleInterval`: Actions run when the - alert becomes active and at the interval specified - in the throttle property while the rule conditions - are met. NOTE: You cannot specify `notify_when` at - both the rule and action level. The recommended - method is to set it for each action. If you set it - at the rule level then update the rule in Kibana, - it is automatically changed to use action-specific - values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval + message: + description: Error message. type: string - summary: - description: Indicates whether the action is a summary. - type: boolean - throttle: - description: >- - The throttle interval, which defines how often an - alert generates repeated actions. It is specified - in seconds, minutes, hours, or days and is - applicable only if `notify_when` is set to - `onThrottleInterval`. NOTE: You cannot specify the - throttle interval at both the rule and action - level. The recommended method is to set it for - each action. If you set it at the rule level then - update the rule in Kibana, it is automatically - changed to use action-specific values. - nullable: true + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate type: string required: - - summary - - notify_when - - throttle - group: - description: >- - The group name, which affects when the action runs - (for example, when the threshold is met or when the - alert is recovered). Each rule type has a list of - valid action group names. If you don't need to group - actions, set to `default`. + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. type: string - id: - description: The identifier for the connector saved object. + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown type: string - params: - additionalProperties: {} - default: {} - description: >- - The parameters for the action, which are sent to the - connector. The `params` are handled as Mustache - templates and passed a default set of context. + warning: + additionalProperties: false type: object - use_alert_data_for_template: - description: Indicates whether to use alert data as a template. - type: boolean - uuid: - description: A universally unique identifier (UUID) for the action. + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true type: string required: - - id - type: array - alert_delay: - additionalProperties: false - description: >- - Indicates that an alert occurs only when the specified - number of consecutive runs met the rule conditions. - type: object - properties: - active: - description: >- - The number of consecutive runs that must meet the rule - conditions. - type: number - required: - - active - consumer: - description: >- - The name of the application or feature that owns the rule. - For example: `alerts`, `apm`, `discover`, `infrastructure`, - `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, - `siem`, `stackAlerts`, or `uptime`. - type: string - enabled: - default: true - description: >- - Indicates whether you want to run the rule on an interval - basis after it is created. - type: boolean - name: - description: >- - The name of the rule. While this name does not have to be - unique, a distinctive name can help you identify a rule. - type: string - notify_when: - description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the alert - becomes active and at each check interval while the rule - conditions are met; `onThrottleInterval`: Actions run when - the alert becomes active and at the interval specified in - the throttle property while the rule conditions are met. - NOTE: You cannot specify `notify_when` at both the rule and - action level. The recommended method is to set it for each - action. If you set it at the rule level then update the rule - in Kibana, it is automatically changed to use - action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - nullable: true - type: string - params: - additionalProperties: {} - default: {} - description: The parameters for the rule. - type: object - rule_type_id: - description: The rule type identifier. - type: string - schedule: - additionalProperties: false - description: >- - The check interval, which specifies how frequently the rule - conditions are checked. - type: object - properties: - interval: - description: >- - The interval is specified in seconds, minutes, hours, or - days. - type: string - required: - - interval - tags: - default: [] - description: The tags for the rule. - items: - type: string - type: array - throttle: - description: >- - Use the `throttle` property in the action `frequency` object - instead. The throttle interval, which defines how often an - alert generates repeated actions. NOTE: You cannot specify - the throttle interval at both the rule and action level. If - you set it at the rule level then update the rule in Kibana, - it is automatically changed to use action-specific values. - nullable: true - type: string - required: - - name - - rule_type_id - - consumer - - schedule - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - actions: - items: - additionalProperties: false - type: object - properties: - alerts_filter: - additionalProperties: false - description: >- - Defines a period that limits whether the action - runs. - type: object - properties: - query: - additionalProperties: false - type: object - properties: - dsl: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL). - type: string - filters: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL) as defined in - the `kbn-es-query` package. - items: - additionalProperties: false - type: object - properties: - $state: - additionalProperties: false - type: object - properties: - store: - description: >- - A filter can be either specific to an - application context or applied globally. - enum: - - appState - - globalState - type: string - required: - - store - meta: - additionalProperties: {} - type: object - query: - additionalProperties: {} - type: object - required: - - meta - type: array - kql: - description: >- - A filter written in Kibana Query Language - (KQL). - type: string - required: - - kql - - filters - timeframe: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: additionalProperties: false type: object properties: - days: - description: >- - Defines the days of the week that the action - can run, represented as an array of numbers. - For example, `1` represents Monday. An empty - array is equivalent to specifying all the - days of the week. - items: - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - type: array - hours: + duration: + description: Duration of the rule run. + type: number + outcome: additionalProperties: false type: object properties: - end: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: description: >- - The end of the time frame in 24-hour - notation (`hh:mm`). + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed type: string - start: - description: >- - The start of the time frame in 24-hour - notation (`hh:mm`). + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true type: string required: - - start - - end - timezone: + - outcome + - alerts_count + success: description: >- - The ISO time zone for the `hours` values. - Values such as `UTC` and `UTC+1` also work - but lack built-in daylight savings time - support and are not recommended. - type: string + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number required: - - days - - hours - - timezone - connector_type_id: - description: >- - The type of connector. This property appears in - responses but cannot be set in requests. + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. type: string - frequency: + rRule: additionalProperties: false type: object properties: - notify_when: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: description: >- - Indicates how often alerts generate actions. - Valid values include: `onActionGroupChange`: - Actions run when the alert status changes; - `onActiveAlert`: Actions run when the alert - becomes active and at each check interval while - the rule conditions are met; - `onThrottleInterval`: Actions run when the alert - becomes active and at the interval specified in - the throttle property while the rule conditions - are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The - recommended method is to set it for each action. - If you set it at the rule level then update the - rule in Kibana, it is automatically changed to - use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). type: string - summary: - description: Indicates whether the action is a summary. - type: boolean - throttle: + freq: description: >- - The throttle interval, which defines how often - an alert generates repeated actions. It is - specified in seconds, minutes, hours, or days - and is applicable only if 'notify_when' is set - to 'onThrottleInterval'. NOTE: You cannot - specify the throttle interval at both the rule - and action level. The recommended method is to - set it for each action. If you set it at the - rule level then update the rule in Kibana, it is - automatically changed to use action-specific - values. - nullable: true + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU type: string required: - - summary - - notify_when - - throttle - group: - description: >- - The group name, which affects when the action runs - (for example, when the threshold is met or when the - alert is recovered). Each rule type has a list of - valid action group names. If you don't need to group - actions, set to `default`. - type: string - id: - description: The identifier for the connector saved object. - type: string - params: - additionalProperties: {} - description: >- - The parameters for the action, which are sent to the - connector. The `params` are handled as Mustache - templates and passed a default set of context. - type: object - use_alert_data_for_template: - description: Indicates whether to use alert data as a template. - type: boolean - uuid: - description: >- - A universally unique identifier (UUID) for the - action. - type: string + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array required: - - id - - connector_type_id - - params + - duration + - rRule type: array - active_snoozes: + tags: items: - description: List of active snoozes for the rule. + description: The tags for the rule. type: string type: array - alert_delay: - additionalProperties: false - description: >- - Indicates that an alert occurs only when the specified - number of consecutive runs met the rule conditions. - type: object - properties: - active: - description: >- - The number of consecutive runs that must meet the rule - conditions. - type: number - required: - - active - api_key_created_by_user: - description: >- - Indicates whether the API key that is associated with the - rule was created by the user. - nullable: true - type: boolean - api_key_owner: - description: >- - The owner of the API key that is associated with the rule - and used to run background tasks. - nullable: true - type: string - consumer: + throttle: + deprecated: true description: >- - The name of the application or feature that owns the rule. - For example: `alerts`, `apm`, `discover`, - `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, - `securitySolution`, `siem`, `stackAlerts`, or `uptime`. - type: string - created_at: - description: The date and time that the rule was created. - type: string - created_by: - description: The identifier for the user that created the rule. + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. nullable: true type: string - enabled: - description: >- - Indicates whether you want to run the rule on an interval - basis after it is created. - type: boolean - execution_status: - additionalProperties: false - type: object - properties: - error: - additionalProperties: false - type: object - properties: - message: - description: Error message. - type: string - reason: - description: Reason for error. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - type: string - required: - - reason - - message - last_duration: - description: Duration of last execution of the rule. - type: number - last_execution_date: - description: The date and time when rule was executed last. - type: string - status: - description: Status of rule execution. - enum: - - ok - - active - - error - - warning - - pending - - unknown - type: string - warning: - additionalProperties: false - type: object - properties: - message: - description: Warning message. - type: string - reason: - description: Reason for warning. - enum: - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - type: string - required: - - reason - - message - required: - - status - - last_execution_date - id: - description: The identifier for the rule. - type: string - is_snoozed_until: - description: The date when the rule will no longer be snoozed. + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. nullable: true type: string - last_run: - additionalProperties: false + view_in_app_relative_url: + description: Relative URL to view rule in the app. nullable: true - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: Number of ignored alerts during last run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: Number of recovered alerts during last run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value could be - succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: Outcome message generated during last rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - mapped_params: - additionalProperties: {} - type: object - monitoring: + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Create a rule + tags: + - alerting + put: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#1' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + default: [] + items: additionalProperties: false - description: Monitoring details of the rule. + description: An action that runs under defined conditions. type: object properties: - run: + alerts_filter: additionalProperties: false - description: Rule run details. type: object properties: - calculated_metrics: + query: additionalProperties: false - description: >- - Calculation of different percentiles and success - ratio. type: object properties: - p50: - type: number - p95: - type: number - p99: - type: number - success_ratio: - type: number - required: - - success_ratio - history: - description: History of the rule run. - items: - additionalProperties: false - type: object - properties: - duration: - description: Duration of the rule run. - type: number - outcome: + dsl: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL) as defined in the + `kbn-es-query` package. + items: additionalProperties: false type: object properties: - alerts_count: + $state: additionalProperties: false type: object properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: >- - Number of ignored alerts during last - run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: + store: description: >- - Number of recovered alerts during last - run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value - could be succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: >- - Outcome message generated during last - rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - success: - description: >- - Indicates whether the rule run was - successful. - type: boolean - timestamp: - description: Time of rule run. - type: number - required: - - success - - timestamp - type: array - last_run: + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. type: object properties: - metrics: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the days + of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: additionalProperties: false + description: >- + Defines the range of time in a day that the + action can run. If the `start` value is + `00:00` and the `end` value is `24:00`, + actions be generated all day. type: object properties: - duration: - description: Duration of most recent rule run. - type: number - gap_duration_s: - description: Duration in seconds of rule run gap. - nullable: true - type: number - total_alerts_created: - description: >- - Total number of alerts created during last - rule run. - nullable: true - type: number - total_alerts_detected: - description: >- - Total number of alerts detected during - last rule run. - nullable: true - type: number - total_indexing_duration_ms: + end: description: >- - Total time spent indexing documents during - last rule run in milliseconds. - nullable: true - type: number - total_search_duration_ms: + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: description: >- - Total time spent performing Elasticsearch - searches as measured by Kibana; includes - network latency and time spent serializing - or deserializing the request and response. - nullable: true - type: number - timestamp: - description: Time of the most recent rule run. + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work but + lack built-in daylight savings time support + and are not recommended. type: string required: - - timestamp - - metrics + - days + - hours + - timezone + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. Valid + values include: `onActionGroupChange`: Actions run + when the alert status changes; `onActiveAlert`: + Actions run when the alert becomes active and at + each check interval while the rule conditions are + met; `onThrottleInterval`: Actions run when the + alert becomes active and at the interval specified + in the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` at + both the rule and action level. The recommended + method is to set it for each action. If you set it + at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific + values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often an + alert generates repeated actions. It is specified + in seconds, minutes, hours, or days and is + applicable only if `notify_when` is set to + `onThrottleInterval`. NOTE: You cannot specify the + throttle interval at both the rule and action + level. The recommended method is to set it for + each action. If you set it at the rule level then + update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string required: - - history - - calculated_metrics - - last_run - required: - - run - mute_all: - description: Indicates whether all alerts are muted. - type: boolean - muted_alert_ids: - items: - description: 'List of identifiers of muted alerts. ' - type: string - type: array - name: - description: ' The name of the rule.' - type: string - next_run: - description: Date and time of the next run of the rule. - nullable: true - type: string - notify_when: - description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the - alert becomes active and at each check interval while the - rule conditions are met; `onThrottleInterval`: Actions run - when the alert becomes active and at the interval - specified in the throttle property while the rule - conditions are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The recommended method - is to set it for each action. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - nullable: true - type: string - params: - additionalProperties: {} - description: The parameters for the rule. - type: object - revision: - description: The rule revision number. - type: number - rule_type_id: - description: The rule type identifier. - type: string - running: - description: Indicates whether the rule is running. - nullable: true - type: boolean - schedule: - additionalProperties: false - type: object - properties: - interval: + - summary + - notify_when + - throttle + group: description: >- - The interval is specified in seconds, minutes, hours, - or days. + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + default: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: A universally unique identifier (UUID) for the action. type: string required: - - interval - scheduled_task_id: - description: Identifier of the scheduled task. + - id + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + name: + description: >- + The name of the rule. While this name does not have to be + unique, a distinctive name can help you identify a rule. + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while the rule + conditions are met; `onThrottleInterval`: Actions run when + the alert becomes active and at the interval specified in + the throttle property while the rule conditions are met. + NOTE: You cannot specify `notify_when` at both the rule and + action level. The recommended method is to set it for each + action. If you set it at the rule level then update the rule + in Kibana, it is automatically changed to use + action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + default: {} + description: The parameters for the rule. + type: object + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, or + days. + type: string + required: + - interval + tags: + default: [] + items: + description: The tags for the rule. type: string - snooze_schedule: + type: array + throttle: + description: >- + Use the `throttle` property in the action `frequency` object + instead. The throttle interval, which defines how often an + alert generates repeated actions. NOTE: You cannot specify + the throttle interval at both the rule and action level. If + you set it at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific values. + nullable: true + type: string + required: + - name + - schedule + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: items: additionalProperties: false type: object properties: - duration: - description: Duration of the rule snooze schedule. - type: number - id: - description: Identifier of the rule snooze schedule. + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. type: string - rRule: + frequency: additionalProperties: false type: object properties: - byhour: - items: - description: Indicates hours of the day to recur. - type: number - type: array - byminute: - items: - description: Indicates minutes of the hour to recur. - type: number - type: array - bymonth: - items: - description: >- - Indicates months of the year that this rule - should recur. - type: number - type: array - bymonthday: - items: - description: Indicates the days of the month to recur. - type: number - type: array - bysecond: - items: - description: Indicates seconds of the day to recur. - type: number - type: array - bysetpos: - items: - description: >- - A positive or negative integer affecting the - nth day of the month. For example, -2 combined - with `byweekday` of FR is 2nd to last Friday - of the month. It is recommended to not set - this manually and just use `byweekday`. - type: number - type: array - byweekday: - items: - anyOf: - - type: string - - type: number - description: >- - Indicates the days of the week to recur or - else nth-day-of-month strings. For example, - "+2TU" second Tuesday of month, "-1FR" last - Friday of the month, which are internally - converted to a `byweekday/bysetpos` - combination. - type: array - byweekno: - items: - description: Indicates number of the week hours to recur. - type: number - type: array - byyearday: - items: - description: >- - Indicates the days of the year that this rule - should recur. - type: number - type: array - count: - description: >- - Number of times the rule should recur until it - stops. - type: number - dtstart: - description: >- - Rule start date in Coordinated Universal Time - (UTC). - type: string - freq: + notify_when: description: >- - Indicates frequency of the rule. Options are - YEARLY, MONTHLY, WEEKLY, DAILY. + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - type: integer - interval: - description: >- - Indicates the interval of frequency. For - example, 1 and YEARLY is every 1 year, 2 and - WEEKLY is every 2 weeks. - type: number - tzid: - description: Indicates timezone abbreviation. - type: string - until: - description: Recur the rule until this date. + - onActionGroupChange + - onActiveAlert + - onThrottleInterval type: string - wkst: - description: 'Indicates the start of week, defaults to Monday.' - enum: - - MO - - TU - - WE - - TH - - FR - - SA - - SU + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true type: string required: - - dtstart - - tzid - skipRecurrences: - items: - description: Skips recurrence of rule on this date. - type: string - type: array + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string required: - - duration - - rRule + - id + - connector_type_id + - params type: array - tags: + active_snoozes: items: - description: The tags for the rule. + description: List of active snoozes for the rule. type: string type: array - throttle: - deprecated: true + alert_delay: + additionalProperties: false description: >- - Deprecated in 8.13.0. Use the `throttle` property in the - action `frequency` object instead. The throttle interval, - which defines how often an alert generates repeated - actions. NOTE: You cannot specify the throttle interval at - both the rule and action level. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. nullable: true - type: string - updated_at: - description: The date and time that the rule was updated most recently. - type: string - updated_by: + type: boolean + api_key_owner: description: >- - The identifier for the user that updated this rule most - recently. + The owner of the API key that is associated with the rule + and used to run background tasks. nullable: true type: string - view_in_app_relative_url: - description: Relative URL to view rule in the app. + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. nullable: true type: string - required: - - id - - enabled - - name - - tags - - rule_type_id - - consumer - - schedule - - actions - - params - - created_by - - updated_by - - created_at - - updated_at - - api_key_owner - - mute_all - - muted_alert_ids - - execution_status - - revision - description: Indicates a successful call. - summary: Create a rule - tags: - - alerting - put: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#1' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - actions: - default: [] - items: + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: additionalProperties: false - description: An action that runs under defined conditions. + nullable: true type: object properties: - alerts_filter: + alerts_count: additionalProperties: false type: object properties: - query: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. type: object properties: - dsl: - description: >- - A filter written in Elasticsearch Query Domain - Specific Language (DSL). - type: string - filters: - description: >- - A filter written in Elasticsearch Query Domain - Specific Language (DSL) as defined in the - `kbn-es-query` package. - items: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: additionalProperties: false type: object properties: - $state: + alerts_count: additionalProperties: false type: object properties: - store: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: description: >- - A filter can be either specific to an - application context or applied globally. - enum: - - appState - - globalState - type: string - required: - - store - meta: - additionalProperties: {} - type: object - query: - additionalProperties: {} - type: object + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string required: - - meta - type: array - kql: - description: >- - A filter written in Kibana Query Language - (KQL). - type: string - required: - - kql - - filters - timeframe: - additionalProperties: false - description: >- - Defines a period that limits whether the action - runs. - type: object - properties: - days: - description: >- - Defines the days of the week that the action - can run, represented as an array of numbers. - For example, `1` represents Monday. An empty - array is equivalent to specifying all the days - of the week. - items: - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - type: array - hours: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: additionalProperties: false - description: >- - Defines the range of time in a day that the - action can run. If the `start` value is - `00:00` and the `end` value is `24:00`, - actions be generated all day. type: object properties: - end: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: description: >- - The end of the time frame in 24-hour - notation (`hh:mm`). - type: string - start: + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: description: >- - The start of the time frame in 24-hour - notation (`hh:mm`). - type: string - required: - - start - - end - timezone: - description: >- - The ISO time zone for the `hours` values. - Values such as `UTC` and `UTC+1` also work but - lack built-in daylight savings time support - and are not recommended. + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. type: string required: - - days - - hours - - timezone - frequency: - additionalProperties: false - type: object - properties: - notify_when: - description: >- - Indicates how often alerts generate actions. Valid - values include: `onActionGroupChange`: Actions run - when the alert status changes; `onActiveAlert`: - Actions run when the alert becomes active and at - each check interval while the rule conditions are - met; `onThrottleInterval`: Actions run when the - alert becomes active and at the interval specified - in the throttle property while the rule conditions - are met. NOTE: You cannot specify `notify_when` at - both the rule and action level. The recommended - method is to set it for each action. If you set it - at the rule level then update the rule in Kibana, - it is automatically changed to use action-specific - values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - type: string - summary: - description: Indicates whether the action is a summary. - type: boolean - throttle: - description: >- - The throttle interval, which defines how often an - alert generates repeated actions. It is specified - in seconds, minutes, hours, or days and is - applicable only if `notify_when` is set to - `onThrottleInterval`. NOTE: You cannot specify the - throttle interval at both the rule and action - level. The recommended method is to set it for - each action. If you set it at the rule level then - update the rule in Kibana, it is automatically - changed to use action-specific values. - nullable: true + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. type: string - required: - - summary - - notify_when - - throttle - group: - description: >- - The group name, which affects when the action runs - (for example, when the threshold is met or when the - alert is recovered). Each rule type has a list of - valid action group names. If you don't need to group - actions, set to `default`. - type: string - id: - description: The identifier for the connector saved object. - type: string - params: - additionalProperties: {} - default: {} - description: >- - The parameters for the action, which are sent to the - connector. The `params` are handled as Mustache - templates and passed a default set of context. - type: object - use_alert_data_for_template: - description: Indicates whether to use alert data as a template. - type: boolean - uuid: - description: A universally unique identifier (UUID) for the action. - type: string - required: - - id - type: array - alert_delay: - additionalProperties: false - description: >- - Indicates that an alert occurs only when the specified - number of consecutive runs met the rule conditions. - type: object - properties: - active: - description: >- - The number of consecutive runs that must meet the rule - conditions. - type: number - required: - - active - name: - description: >- - The name of the rule. While this name does not have to be - unique, a distinctive name can help you identify a rule. - type: string - notify_when: - description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the alert - becomes active and at each check interval while the rule - conditions are met; `onThrottleInterval`: Actions run when - the alert becomes active and at the interval specified in - the throttle property while the rule conditions are met. - NOTE: You cannot specify `notify_when` at both the rule and - action level. The recommended method is to set it for each - action. If you set it at the rule level then update the rule - in Kibana, it is automatically changed to use - action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - nullable: true - type: string - params: - additionalProperties: {} - default: {} - description: The parameters for the rule. - type: object - schedule: - additionalProperties: false - type: object - properties: - interval: - description: >- - The interval is specified in seconds, minutes, hours, or - days. + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. type: string - required: - - interval - tags: - default: [] - items: - description: The tags for the rule. + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true type: string - type: array - throttle: - description: >- - Use the `throttle` property in the action `frequency` object - instead. The throttle interval, which defines how often an - alert generates repeated actions. NOTE: You cannot specify - the throttle interval at both the rule and action level. If - you set it at the rule level then update the rule in Kibana, - it is automatically changed to use action-specific values. - nullable: true + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Update a rule + tags: + - alerting + '/api/alerting/rule/{id}/_disable': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_disable#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + nullable: true + type: object + properties: + untrack: + description: Defines whether this rule's alerts should be untracked. + type: boolean + x-oas-optional: true + responses: + '204': + description: Indicates a successful call. + summary: Disable a rule + tags: + - alerting + '/api/alerting/rule/{id}/_enable': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_enable#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Enable a rule + tags: + - alerting + '/api/alerting/rule/{id}/_mute_all': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_mute_all#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Mute all alerts + tags: + - alerting + '/api/alerting/rule/{id}/_unmute_all': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_unmute_all#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Unmute all alerts + tags: + - alerting + '/api/alerting/rule/{id}/_update_api_key': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_update_api_key#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Update the API key for a rule + tags: + - alerting + '/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute': + post: + operationId: >- + %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_mute#0 + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: rule_id + required: true + schema: + type: string + - description: The identifier for the alert. + in: path + name: alert_id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Mute an alert + tags: + - alerting + '/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute': + post: + operationId: >- + %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_unmute#0 + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: rule_id + required: true + schema: + type: string + - description: The identifier for the alert. + in: path + name: alert_id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Unmute an alert + tags: + - alerting + /api/alerting/rules/_find: + get: + operationId: '%2Fapi%2Falerting%2Frules%2F_find#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: The number of rules to return per page. + in: query + name: per_page + required: false + schema: + default: 10 + minimum: 0 + type: number + - description: The page number to return. + in: query + name: page + required: false + schema: + default: 1 + minimum: 1 + type: number + - description: >- + An Elasticsearch simple_query_string query that filters the objects + in the response. + in: query + name: search + required: false + schema: + type: string + - description: The default operator to use for the simple_query_string. + in: query + name: default_search_operator + required: false + schema: + default: OR + enum: + - OR + - AND + type: string + - description: The fields to perform the simple_query_string parsed query against. + in: query + name: search_fields + required: false + schema: + anyOf: + - items: type: string - required: - - name - - schedule + type: array + - type: string + - description: >- + Determines which field is used to sort the results. The field must + exist in the `attributes` key of the response. + in: query + name: sort_field + required: false + schema: + type: string + - description: Determines the sort order. + in: query + name: sort_order + required: false + schema: + enum: + - asc + - desc + type: string + - description: >- + Filters the rules that have a relation with the reference objects + with a specific type and identifier. + in: query + name: has_reference + required: false + schema: + additionalProperties: false + nullable: true + type: object + properties: + id: + type: string + type: + type: string + required: + - type + - id + - in: query + name: fields + required: false + schema: + items: + description: The fields to return in the `attributes` key of the response. + type: string + type: array + - description: >- + A KQL string that you filter with an attribute from your saved + object. It should look like `savedObjectType.attributes.title: + "myTitle"`. However, if you used a direct attribute of a saved + object, such as `updatedAt`, you must define your filter, for + example, `savedObjectType.updatedAt > 2018-12-22`. + in: query + name: filter + required: false + schema: + type: string + - in: query + name: filter_consumers + required: false + schema: + items: + description: List of consumers to filter. + type: string + type: array responses: '200': content: @@ -5146,1221 +4806,1622 @@ paths: type: string view_in_app_relative_url: description: Relative URL to view rule in the app. - nullable: true - type: string - required: - - id - - enabled - - name - - tags - - rule_type_id - - consumer - - schedule - - actions - - params - - created_by - - updated_by - - created_at - - updated_at - - api_key_owner - - mute_all - - muted_alert_ids - - execution_status - - revision - description: Indicates a successful call. - summary: Update a rule - tags: - - alerting - '/api/alerting/rule/{id}/_disable': - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_disable#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - nullable: true - type: object - properties: - untrack: - description: Defines whether this rule's alerts should be untracked. - type: boolean - x-oas-optional: true - responses: - '204': - description: Indicates a successful call. - summary: Disable a rule - tags: - - alerting - '/api/alerting/rule/{id}/_enable': - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_enable#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - responses: - '204': - description: Indicates a successful call. - summary: Enable a rule - tags: - - alerting - '/api/alerting/rule/{id}/_mute_all': - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_mute_all#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - responses: - '204': - description: Indicates a successful call. - summary: Mute all alerts - tags: - - alerting - '/api/alerting/rule/{id}/_unmute_all': - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_unmute_all#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - responses: - '204': - description: Indicates a successful call. - summary: Unmute all alerts - tags: - - alerting - '/api/alerting/rule/{id}/_update_api_key': - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_update_api_key#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - responses: - '204': + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision description: Indicates a successful call. - summary: Update the API key for a rule + summary: Get information about rules tags: - alerting - '/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute': + /api/apm/agent_keys: post: - operationId: >- - %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_mute#0 - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: rule_id - required: true - schema: - type: string - - description: The identifier for the alert. - in: path - name: alert_id - required: true - schema: - type: string + description: Create a new agent key for APM. + operationId: createAgentKey + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + privileges: + items: + enum: + - 'event:write' + - 'config_agent:read' + type: string + type: array + required: true responses: - '204': - description: Indicates a successful call. - summary: Mute an alert + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + api_key: + type: string + encoded: + type: string + expiration: + format: int64 + type: integer + id: + type: string + name: + type: string + description: Agent key created successfully + summary: Create an APM agent key tags: - - alerting - '/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute': + - APM agent keys + '/api/apm/services/{serviceName}/annotation': post: - operationId: >- - %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_unmute#0 + description: Create a new annotation for a specific service. + operationId: createAnnotation parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: rule_id - required: true - schema: - type: string - - description: The identifier for the alert. + - description: The name of the service in: path - name: alert_id + name: serviceName required: true schema: type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + '@timestamp': + type: string + message: + type: string + service: + type: object + properties: + environment: + type: string + version: + type: string + tags: + items: + type: string + type: array + required: true responses: - '204': - description: Indicates a successful call. - summary: Unmute an alert + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + _id: + type: string + _index: + type: string + _source: + type: object + properties: + '@timestamp': + type: string + annotation: + type: string + event: + type: object + properties: + created: + type: string + message: + type: string + service: + type: object + properties: + environment: + type: string + name: + type: string + version: + type: string + tags: + items: + type: string + type: array + description: Annotation created successfully + summary: Create a service annotation tags: - - alerting - /api/alerting/rules/_find: + - APM annotations + '/api/apm/services/{serviceName}/annotation/search': get: - operationId: '%2Fapi%2Falerting%2Frules%2F_find#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: The number of rules to return per page. - in: query - name: per_page - required: false - schema: - default: 10 - minimum: 0 - type: number - - description: The page number to return. - in: query - name: page - required: false - schema: - default: 1 - minimum: 1 - type: number - - description: >- - An Elasticsearch simple_query_string query that filters the objects - in the response. - in: query - name: search - required: false - schema: - type: string - - description: The default operator to use for the simple_query_string. - in: query - name: default_search_operator - required: false - schema: - default: OR - enum: - - OR - - AND - type: string - - description: The fields to perform the simple_query_string parsed query against. - in: query - name: search_fields - required: false - schema: - anyOf: - - items: - type: string - type: array - - type: string - - description: >- - Determines which field is used to sort the results. The field must - exist in the `attributes` key of the response. - in: query - name: sort_field - required: false + description: Search for annotations related to a specific service. + operationId: getAnnotation + parameters: + - description: The name of the service + in: path + name: serviceName + required: true schema: type: string - - description: Determines the sort order. + - description: The environment to filter annotations by in: query - name: sort_order + name: environment required: false schema: - enum: - - asc - - desc type: string - - description: >- - Filters the rules that have a relation with the reference objects - with a specific type and identifier. + - description: The start date for the search in: query - name: has_reference - required: false - schema: - additionalProperties: false - nullable: true - type: object - properties: - id: - type: string - type: - type: string - required: - - type - - id - - in: query - name: fields + name: start required: false schema: - items: - description: The fields to return in the `attributes` key of the response. - type: string - type: array - - description: >- - A KQL string that you filter with an attribute from your saved - object. It should look like `savedObjectType.attributes.title: - "myTitle"`. However, if you used a direct attribute of a saved - object, such as `updatedAt`, you must define your filter, for - example, `savedObjectType.updatedAt > 2018-12-22`. + type: string + - description: The end date for the search in: query - name: filter + name: end required: false schema: type: string - - in: query - name: filter_consumers - required: false - schema: - items: - description: List of consumers to filter. - type: string - type: array responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - additionalProperties: false type: object - properties: - actions: - items: - additionalProperties: false - type: object - properties: - alerts_filter: - additionalProperties: false - description: >- - Defines a period that limits whether the action - runs. - type: object - properties: - query: - additionalProperties: false - type: object - properties: - dsl: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL). - type: string - filters: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL) as defined in - the `kbn-es-query` package. - items: - additionalProperties: false - type: object - properties: - $state: - additionalProperties: false - type: object - properties: - store: - description: >- - A filter can be either specific to an - application context or applied globally. - enum: - - appState - - globalState - type: string - required: - - store - meta: - additionalProperties: {} - type: object - query: - additionalProperties: {} - type: object - required: - - meta - type: array - kql: - description: >- - A filter written in Kibana Query Language - (KQL). - type: string - required: - - kql - - filters - timeframe: - additionalProperties: false - type: object - properties: - days: - description: >- - Defines the days of the week that the action - can run, represented as an array of numbers. - For example, `1` represents Monday. An empty - array is equivalent to specifying all the - days of the week. - items: - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - type: array - hours: - additionalProperties: false - type: object - properties: - end: - description: >- - The end of the time frame in 24-hour - notation (`hh:mm`). - type: string - start: - description: >- - The start of the time frame in 24-hour - notation (`hh:mm`). - type: string - required: - - start - - end - timezone: - description: >- - The ISO time zone for the `hours` values. - Values such as `UTC` and `UTC+1` also work - but lack built-in daylight savings time - support and are not recommended. - type: string - required: - - days - - hours - - timezone - connector_type_id: - description: >- - The type of connector. This property appears in - responses but cannot be set in requests. - type: string - frequency: - additionalProperties: false - type: object - properties: - notify_when: - description: >- - Indicates how often alerts generate actions. - Valid values include: `onActionGroupChange`: - Actions run when the alert status changes; - `onActiveAlert`: Actions run when the alert - becomes active and at each check interval while - the rule conditions are met; - `onThrottleInterval`: Actions run when the alert - becomes active and at the interval specified in - the throttle property while the rule conditions - are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The - recommended method is to set it for each action. - If you set it at the rule level then update the - rule in Kibana, it is automatically changed to - use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - type: string - summary: - description: Indicates whether the action is a summary. - type: boolean - throttle: - description: >- - The throttle interval, which defines how often - an alert generates repeated actions. It is - specified in seconds, minutes, hours, or days - and is applicable only if 'notify_when' is set - to 'onThrottleInterval'. NOTE: You cannot - specify the throttle interval at both the rule - and action level. The recommended method is to - set it for each action. If you set it at the - rule level then update the rule in Kibana, it is - automatically changed to use action-specific - values. - nullable: true - type: string - required: - - summary - - notify_when - - throttle - group: - description: >- - The group name, which affects when the action runs - (for example, when the threshold is met or when the - alert is recovered). Each rule type has a list of - valid action group names. If you don't need to group - actions, set to `default`. - type: string - id: - description: The identifier for the connector saved object. - type: string - params: - additionalProperties: {} - description: >- - The parameters for the action, which are sent to the - connector. The `params` are handled as Mustache - templates and passed a default set of context. - type: object - use_alert_data_for_template: - description: Indicates whether to use alert data as a template. - type: boolean - uuid: - description: >- - A universally unique identifier (UUID) for the - action. - type: string - required: - - id - - connector_type_id - - params - type: array - active_snoozes: + properties: + annotations: + items: + type: object + properties: + '@timestamp': + type: number + id: + type: string + text: + type: string + type: + enum: + - version + type: string + type: array + description: Successful response + summary: Search for annotations + tags: + - APM annotations + /api/data_views: + get: + operationId: getAllDataViewsDefault + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getAllDataViewsResponse: + $ref: '#/components/examples/Data_views_get_data_views_response' + schema: + type: object + properties: + data_view: + items: + type: object + properties: + id: + type: string + name: + type: string + namespaces: + items: + type: string + type: array + title: + type: string + typeMeta: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Get all data views + tags: + - data views + /api/data_views/data_view: + post: + operationId: createDataViewDefaultw + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createDataViewRequest: + $ref: '#/components/examples/Data_views_create_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_create_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Create a data view + tags: + - data views + '/api/data_views/data_view/{viewId}': + delete: + description: | + WARNING: When you delete a data view, it cannot be recovered. + operationId: deleteDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '204': + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Delete a data view + tags: + - data views + get: + operationId: getDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDataViewResponse: + $ref: '#/components/examples/Data_views_get_data_view_response' + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Get a data view + tags: + - data views + post: + operationId: updateDataViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateDataViewRequest: + $ref: '#/components/examples/Data_views_update_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_update_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update a data view + tags: + - data views + '/api/data_views/data_view/{viewId}/fields': + post: + description: > + Update fields presentation metadata such as count, customLabel, + customDescription, and format. + operationId: updateFieldsMetadataDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateFieldsMetadataRequest: + $ref: '#/components/examples/Data_views_update_field_metadata_request' + schema: + type: object + properties: + fields: + description: The field object. + type: object + required: + - fields + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + acknowledged: + type: boolean + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update data view fields metadata + tags: + - data views + '/api/data_views/data_view/{viewId}/runtime_field': + post: + operationId: createRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_create_runtime_field_request' + schema: + type: object + properties: + name: + description: | + The name for a runtime field. + type: string + runtimeField: + description: | + The runtime field definition object. + type: object + required: + - name + - runtimeField + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a successful call. + summary: Create a runtime field + tags: + - data views + put: + operationId: createUpdateRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - description: | + The ID of the data view fields you want to update. + in: path + name: viewId + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_create_runtime_field_request' + schema: + type: object + properties: + name: + description: | + The name for a runtime field. + type: string + runtimeField: + description: | + The runtime field definition object. + type: object + required: + - name + - runtimeField + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + data_view: + type: object + fields: items: - description: List of active snoozes for the rule. - type: string + type: object type: array - alert_delay: - additionalProperties: false - description: >- - Indicates that an alert occurs only when the specified - number of consecutive runs met the rule conditions. - type: object - properties: - active: - description: >- - The number of consecutive runs that must meet the rule - conditions. - type: number - required: - - active - api_key_created_by_user: - description: >- - Indicates whether the API key that is associated with the - rule was created by the user. - nullable: true - type: boolean - api_key_owner: - description: >- - The owner of the API key that is associated with the rule - and used to run background tasks. - nullable: true - type: string - consumer: - description: >- - The name of the application or feature that owns the rule. - For example: `alerts`, `apm`, `discover`, - `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, - `securitySolution`, `siem`, `stackAlerts`, or `uptime`. - type: string - created_at: - description: The date and time that the rule was created. - type: string - created_by: - description: The identifier for the user that created the rule. - nullable: true - type: string - enabled: - description: >- - Indicates whether you want to run the rule on an interval - basis after it is created. - type: boolean - execution_status: - additionalProperties: false - type: object - properties: - error: - additionalProperties: false - type: object - properties: - message: - description: Error message. - type: string - reason: - description: Reason for error. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - type: string - required: - - reason - - message - last_duration: - description: Duration of last execution of the rule. - type: number - last_execution_date: - description: The date and time when rule was executed last. - type: string - status: - description: Status of rule execution. - enum: - - ok - - active - - error - - warning - - pending - - unknown - type: string - warning: - additionalProperties: false - type: object - properties: - message: - description: Warning message. - type: string - reason: - description: Reason for warning. - enum: - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - type: string - required: - - reason - - message - required: - - status - - last_execution_date - id: - description: The identifier for the rule. - type: string - is_snoozed_until: - description: The date when the rule will no longer be snoozed. - nullable: true - type: string - last_run: - additionalProperties: false - nullable: true - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: Number of ignored alerts during last run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: Number of recovered alerts during last run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value could be - succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: Outcome message generated during last rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - mapped_params: - additionalProperties: {} - type: object - monitoring: - additionalProperties: false - description: Monitoring details of the rule. + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Create or update a runtime field + tags: + - data views + '/api/data_views/data_view/{viewId}/runtime_field/{fieldName}': + delete: + operationId: deleteRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Delete a runtime field from a data view + tags: + - data views + get: + operationId: getRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getRuntimeFieldResponse: + $ref: '#/components/examples/Data_views_get_runtime_field_response' + schema: + type: object + properties: + data_view: type: object - properties: - run: - additionalProperties: false - description: Rule run details. - type: object - properties: - calculated_metrics: - additionalProperties: false - description: >- - Calculation of different percentiles and success - ratio. - type: object - properties: - p50: - type: number - p95: - type: number - p99: - type: number - success_ratio: - type: number - required: - - success_ratio - history: - description: History of the rule run. - items: - additionalProperties: false - type: object - properties: - duration: - description: Duration of the rule run. - type: number - outcome: - additionalProperties: false - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: >- - Number of ignored alerts during last - run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: >- - Number of recovered alerts during last - run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value - could be succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: >- - Outcome message generated during last - rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - success: - description: >- - Indicates whether the rule run was - successful. - type: boolean - timestamp: - description: Time of rule run. - type: number - required: - - success - - timestamp - type: array - last_run: - additionalProperties: false - type: object - properties: - metrics: - additionalProperties: false - type: object - properties: - duration: - description: Duration of most recent rule run. - type: number - gap_duration_s: - description: Duration in seconds of rule run gap. - nullable: true - type: number - total_alerts_created: - description: >- - Total number of alerts created during last - rule run. - nullable: true - type: number - total_alerts_detected: - description: >- - Total number of alerts detected during - last rule run. - nullable: true - type: number - total_indexing_duration_ms: - description: >- - Total time spent indexing documents during - last rule run in milliseconds. - nullable: true - type: number - total_search_duration_ms: - description: >- - Total time spent performing Elasticsearch - searches as measured by Kibana; includes - network latency and time spent serializing - or deserializing the request and response. - nullable: true - type: number - timestamp: - description: Time of the most recent rule run. - type: string - required: - - timestamp - - metrics - required: - - history - - calculated_metrics - - last_run - required: - - run - mute_all: - description: Indicates whether all alerts are muted. + fields: + items: + type: object + type: array + description: Indicates a successful call. + '404': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Get a runtime field + tags: + - data views + post: + operationId: updateRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_update_runtime_field_request' + schema: + type: object + properties: + runtimeField: + description: | + The runtime field definition object. + + You can update following fields: + + - `type` + - `script` + type: object + required: + - runtimeField + required: true + responses: + '200': + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update a runtime field + tags: + - data views + /api/data_views/default: + get: + operationId: getDefaultDataViewDefault + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDefaultDataViewResponse: + $ref: >- + #/components/examples/Data_views_get_default_data_view_response + schema: + type: object + properties: + data_view_id: + type: string + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Get the default data view + tags: + - data views + post: + operationId: setDefaultDatailViewDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + setDefaultDataViewRequest: + $ref: '#/components/examples/Data_views_set_default_data_view_request' + schema: + type: object + properties: + data_view_id: + description: > + The data view identifier. NOTE: The API does not validate + whether it is a valid identifier. Use `null` to unset the + default data view. + nullable: true + type: string + force: + default: false + description: Update an existing default data view identifier. + type: boolean + required: + - data_view_id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + acknowledged: + type: boolean + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Set the default data view + tags: + - data views + /api/data_views/swap_references: + post: + description: > + Changes saved object references from one data view identifier to + another. WARNING: Misuse can break large numbers of saved objects! + Practicing with a backup is recommended. + operationId: swapDataViewsDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + swapDataViewRequest: + $ref: '#/components/examples/Data_views_swap_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_swap_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + deleteStatus: + type: object + properties: + deletePerformed: + type: boolean + remainingRefs: + type: integer + result: + items: + type: object + properties: + id: + description: A saved object identifier. + type: string + type: + description: The saved object type. + type: string + type: array + description: Indicates a successful call. + summary: Swap saved object references + tags: + - data views + /api/data_views/swap_references/_preview: + post: + description: > + Preview the impact of swapping saved object references from one data + view identifier to another. + operationId: previewSwapDataViewsDefault + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + previewSwapDataViewRequest: + $ref: >- + #/components/examples/Data_views_preview_swap_data_view_request + schema: + $ref: '#/components/schemas/Data_views_swap_data_view_request_object' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + result: + items: + type: object + properties: + id: + description: A saved object identifier. + type: string + type: + description: The saved object type. + type: string + type: array + description: Indicates a successful call. + summary: Preview a saved object reference swap + tags: + - data views + /api/fleet/agent_download_sources: + get: + operationId: get-download-sources + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_download_sources' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent binary download sources + tags: + - Elastic Agent binary download sources + post: + operationId: post-download-sources + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + type: string + id: + type: string + is_default: + type: boolean + name: + type: string + required: + - name + - host + - is_default + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent binary download source + tags: + - Elastic Agent binary download sources + '/api/fleet/agent_download_sources/{sourceId}': + delete: + operationId: delete-download-source + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent binary download source by ID + tags: + - Elastic Agent binary download sources + get: + operationId: get-one-download-source + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent binary download source by ID + tags: + - Elastic Agent binary download sources + parameters: + - in: path + name: sourceId + required: true + schema: + type: string + put: + operationId: update-download-source + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + type: string + is_default: + type: boolean + name: + type: string + required: + - name + - is_default + - host + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent binary download source by ID + tags: + - Elastic Agent binary download sources + /api/fleet/agent_policies: + get: + description: '' + operationId: agent-policy-list + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_format' + - description: >- + When set to true, retrieve the related package policies for each + agent policy. + in: query + name: full + schema: + type: boolean + - description: >- + When set to true, do not count how many agents are in the agent + policy, this can improve performance if you are searching over a + large number of agent policies. The "agents" property will always be + 0 if set to true. + in: query + name: noAgentCount + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent_policy' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - total + - page + - perPage + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent policies + tags: + - Elastic Agent policies + post: + operationId: create-agent-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_agent_policy_create_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent policy + tags: + - Elastic Agent policies + /api/fleet/agent_policies/_bulk_get: + post: + operationId: bulk-get-agent-policies + parameters: + - $ref: '#/components/parameters/Fleet_format' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + full: + description: get full policies with package policies populated + type: boolean + ids: + description: list of agent policy ids + items: + type: string + type: array + ignoreMissing: + type: boolean + required: + - ids + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent_policy' + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get agent policies + tags: + - Elastic Agent policies + '/api/fleet/agent_policies/{agentPolicyId}': + get: + description: Get one agent policy + operationId: agent-policy-info + parameters: [] + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent policy by ID + tags: + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - $ref: '#/components/parameters/Fleet_format' + put: + operationId: update-agent-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_agent_policy_update_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent policy by ID + tags: + - Elastic Agent policies + '/api/fleet/agent_policies/{agentPolicyId}/copy': + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - $ref: '#/components/parameters/Fleet_format' + post: + operationId: agent-policy-copy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + description: + type: string + name: + type: string + required: + - name + description: '' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Copy agent policy by ID + tags: + - Elastic Agent policies + '/api/fleet/agent_policies/{agentPolicyId}/download': + get: + operationId: agent-policy-download + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Download agent policy by ID + tags: + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - in: query + name: download + required: false + schema: + type: string + - in: query + name: standalone + required: false + schema: + type: string + - in: query + name: kubernetes + required: false + schema: + type: string + '/api/fleet/agent_policies/{agentPolicyId}/full': + get: + operationId: agent-policy-full + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + oneOf: + - type: string + - $ref: '#/components/schemas/Fleet_agent_policy_full' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get full agent policy by ID + tags: + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - in: query + name: download + required: false + schema: + type: string + - in: query + name: standalone + required: false + schema: + type: string + - in: query + name: kubernetes + required: false + schema: + type: string + /api/fleet/agent_policies/delete: + parameters: [] + post: + operationId: delete-agent-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + agentPolicyId: + type: string + force: + description: >- + bypass validation checks that can prevent agent policy + deletion + type: boolean + required: + - agentPolicyId + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string + success: type: boolean - muted_alert_ids: + required: + - id + - success + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent policy by ID + tags: + - Elastic Agent policies + /api/fleet/agent_status: + get: + operationId: get-agent-status + parameters: + - in: query + name: policyId + required: false + schema: + type: string + - deprecated: true + in: query + name: kuery + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + active: + type: integer + all: + type: integer + error: + type: integer + events: + type: integer + inactive: + type: integer + offline: + type: integer + online: + type: integer + other: + type: integer + total: + deprecated: true + type: integer + unenrolled: + type: integer + updating: + type: integer + required: + - active + - all + - error + - events + - inactive + - offline + - online + - other + - total + - updating + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent status summary + tags: + - Elastic Agent status + /api/fleet/agent_status/data: + get: + operationId: get-agent-data + parameters: + - in: query + name: agentsIds + required: true + schema: + items: + type: string + type: array + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: items: - description: 'List of identifiers of muted alerts. ' - type: string + additionalProperties: + type: object + properties: + data: + type: boolean + type: object type: array - name: - description: ' The name of the rule.' - type: string - next_run: - description: Date and time of the next run of the rule. - nullable: true + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get incoming agent data + tags: + - Elastic Agent status + /api/fleet/agent-status: + get: + deprecated: true + operationId: get-agent-status-deprecated + parameters: + - in: query + name: policyId + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + error: + type: integer + events: + type: integer + inactive: + type: integer + offline: + type: integer + online: + type: integer + other: + type: integer + total: + type: integer + updating: + type: integer + required: + - error + - events + - inactive + - offline + - online + - other + - total + - updating + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent status summary + tags: + - Elastic Agent status + /api/fleet/agents: + get: + operationId: get-agents + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_show_inactive' + - $ref: '#/components/parameters/Fleet_show_upgradeable' + - $ref: '#/components/parameters/Fleet_sort_field' + - $ref: '#/components/parameters/Fleet_sort_order' + - $ref: '#/components/parameters/Fleet_with_metrics' + - in: query + name: getStatusSummary + required: false + schema: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_get_agents_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agents + tags: + - Elastic Agents + post: + operationId: get-agents-by-actions + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + actionIds: + items: type: string - notify_when: - description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the - alert becomes active and at each check interval while the - rule conditions are met; `onThrottleInterval`: Actions run - when the alert becomes active and at the interval - specified in the throttle property while the rule - conditions are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The recommended method - is to set it for each action. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. + type: array + required: + - policy_id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_agent_get_by_actions' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agents by action ids + tags: + - Elastic Agents + '/api/fleet/agents/{agentId}': + delete: + operationId: delete-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - nullable: true - type: string - params: - additionalProperties: {} - description: The parameters for the rule. - type: object - revision: - description: The rule revision number. - type: number - rule_type_id: - description: The rule type identifier. - type: string - running: - description: Indicates whether the rule is running. - nullable: true - type: boolean - schedule: - additionalProperties: false - type: object - properties: - interval: - description: >- - The interval is specified in seconds, minutes, hours, - or days. - type: string - required: - - interval - scheduled_task_id: - description: Identifier of the scheduled task. + - deleted type: string - snooze_schedule: - items: - additionalProperties: false - type: object - properties: - duration: - description: Duration of the rule snooze schedule. - type: number - id: - description: Identifier of the rule snooze schedule. - type: string - rRule: - additionalProperties: false - type: object - properties: - byhour: - items: - description: Indicates hours of the day to recur. - type: number - type: array - byminute: - items: - description: Indicates minutes of the hour to recur. - type: number - type: array - bymonth: - items: - description: >- - Indicates months of the year that this rule - should recur. - type: number - type: array - bymonthday: - items: - description: Indicates the days of the month to recur. - type: number - type: array - bysecond: - items: - description: Indicates seconds of the day to recur. - type: number - type: array - bysetpos: - items: - description: >- - A positive or negative integer affecting the - nth day of the month. For example, -2 combined - with `byweekday` of FR is 2nd to last Friday - of the month. It is recommended to not set - this manually and just use `byweekday`. - type: number - type: array - byweekday: - items: - anyOf: - - type: string - - type: number - description: >- - Indicates the days of the week to recur or - else nth-day-of-month strings. For example, - "+2TU" second Tuesday of month, "-1FR" last - Friday of the month, which are internally - converted to a `byweekday/bysetpos` - combination. - type: array - byweekno: - items: - description: Indicates number of the week hours to recur. - type: number - type: array - byyearday: - items: - description: >- - Indicates the days of the year that this rule - should recur. - type: number - type: array - count: - description: >- - Number of times the rule should recur until it - stops. - type: number - dtstart: - description: >- - Rule start date in Coordinated Universal Time - (UTC). - type: string - freq: - description: >- - Indicates frequency of the rule. Options are - YEARLY, MONTHLY, WEEKLY, DAILY. - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - type: integer - interval: - description: >- - Indicates the interval of frequency. For - example, 1 and YEARLY is every 1 year, 2 and - WEEKLY is every 2 weeks. - type: number - tzid: - description: Indicates timezone abbreviation. - type: string - until: - description: Recur the rule until this date. - type: string - wkst: - description: 'Indicates the start of week, defaults to Monday.' - enum: - - MO - - TU - - WE - - TH - - FR - - SA - - SU - type: string - required: - - dtstart - - tzid - skipRecurrences: - items: - description: Skips recurrence of rule on this date. - type: string - type: array - required: - - duration - - rRule - type: array - tags: + required: + - action + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent by ID + tags: + - Elastic Agents + get: + operationId: get-agent + parameters: + - $ref: '#/components/parameters/Fleet_with_metrics' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent by ID + tags: + - Elastic Agents + parameters: + - in: path + name: agentId + required: true + schema: + type: string + put: + operationId: update-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + tags: + items: + type: string + type: array + user_provided_metadata: + type: object + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent by ID + tags: + - Elastic Agents + '/api/fleet/agents/{agentId}/actions': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: new-agent-action + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + $ref: '#/components/schemas/Fleet_agent_action' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + body: items: - description: The tags for the rule. - type: string + type: number type: array - throttle: - deprecated: true - description: >- - Deprecated in 8.13.0. Use the `throttle` property in the - action `frequency` object instead. The throttle interval, - which defines how often an alert generates repeated - actions. NOTE: You cannot specify the throttle interval at - both the rule and action level. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. - nullable: true - type: string - updated_at: - description: The date and time that the rule was updated most recently. - type: string - updated_by: - description: >- - The identifier for the user that updated this rule most - recently. - nullable: true - type: string - view_in_app_relative_url: - description: Relative URL to view rule in the app. - nullable: true + headers: type: string - required: - - id - - enabled - - name - - tags - - rule_type_id - - consumer - - schedule - - actions - - params - - created_by - - updated_by - - created_at - - updated_at - - api_key_owner - - mute_all - - muted_alert_ids - - execution_status - - revision - description: Indicates a successful call. - summary: Get information about rules + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent action tags: - - alerting - /api/apm/agent_keys: + - Elastic Agent actions + '/api/fleet/agents/{agentId}/reassign': + parameters: + - in: path + name: agentId + required: true + schema: + type: string post: - description: Create a new agent key for APM. - operationId: createAgentKey + operationId: reassign-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - name: + policy_id: type: string - privileges: + required: + - policy_id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Reassign agent + tags: + - Elastic Agents + put: + deprecated: true + operationId: reassign-agent-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + policy_id: + type: string + required: + - policy_id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Reassign agent + tags: + - Elastic Agents + '/api/fleet/agents/{agentId}/request_diagnostics': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: request-diagnostics-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + additional_metrics: items: - enum: - - 'event:write' - - 'config_agent:read' - type: string + oneOf: + - enum: + - CPU + type: string type: array - required: true responses: '200': content: @@ -6368,54 +6429,92 @@ paths: schema: type: object properties: - api_key: - type: string - encoded: + actionId: type: string - expiration: - format: int64 - type: integer - id: + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Request agent diagnostics + tags: + - Elastic Agents + '/api/fleet/agents/{agentId}/unenroll': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: unenroll-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean + revoke: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: OK + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + error: type: string - name: + message: type: string - description: Agent key created successfully - summary: Create an APM agent key + statusCode: + enum: + - 400 + type: number + description: BAD REQUEST + summary: Unenroll agent tags: - - APM agent keys - '/api/apm/services/{serviceName}/annotation': + - Elastic Agents + '/api/fleet/agents/{agentId}/upgrade': + parameters: + - in: path + name: agentId + required: true + schema: + type: string post: - description: Create a new annotation for a specific service. - operationId: createAnnotation + operationId: upgrade-agent parameters: - - description: The name of the service - in: path - name: serviceName - required: true - schema: - type: string + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - '@timestamp': - type: string - message: - type: string - service: - type: object - properties: - environment: - type: string - version: - type: string - tags: - items: - type: string - type: array + $ref: '#/components/schemas/Fleet_upgrade_agent' required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_upgrade_agent' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Upgrade agent + tags: + - Elastic Agents + '/api/fleet/agents/{agentId}/uploads': + get: + operationId: list-agent-uploads responses: '200': content: @@ -6423,70 +6522,36 @@ paths: schema: type: object properties: - _id: - type: string - _index: - type: string - _source: + body: type: object properties: - '@timestamp': - type: string - annotation: - type: string - event: - type: object - properties: - created: - type: string - message: - type: string - service: - type: object - properties: - environment: - type: string - name: - type: string - version: - type: string - tags: + item: items: - type: string + $ref: '#/components/schemas/Fleet_agent_diagnostics' type: array - description: Annotation created successfully - summary: Create a service annotation + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent uploads tags: - - APM annotations - '/api/apm/services/{serviceName}/annotation/search': + - Elastic Agents + parameters: + - in: path + name: agentId + required: true + schema: + type: string + /api/fleet/agents/action_status: get: - description: Search for annotations related to a specific service. - operationId: getAnnotation + operationId: agents-action-status parameters: - - description: The name of the service - in: path - name: serviceName - required: true - schema: - type: string - - description: The environment to filter annotations by - in: query - name: environment - required: false - schema: - type: string - - description: The start date for the search - in: query - name: start - required: false - schema: - type: string - - description: The end date for the search - in: query - name: end - required: false + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - in: query + name: errorSize schema: - type: string + default: 5 + type: integer responses: '200': content: @@ -6494,191 +6559,344 @@ paths: schema: type: object properties: - annotations: + items: items: type: object properties: - '@timestamp': - type: number - id: + actionId: type: string - text: + cancellationTime: type: string - type: - enum: - - version + completionTime: type: string - type: array - description: Successful response - summary: Search for annotations - tags: - - APM annotations - /api/data_views: - get: - operationId: getAllDataViewsDefault - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getAllDataViewsResponse: - $ref: '#/components/examples/Data_views_get_data_views_response' - schema: - type: object - properties: - data_view: - items: - type: object - properties: - id: + creationTime: + description: creation time of action type: string - name: + expiration: type: string - namespaces: + latestErrors: + description: >- + latest errors that happened when the agents executed + the action items: - type: string + type: object + properties: + agentId: + type: string + error: + type: string + timestamp: + type: string type: array - title: + nbAgentsAck: + description: number of agents that acknowledged the action + type: number + nbAgentsActionCreated: + description: number of agents included in action from kibana + type: number + nbAgentsActioned: + description: number of agents actioned + type: number + nbAgentsFailed: + description: number of agents that failed to execute the action + type: number + newPolicyId: + description: new policy id (POLICY_REASSIGN action) type: string - typeMeta: - type: object + policyId: + description: policy id (POLICY_CHANGE action) + type: string + revision: + description: new policy revision (POLICY_CHANGE action) + type: string + startTime: + description: start time of action (scheduled actions) + type: string + status: + enum: + - COMPLETE + - EXPIRED + - CANCELLED + - FAILED + - IN_PROGRESS + - ROLLOUT_PASSED + type: string + type: + enum: + - POLICY_REASSIGN + - UPGRADE + - UNENROLL + - FORCE_UNENROLL + - UPDATE_TAGS + - CANCEL + - REQUEST_DIAGNOSTICS + - SETTINGS + - POLICY_CHANGE + - INPUT_ACTION + type: string + version: + description: agent version number (UPGRADE action) + type: string + required: + - actionId + - complete + - nbAgentsActioned + - nbAgentsActionCreated + - nbAgentsAck + - nbAgentsFailed + - status + - creationTime + - type type: array - description: Indicates a successful call. + required: + - items + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent action status + tags: + - Elastic Agent actions + '/api/fleet/agents/actions/{actionId}/cancel': + parameters: + - in: path + name: actionId + required: true + schema: + type: string + post: + operationId: agent-action-cancel + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Get all data views + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_action' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Cancel agent action tags: - - data views - /api/data_views/data_view: + - Elastic Agent actions + /api/fleet/agents/bulk_reassign: post: - operationId: createDataViewDefaultw + operationId: bulk-reassign-agents parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - createDataViewRequest: - $ref: '#/components/examples/Data_views_create_data_view_request' + example: + agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' + policy_id: policy_id schema: - $ref: '#/components/schemas/Data_views_create_data_view_request_object' - required: true + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + policy_id: + description: new agent policy id + type: string + required: + - policy_id + - agents responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - description: Indicates a successful call. + type: object + properties: + actionId: + type: string + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Create a data view + $ref: '#/components/responses/Fleet_error' + summary: Bulk reassign agents tags: - - data views - '/api/data_views/data_view/{viewId}': - delete: - description: | - WARNING: When you delete a data view, it cannot be recovered. - operationId: deleteDataViewDefault + - Elastic Agents + /api/fleet/agents/bulk_request_diagnostics: + post: + operationId: bulk-request-diagnostics parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' + schema: + type: object + properties: + additional_metrics: + items: + oneOf: + - enum: + - CPU + type: string + type: array + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + batchSize: + type: number + required: + - agents responses: - '204': - description: Indicates a successful call. - '404': + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - description: Object is not found. - summary: Delete a data view + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk request diagnostics from agents tags: - - data views - get: - operationId: getDataViewDefault + - Elastic Agents + /api/fleet/agents/bulk_unenroll: + post: + operationId: bulk-unenroll-agents parameters: - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: + - agent1 + - agent2 + force: false + revoke: true + schema: + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + force: + description: Unenrolls hosted agents too + type: boolean + includeInactive: + description: >- + When passing agents by KQL query, unenrolls inactive agents + too + type: boolean + revoke: + description: Revokes API keys of agents + type: boolean + required: + - agents responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getDataViewResponse: - $ref: '#/components/examples/Data_views_get_data_view_response' - schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - description: Indicates a successful call. - '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - description: Object is not found. - summary: Get a data view + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk unenroll agents tags: - - data views + - Elastic Agents + /api/fleet/agents/bulk_update_agent_tags: post: - operationId: updateDataViewDefault + operationId: bulk-update-agent-tags parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateDataViewRequest: - $ref: '#/components/examples/Data_views_update_data_view_request' + example: + agents: + - agent1 + - agent2 + tagsToAdd: + - newTag + tagsToRemove: + - existingTag schema: - $ref: '#/components/schemas/Data_views_update_data_view_request_object' - required: true + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + batchSize: + type: number + tagsToAdd: + items: + type: string + type: array + tagsToRemove: + items: + type: string + type: array + required: + - agents responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - description: Indicates a successful call. + type: object + properties: + actionId: + type: string + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Update a data view + $ref: '#/components/responses/Fleet_error' + summary: Bulk update agent tags tags: - - data views - '/api/data_views/data_view/{viewId}/fields': + - Elastic Agents + /api/fleet/agents/bulk_upgrade: post: - description: > - Update fields presentation metadata such as count, customLabel, - customDescription, and format. - operationId: updateFieldsMetadataDefault - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + operationId: bulk-upgrade-agents + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateFieldsMetadataRequest: - $ref: '#/components/examples/Data_views_update_field_metadata_request' + example: + agents: + - agent1 + - agent2 + rollout_duration_seconds: 3600 + source_uri: 'https://artifacts.elastic.co/downloads/beats/elastic-agent' + start_time: '2022-08-03T14:00:00.000Z' + version: 8.4.0 schema: - type: object - properties: - fields: - description: The field object. - type: object - required: - - fields + $ref: '#/components/schemas/Fleet_bulk_upgrade_agents' required: true responses: '200': @@ -6687,250 +6905,291 @@ paths: schema: type: object properties: - acknowledged: - type: boolean - description: Indicates a successful call. + actionId: + type: string + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk upgrade agents + tags: + - Elastic Agents + '/api/fleet/agents/files/{fileId}': + delete: + operationId: delete-agent-upload-file + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Update data view fields metadata + type: object + properties: + body: + type: object + properties: + deleted: + type: boolean + id: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete file uploaded by agent tags: - - data views - '/api/data_views/data_view/{viewId}/runtime_field': - post: - operationId: createRuntimeFieldDefault - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - createRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_create_runtime_field_request' - schema: - type: object - properties: - name: - description: | - The name for a runtime field. - type: string - runtimeField: - description: | - The runtime field definition object. - type: object - required: - - name - - runtimeField + - Elastic Agents + parameters: + - in: path + name: fileId required: true + schema: + type: string + '/api/fleet/agents/files/{fileId}/{fileName}': + get: + operationId: get-agent-upload-file responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. - summary: Create a runtime field + properties: + body: + type: object + properties: + items: + type: object + properties: + body: {} + headers: {} + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get file uploaded by agent tags: - - data views - put: - operationId: createUpdateRuntimeFieldDefault + - Elastic Agents + parameters: + - in: path + name: fileId + required: true + schema: + type: string + - in: path + name: fileName + required: true + schema: + type: string + /api/fleet/agents/setup: + get: + operationId: get-agents-setup-status + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_status_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent setup info + tags: + - Elastic Agents + post: + operationId: setup-agents parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - description: | - The ID of the data view fields you want to update. - in: path - name: viewId - required: true - schema: - type: string + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_create_runtime_field_request' schema: type: object properties: - name: - description: | - The name for a runtime field. + admin_password: + type: string + admin_username: type: string - runtimeField: - description: | - The runtime field definition object. - type: object required: - - name - - runtimeField - required: true + - admin_username + - admin_password responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - data_view: - type: object - fields: - items: - type: object - type: array - description: Indicates a successful call. + $ref: '#/components/schemas/Fleet_fleet_setup_response' + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Initiate agent setup + tags: + - Elastic Agents + /api/fleet/agents/tags: + get: + operationId: get-agent-tags + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Create or update a runtime field + $ref: '#/components/schemas/Fleet_get_agent_tags_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent tags tags: - - data views - '/api/data_views/data_view/{viewId}/runtime_field/{fieldName}': - delete: - operationId: deleteRuntimeFieldDefault - parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + - Elastic Agents + /api/fleet/data_streams: + get: + operationId: data-streams-list responses: '200': - description: Indicates a successful call. - '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - description: Object is not found. - summary: Delete a runtime field from a data view + type: object + properties: + data_streams: + items: + $ref: '#/components/schemas/Fleet_data_stream' + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List data streams tags: - - data views + - Data streams + parameters: [] + /api/fleet/enrollment_api_keys: get: - operationId: getRuntimeFieldDefault + operationId: get-enrollment-api-keys parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - getRuntimeFieldResponse: - $ref: '#/components/examples/Data_views_get_runtime_field_response' schema: type: object properties: - data_view: - type: object - fields: + items: items: - type: object + $ref: '#/components/schemas/Fleet_enrollment_api_key' type: array - description: Indicates a successful call. - '404': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_404_response' - description: Object is not found. - summary: Get a runtime field + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - page + - perPage + - total + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List enrollment API keys tags: - - data views + - Fleet enrollment API keys post: - operationId: updateRuntimeFieldDefault + operationId: create-enrollment-api-keys parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_update_runtime_field_request' schema: type: object properties: - runtimeField: - description: | - The runtime field definition object. - - You can update following fields: - - - `type` - - `script` - type: object + name: + description: The name of the enrollment API key. Must be unique. + type: string + policy_id: + description: >- + The ID of the agent policy the Elastic Agent will be + enrolled in. + type: string required: - - runtimeField - required: true + - policy_id responses: '200': - description: Indicates a successful call. - '400': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Update a runtime field + type: object + properties: + action: + enum: + - created + type: string + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create enrollment API key tags: - - data views - /api/data_views/default: - get: - operationId: getDefaultDataViewDefault + - Fleet enrollment API keys + '/api/fleet/enrollment_api_keys/{keyId}': + delete: + operationId: delete-enrollment-api-key + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - getDefaultDataViewResponse: - $ref: >- - #/components/examples/Data_views_get_default_data_view_response schema: type: object properties: - data_view_id: + action: + enum: + - deleted type: string - description: Indicates a successful call. + required: + - action + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Revoke enrollment API key by ID by marking it as inactive + tags: + - Fleet enrollment API keys + get: + operationId: get-enrollment-api-key + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Get the default data view + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment API key by ID tags: - - data views - post: - operationId: setDefaultDatailViewDefault - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - setDefaultDataViewRequest: - $ref: '#/components/examples/Data_views_set_default_data_view_request' - schema: - type: object - properties: - data_view_id: - description: > - The data view identifier. NOTE: The API does not validate - whether it is a valid identifier. Use `null` to unset the - default data view. - nullable: true - type: string - force: - default: false - description: Update an existing default data view identifier. - type: boolean - required: - - data_view_id + - Fleet enrollment API keys + parameters: + - in: path + name: keyId required: true + schema: + type: string + /api/fleet/enrollment-api-keys: + get: + deprecated: true + operationId: get-enrollment-api-keys-deprecated + parameters: [] responses: '200': content: @@ -6938,36 +7197,37 @@ paths: schema: type: object properties: - acknowledged: - type: boolean - description: Indicates a successful call. + items: + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - page + - perPage + - total + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Set the default data view + $ref: '#/components/responses/Fleet_error' + summary: List enrollment API keys tags: - - data views - /api/data_views/swap_references: + - Fleet enrollment API keys post: - description: > - Changes saved object references from one data view identifier to - another. WARNING: Misuse can break large numbers of saved objects! - Practicing with a backup is recommended. - operationId: swapDataViewsDefault + deprecated: true + operationId: create-enrollment-api-keys-deprecated parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - swapDataViewRequest: - $ref: '#/components/examples/Data_views_swap_data_view_request' - schema: - $ref: '#/components/schemas/Data_views_swap_data_view_request_object' - required: true + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: @@ -6975,46 +7235,24 @@ paths: schema: type: object properties: - deleteStatus: - type: object - properties: - deletePerformed: - type: boolean - remainingRefs: - type: integer - result: - items: - type: object - properties: - id: - description: A saved object identifier. - type: string - type: - description: The saved object type. - type: string - type: array - description: Indicates a successful call. - summary: Swap saved object references + action: + enum: + - created + type: string + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create enrollment API key tags: - - data views - /api/data_views/swap_references/_preview: - post: - description: > - Preview the impact of swapping saved object references from one data - view identifier to another. - operationId: previewSwapDataViewsDefault + - Fleet enrollment API keys + '/api/fleet/enrollment-api-keys/{keyId}': + delete: + deprecated: true + operationId: delete-enrollment-api-key-deprecated parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - previewSwapDataViewRequest: - $ref: >- - #/components/examples/Data_views_preview_swap_data_view_request - schema: - $ref: '#/components/schemas/Data_views_swap_data_view_request_object' - required: true + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: @@ -7022,343 +7260,186 @@ paths: schema: type: object properties: - result: - items: - type: object - properties: - id: - description: A saved object identifier. - type: string - type: - description: The saved object type. - type: string - type: array - description: Indicates a successful call. - summary: Preview a saved object reference swap + action: + enum: + - deleted + type: string + required: + - action + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete enrollment API key by ID tags: - - data views - /api/ml/saved_objects/sync: + - Fleet enrollment API keys get: - description: > - Synchronizes Kibana saved objects for machine learning jobs and trained - models. This API runs automatically when you start Kibana and - periodically thereafter. - operationId: mlSync - parameters: - - $ref: '#/components/parameters/Machine_learning_APIs_simulateParam' + deprecated: true + operationId: get-enrollment-api-key-deprecated responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - syncExample: - $ref: '#/components/examples/Machine_learning_APIs_mlSyncExample' - schema: - $ref: '#/components/schemas/Machine_learning_APIs_mlSync200Response' - description: Indicates a successful call - '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Machine_learning_APIs_mlSync4xxResponse' - description: Authorization information is missing or invalid. - summary: Sync machine learning saved objects + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment API key by ID tags: - - ml - /api/saved_objects/_export: + - Fleet enrollment API keys + parameters: + - in: path + name: keyId + required: true + schema: + type: string + /api/fleet/epm/bulk_assets: post: - description: > - Retrieve sets of saved objects that you want to import into Kibana. - - You must include `type` or `objects` in the request body. - - - Exported saved objects are not backwards compatible and cannot be - imported into an older version of Kibana. - - - NOTE: The `savedObjects.maxImportExportSize` configuration setting - limits the number of saved objects which may be exported. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - operationId: exportSavedObjectsDefault - parameters: - - $ref: '#/components/parameters/Serverless_saved_objects_kbn_xsrf' + operationId: bulk-get-assets requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - exportSavedObjectsRequest: - $ref: >- - #/components/examples/Serverless_saved_objects_export_objects_request schema: type: object properties: - excludeExportDetails: - default: false - description: Do not add export details entry at the end of the stream. - type: boolean - includeReferencesDeep: - description: >- - Includes all of the referenced objects in the exported - objects. - type: boolean - objects: - description: A list of objects to export. + assetIds: + description: list of items necessary to fetch assets items: type: object - type: array - type: - description: >- - The saved object types to include in the export. Use `*` to - export all the types. - oneOf: - - type: string - - items: + properties: + id: type: string - type: array - required: true + type: + type: string + type: array + required: + - assetIds responses: '200': - content: - application/x-ndjson; Elastic-Api-Version=2023-10-31: - examples: - exportSavedObjectsResponse: - $ref: >- - #/components/examples/Serverless_saved_objects_export_objects_response - schema: - additionalProperties: true - type: object - description: Indicates a successful call. - '400': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Serverless_saved_objects_400_response' - description: Bad request. - summary: Export saved objects + $ref: '#/components/schemas/Fleet_get_bulk_assets_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get assets tags: - - saved objects - /api/saved_objects/_import: - post: - description: > - Create sets of Kibana saved objects from a file created by the export - API. - - Saved objects can be imported only into the same version, a newer minor - on the same major, or the next major. Exported saved objects are not - backwards compatible and cannot be imported into an older version of - Kibana. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - operationId: importSavedObjectsDefault - parameters: - - $ref: '#/components/parameters/Serverless_saved_objects_kbn_xsrf' - - description: > - Creates copies of saved objects, regenerates each object ID, and - resets the origin. When used, potential conflict errors are avoided. - NOTE: This option cannot be used with the `overwrite` and - `compatibilityMode` options. - in: query - name: createNewCopies - required: false - schema: - type: boolean - - description: > - Overwrites saved objects when they already exist. When used, - potential conflict errors are automatically resolved by overwriting - the destination object. NOTE: This option cannot be used with the - `createNewCopies` option. - in: query - name: overwrite - required: false - schema: - type: boolean - - description: > - Applies various adjustments to the saved objects that are being - imported to maintain compatibility between different Kibana - versions. Use this option only if you encounter issues with imported - saved objects. NOTE: This option cannot be used with the - `createNewCopies` option. - in: query - name: compatibilityMode - required: false - schema: - type: boolean - requestBody: - content: - multipart/form-data; Elastic-Api-Version=2023-10-31: - examples: - importObjectsRequest: - $ref: >- - #/components/examples/Serverless_saved_objects_import_objects_request - schema: - type: object - properties: - file: - description: > - A file exported using the export API. NOTE: The - `savedObjects.maxImportExportSize` configuration setting - limits the number of saved objects which may be included in - this file. Similarly, the - `savedObjects.maxImportPayloadBytes` setting limits the - overall size of the file that can be imported. - required: true + - Elastic Package Manager (EPM) + /api/fleet/epm/categories: + get: + operationId: get-package-categories responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - importObjectsResponse: - $ref: >- - #/components/examples/Serverless_saved_objects_import_objects_response schema: - type: object - properties: - errors: - description: > - Indicates the import was unsuccessful and specifies the - objects that failed to import. - - - NOTE: One object may result in multiple errors, which - requires separate steps to resolve. For instance, a - `missing_references` error and conflict error. - items: - type: object - type: array - success: - description: > - Indicates when the import was successfully completed. When - set to false, some objects may not have been created. For - additional information, refer to the `errors` and - `successResults` properties. - type: boolean - successCount: - description: Indicates the number of successfully imported records. - type: integer - successResults: - description: > - Indicates the objects that are successfully imported, with - any metadata if applicable. - - - NOTE: Objects are created only when all resolvable errors - are addressed, including conflicts and missing references. - If objects are created as new copies, each entry in the - `successResults` array includes a `destinationId` - attribute. - items: - type: object - type: array - description: Indicates a successful call. + $ref: '#/components/schemas/Fleet_get_categories_response' + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Serverless_saved_objects_400_response' - description: Bad request. - summary: Import saved objects + $ref: '#/components/responses/Fleet_error' + summary: List package categories tags: - - saved objects - x-codeSamples: - - label: Import with createNewCopies - lang: cURL - source: | - curl \ - -X POST api/saved_objects/_import?createNewCopies=true - -H "kbn-xsrf: true" - --form file=@file.ndjson - /api/status: + - Elastic Package Manager (EPM) + parameters: + - description: >- + Whether to include prerelease packages in categories count (e.g. beta, + rc, preview) + in: query + name: prerelease + schema: + default: false + type: boolean + - deprecated: true + in: query + name: experimental + schema: + default: false + type: boolean + - in: query + name: include_policy_templates + schema: + default: false + type: boolean + /api/fleet/epm/packages: get: - operationId: '%2Fapi%2Fstatus#0' + operationId: list-all-packages parameters: - - description: The version of the API to use - in: header - name: elastic-api-version + - description: >- + Whether to exclude the install status of each package. Enabling this + option will opt in to caching for the response via `cache-control` + headers. If you don't need up-to-date installation info for a + package, and are querying for a list of available packages, + providing this flag can improve performance substantially. + in: query + name: excludeInstallStatus schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: Set to "true" to get the response in v7 format. + default: false + type: boolean + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) in: query - name: v7format - required: false + name: prerelease schema: + default: false type: boolean - - description: Set to "true" to get the response in v8 format. + - deprecated: true in: query - name: v8format - required: false + name: experimental schema: + default: false type: boolean + - in: query + name: category + schema: + type: string responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - anyOf: - - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' - - $ref: >- - #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse - description: >- - Kibana's operational status. A minimal response is sent for - unauthorized users. - description: Overall status is OK and Kibana should be functioning normally. - '503': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - anyOf: - - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' - - $ref: >- - #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse - description: >- - Kibana's operational status. A minimal response is sent for - unauthorized users. - description: >- - Kibana or some of it's essential services are unavailable. Kibana - may be degraded or unavailable. - summary: Get Kibana's current status - tags: - - system - /data_streams: - get: - operationId: data-streams-list - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - data_streams: - items: - $ref: '#/components/schemas/Fleet_data_stream' - type: array + $ref: '#/components/schemas/Fleet_get_packages_response' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List data streams + summary: List packages tags: - - Data streams - parameters: [] - /enrollment_api_keys: - get: - operationId: get-enrollment-api-keys + - Elastic Package Manager (EPM) + post: + description: '' + operationId: install-package-by-upload parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean + requestBody: + content: + application/gzip; Elastic-Api-Version=2023-10-31: + schema: + format: binary + type: string + application/zip; Elastic-Api-Version=2023-10-31: + schema: + format: binary + type: string responses: '200': content: @@ -7366,76 +7447,110 @@ paths: schema: type: object properties: + _meta: + type: object + properties: + install_source: + enum: + - upload + - registry + - bundled + type: string items: items: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - type: array - list: - deprecated: true - items: - $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type type: array - page: - type: number - perPage: - type: number - total: - type: number required: - items - - page - - perPage - - total description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List enrollment API keys + '429': + $ref: '#/components/responses/Fleet_error' + summary: Install by package by direct upload tags: - - Fleet enrollment API keys + - Elastic Package Manager (EPM) + /api/fleet/epm/packages/_bulk: post: - operationId: create-enrollment-api-keys + operationId: bulk-install-packages parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - name: - description: The name of the enrollment API key. Must be unique. - type: string - policy_id: - description: >- - The ID of the agent policy the Elastic Agent will be - enrolled in. - type: string + force: + description: force install to ignore package verification errors + type: boolean + packages: + description: list of packages to install + items: + oneOf: + - description: package name + type: string + - type: object + properties: + name: + description: package name + type: string + version: + description: package version + type: string + type: array required: - - policy_id + - packages responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - action: - enum: - - created - type: string - item: - $ref: '#/components/schemas/Fleet_enrollment_api_key' + $ref: '#/components/schemas/Fleet_bulk_install_packages_response' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Create enrollment API key + summary: Bulk install packages tags: - - Fleet enrollment API keys - '/enrollment_api_keys/{keyId}': + - Elastic Package Manager (EPM) + '/api/fleet/epm/packages/{pkgkey}': delete: - operationId: delete-enrollment-api-key + deprecated: true + operationId: delete-package-deprecated parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgkey + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean responses: '200': content: @@ -7443,86 +7558,109 @@ paths: schema: type: object properties: - action: - enum: - - deleted - type: string - required: - - action - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Revoke enrollment API key by ID by marking it as inactive - tags: - - Fleet enrollment API keys - get: - operationId: get-enrollment-api-key - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_enrollment_api_key' + response: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array required: - - item + - response description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get enrollment API key by ID + summary: Delete ackage tags: - - Fleet enrollment API keys - parameters: - - in: path - name: keyId - required: true - schema: - type: string - /enrollment-api-keys: + - Elastic Package Manager (EPM) get: deprecated: true - operationId: get-enrollment-api-keys-deprecated - parameters: [] + operationId: get-package-deprecated + parameters: + - in: path + name: pkgkey + required: true + schema: + type: string + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: + allOf: + - properties: + response: + $ref: '#/components/schemas/Fleet_package_info' + - properties: + savedObject: + type: string + status: + enum: + - installed + - installing + - install_failed + - not_installed + type: string + required: + - status + - savedObject type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - type: array - list: - deprecated: true - items: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - type: array - page: - type: number - perPage: - type: number - total: - type: number - required: - - items - - page - - perPage - - total description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List enrollment API keys + summary: Get package tags: - - Fleet enrollment API keys + - Elastic Package Manager (EPM) post: deprecated: true - operationId: create-enrollment-api-keys-deprecated + description: '' + operationId: install-package-deprecated parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgkey + required: true + schema: + type: string + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean responses: '200': content: @@ -7530,24 +7668,49 @@ paths: schema: type: object properties: - action: - enum: - - created - type: string - item: - $ref: '#/components/schemas/Fleet_enrollment_api_key' + response: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - response description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Create enrollment API key + summary: Install package tags: - - Fleet enrollment API keys - '/enrollment-api-keys/{keyId}': + - Elastic Package Manager (EPM) + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}': delete: - deprecated: true - operationId: delete-enrollment-api-key-deprecated + operationId: delete-package parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: delete package even if policies used by agents + in: query + name: force + schema: + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + deprecated: true + type: object + properties: + force: + type: boolean responses: '200': content: @@ -7555,160 +7718,104 @@ paths: schema: type: object properties: - action: - enum: - - deleted - type: string + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array required: - - action + - items description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete enrollment API key by ID + summary: Delete package tags: - - Fleet enrollment API keys + - Elastic Package Manager (EPM) get: - deprecated: true - operationId: get-enrollment-api-key-deprecated + operationId: get-package responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get enrollment API key by ID - tags: - - Fleet enrollment API keys - parameters: - - in: path - name: keyId - required: true - schema: - type: string - /epm/bulk_assets: - post: - operationId: bulk-get-assets - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - assetIds: - description: list of items necessary to fetch assets - items: - type: object - properties: - id: + allOf: + - properties: + item: + $ref: '#/components/schemas/Fleet_package_info' + - properties: + keepPoliciesUpToDate: + type: boolean + latestVersion: type: string - type: + licensePath: + type: string + notice: + type: string + savedObject: + deprecated: true + type: object + status: + enum: + - installed + - installing + - install_failed + - not_installed type: string - type: array - required: - - assetIds - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_get_bulk_assets_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk get assets - tags: - - Elastic Package Manager (EPM) - /epm/categories: - get: - operationId: get-package-categories - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_get_categories_response' + required: + - status + - savedObject + type: object description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List package categories + summary: Get package tags: - Elastic Package Manager (EPM) parameters: - - description: >- - Whether to include prerelease packages in categories count (e.g. beta, - rc, preview) + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: Ignore if the package is fails signature verification in: query - name: prerelease + name: ignoreUnverified schema: - default: false type: boolean - - deprecated: true + - description: >- + Return all fields from the package manifest, not just those supported + by the Elastic Package Registry in: query - name: experimental + name: full schema: - default: false type: boolean - - in: query - name: include_policy_templates + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease schema: default: false type: boolean - /epm/packages: - get: - operationId: list-all-packages - parameters: - - description: >- - Whether to exclude the install status of each package. Enabling this - option will opt in to caching for the response via `cache-control` - headers. If you don't need up-to-date installation info for a - package, and are querying for a list of available packages, - providing this flag can improve performance substantially. - in: query - name: excludeInstallStatus - schema: - default: false - type: boolean - - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) - in: query - name: prerelease - schema: - default: false - type: boolean - - deprecated: true - in: query - name: experimental - schema: - default: false - type: boolean - - in: query - name: category - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_get_packages_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List packages - tags: - - Elastic Package Manager (EPM) post: description: '' - operationId: install-package-by-upload + operationId: install-package parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' - description: avoid erroring out on unexpected mapping update errors @@ -7727,14 +7834,14 @@ paths: type: boolean requestBody: content: - application/gzip; Elastic-Api-Version=2023-10-31: - schema: - format: binary - type: string - application/zip; Elastic-Api-Version=2023-10-31: + application/json; Elastic-Api-Version=2023-10-31: schema: - format: binary - type: string + type: object + properties: + force: + type: boolean + ignore_constraints: + type: boolean responses: '200': content: @@ -7747,8 +7854,8 @@ paths: properties: install_source: enum: - - upload - registry + - upload - bundled type: string items: @@ -7772,18 +7879,108 @@ paths: description: OK '400': $ref: '#/components/responses/Fleet_error' - '429': + summary: Install package + tags: + - Elastic Package Manager (EPM) + put: + description: '' + operationId: update-package + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + keepPoliciesUpToDate: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK + '400': $ref: '#/components/responses/Fleet_error' - summary: Install by package by direct upload + summary: Update package settings + tags: + - Elastic Package Manager (EPM) + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}/{filePath}': + get: + operationId: packages-get-file + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + body: + type: object + headers: + type: object + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package file tags: - Elastic Package Manager (EPM) - /epm/packages/_bulk: + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - in: path + name: filePath + required: true + schema: + type: string + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': post: - operationId: bulk-install-packages + description: '' + operationId: reauthorize-transforms parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) + Whether to include prerelease packages in categories count (e.g. + beta, rc, preview) in: query name: prerelease schema: @@ -7795,57 +7992,71 @@ paths: schema: type: object properties: - force: - description: force install to ignore package verification errors - type: boolean - packages: - description: list of packages to install + transforms: items: - oneOf: - - description: package name + type: object + properties: + transformId: type: string - - type: object - properties: - name: - description: package name - type: string - version: - description: package version - type: string type: array - required: - - packages responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_bulk_install_packages_response' + type: object + properties: + items: + items: + type: object + properties: + error: + type: string + success: + type: boolean + transformId: + type: string + required: + - transformId + - error + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Authorize transforms + tags: + - Elastic Package Manager (EPM) + '/api/fleet/epm/packages/{pkgName}/stats': + get: + operationId: get-package-stats + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + response: + $ref: '#/components/schemas/Fleet_package_usage_stats' + required: + - response description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Bulk install packages + summary: Get package stats tags: - Elastic Package Manager (EPM) - '/epm/packages/{pkgkey}': - delete: - deprecated: true - operationId: delete-package-deprecated - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - in: path - name: pkgkey - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - force: - type: boolean + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + /api/fleet/epm/packages/limited: + get: + operationId: list-limited-packages responses: '200': content: @@ -7853,159 +8064,162 @@ paths: schema: type: object properties: - response: + items: items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type + type: string type: array - required: - - response description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete ackage + summary: Get limited package list tags: - Elastic Package Manager (EPM) + parameters: [] + '/api/fleet/epm/templates/{pkgName}/{pkgVersion}/inputs': get: - deprecated: true - operationId: get-package-deprecated - parameters: - - in: path - name: pkgkey - required: true - schema: - type: string - - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) - in: query - name: prerelease - schema: - default: false - type: boolean + operationId: get-inputs-template + responses: + '200': + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get inputs template + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: Format of response - json or yaml + in: query + name: format + schema: + enum: + - json + - yaml + - yml + type: string + - description: Specify if version is prerelease + in: query + name: prerelease + schema: + type: boolean + - description: Ignore if the package is fails signature verification + in: query + name: ignoreUnverified + schema: + type: boolean + /api/fleet/epm/verification_key_id: + get: + operationId: packages-get-verification-key-id responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - allOf: - - properties: - response: - $ref: '#/components/schemas/Fleet_package_info' - - properties: - savedObject: - type: string - status: - enum: - - installed - - installing - - install_failed - - not_installed - type: string - required: - - status - - savedObject type: object + properties: + body: + type: object + properties: + id: + description: >- + the key ID of the GPG key used to verify package + signatures + nullable: true + type: string + headers: + type: object + statusCode: + type: number description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package + summary: Get package signature verification key ID tags: - Elastic Package Manager (EPM) + parameters: [] + /api/fleet/fleet_server_hosts: + get: + operationId: get-fleet-server-hosts + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_fleet_server_host' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List Fleet Server hosts + tags: + - Fleet Server hosts post: - deprecated: true - description: '' - operationId: install-package-deprecated - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - in: path - name: pkgkey - required: true - schema: - type: string - - description: avoid erroring out on unexpected mapping update errors - in: query - name: ignoreMappingUpdateErrors - schema: - default: false - type: boolean - - description: >- - Skip data stream rollover during index template mapping or settings - update - in: query - name: skipDataStreamRollover - schema: - default: false - type: boolean + operationId: post-fleet-server-hosts requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - force: + host_urls: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_internal: type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this fleet server host. See + the proxies API for more information. + type: string + required: + - name + - host_urls responses: '200': content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - response: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array - required: - - response + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Install package + summary: Create Fleet Server host tags: - - Elastic Package Manager (EPM) - '/epm/packages/{pkgName}/{pkgVersion}': + - Fleet Server hosts + '/api/fleet/fleet_server_hosts/{itemId}': delete: - operationId: delete-package + operationId: delete-fleet-server-hosts parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - description: delete package even if policies used by agents - in: query - name: force - schema: - type: boolean - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - deprecated: true - type: object - properties: - force: - type: boolean responses: '200': content: @@ -8013,130 +8227,67 @@ paths: schema: type: object properties: - items: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array + id: + type: string required: - - items + - id description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete package + summary: Delete Fleet Server host by ID tags: - - Elastic Package Manager (EPM) + - Fleet Server hosts get: - operationId: get-package + operationId: get-one-fleet-server-hosts responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - allOf: - - properties: - item: - $ref: '#/components/schemas/Fleet_package_info' - - properties: - keepPoliciesUpToDate: - type: boolean - latestVersion: - type: string - licensePath: - type: string - notice: - type: string - savedObject: - deprecated: true - type: object - status: - enum: - - installed - - installing - - install_failed - - not_installed - type: string - required: - - status - - savedObject type: object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + required: + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package + summary: Get Fleet Server host by ID tags: - - Elastic Package Manager (EPM) + - Fleet Server hosts parameters: - in: path - name: pkgName - required: true - schema: - type: string - - in: path - name: pkgVersion + name: itemId required: true schema: type: string - - description: Ignore if the package is fails signature verification - in: query - name: ignoreUnverified - schema: - type: boolean - - description: >- - Return all fields from the package manifest, not just those supported - by the Elastic Package Registry - in: query - name: full - schema: - type: boolean - - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) - in: query - name: prerelease - schema: - default: false - type: boolean - post: - description: '' - operationId: install-package + put: + operationId: update-fleet-server-hosts parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - description: avoid erroring out on unexpected mapping update errors - in: query - name: ignoreMappingUpdateErrors - schema: - default: false - type: boolean - - description: >- - Skip data stream rollover during index template mapping or settings - update - in: query - name: skipDataStreamRollover - schema: - default: false - type: boolean requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - force: + host_urls: + items: + type: string + type: array + is_default: type: boolean - ignore_constraints: + is_internal: type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this fleet server host. See + the proxies API for more information. + nullable: true + type: string responses: '200': content: @@ -8144,50 +8295,95 @@ paths: schema: type: object properties: - _meta: - type: object - properties: - install_source: - enum: - - registry - - upload - - bundled - type: string - items: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' required: - - items + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Install package + summary: Update Fleet Server host by ID tags: - - Elastic Package Manager (EPM) - put: - description: '' - operationId: update-package + - Fleet Server hosts + /api/fleet/health_check: + post: + operationId: fleet-server-health-check + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - keepPoliciesUpToDate: - type: boolean + host: + deprecated: true + type: string + id: + type: string + required: + - id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + deprecated: true + type: string + id: + description: Fleet Server host id + type: string + status: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Fleet Server health check + tags: + - Fleet internals + /api/fleet/kubernetes: + get: + operationId: get-full-k8s-manifest + parameters: + - in: query + name: download + required: false + schema: + type: boolean + - in: query + name: fleetServer + required: false + schema: + type: string + - in: query + name: enrolToken + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + item: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get full K8s agent manifest + tags: + - Fleet Kubernetes + /api/fleet/logstash_api_keys: + post: + operationId: generate-logstash-api-key + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: @@ -8195,33 +8391,17 @@ paths: schema: type: object properties: - items: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array - required: - - items + api_key: + type: string description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Update package settings + summary: Generate Logstash API key tags: - - Elastic Package Manager (EPM) - '/epm/packages/{pkgName}/{pkgVersion}/{filePath}': + - Fleet outputs + /api/fleet/outputs: get: - operationId: packages-get-file + operationId: get-outputs responses: '200': content: @@ -8229,71 +8409,30 @@ paths: schema: type: object properties: - body: - type: object - headers: - type: object - statusCode: - type: number + items: + items: + $ref: '#/components/schemas/Fleet_output_create_request' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package file + summary: List outputs tags: - - Elastic Package Manager (EPM) - parameters: - - in: path - name: pkgName - required: true - schema: - type: string - - in: path - name: pkgVersion - required: true - schema: - type: string - - in: path - name: filePath - required: true - schema: - type: string - '/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': + - Fleet outputs post: - description: '' - operationId: reauthorize-transforms - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - in: path - name: pkgName - required: true - schema: - type: string - - in: path - name: pkgVersion - required: true - schema: - type: string - - description: >- - Whether to include prerelease packages in categories count (e.g. - beta, rc, preview) - in: query - name: prerelease - schema: - default: false - type: boolean + operationId: post-outputs requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - transforms: - items: - type: object - properties: - transformId: - type: string - type: array + $ref: '#/components/schemas/Fleet_output_create_request' + required: true responses: '200': content: @@ -8301,31 +8440,38 @@ paths: schema: type: object properties: - items: - items: - type: object - properties: - error: - type: string - success: - type: boolean - transformId: - type: string - required: - - transformId - - error - type: array + item: + $ref: '#/components/schemas/Fleet_output_create_request' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create output + tags: + - Fleet outputs + '/api/fleet/outputs/{outputId}': + delete: + operationId: delete-output + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string required: - - items + - id description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Authorize transforms + summary: Delete output by ID tags: - - Elastic Package Manager (EPM) - '/epm/packages/{pkgName}/stats': + - Fleet outputs get: - operationId: get-package-stats + operationId: get-output responses: '200': content: @@ -8333,25 +8479,29 @@ paths: schema: type: object properties: - response: - $ref: '#/components/schemas/Fleet_package_usage_stats' - required: - - response + item: + $ref: '#/components/schemas/Fleet_output_create_request' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package stats + summary: Get output by ID tags: - - Elastic Package Manager (EPM) + - Fleet outputs parameters: - in: path - name: pkgName + name: outputId required: true schema: type: string - /epm/packages/limited: - get: - operationId: list-limited-packages + put: + operationId: update-output + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_output_update_request' responses: '200': content: @@ -8359,61 +8509,53 @@ paths: schema: type: object properties: - items: - items: - type: string - type: array + item: + $ref: '#/components/schemas/Fleet_output_update_request' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get limited package list + summary: Update output by ID tags: - - Elastic Package Manager (EPM) - parameters: [] - '/epm/templates/{pkgName}/{pkgVersion}/inputs': + - Fleet outputs + '/api/fleet/outputs/{outputId}/health': get: - operationId: get-inputs-template + operationId: get-output-health responses: '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + message: + description: long message if unhealthy + type: string + state: + description: 'state of output, HEALTHY or DEGRADED' + type: string + timestamp: + description: timestamp of reported state + type: string description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get inputs template + summary: Get latest output health tags: - - Elastic Package Manager (EPM) + - Fleet outputs parameters: - in: path - name: pkgName - required: true - schema: - type: string - - in: path - name: pkgVersion + name: outputId required: true schema: type: string - - description: Format of response - json or yaml - in: query - name: format - schema: - enum: - - json - - yaml - - yml - type: string - - description: Specify if version is prerelease - in: query - name: prerelease - schema: - type: boolean - - description: Ignore if the package is fails signature verification - in: query - name: ignoreUnverified - schema: - type: boolean - /epm/verification_key_id: + /api/fleet/package_policies: get: - operationId: packages-get-verification-key-id + operationId: get-package-policies + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_format' responses: '200': content: @@ -8421,29 +8563,38 @@ paths: schema: type: object properties: - body: - type: object - properties: - id: - description: >- - the key ID of the GPG key used to verify package - signatures - nullable: true - type: string - headers: - type: object - statusCode: + items: + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + page: + type: number + perPage: + type: number + total: type: number + required: + - items description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package signature verification key ID + summary: List package policies tags: - - Elastic Package Manager (EPM) + - Fleet package policies parameters: [] - /fleet_server_hosts: - get: - operationId: get-fleet-server-hosts + post: + operationId: create-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_format' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_package_policy_request' + description: >- + You should use inputs as an object and not use the deprecated inputs + array. responses: '200': content: @@ -8451,50 +8602,38 @@ paths: schema: type: object properties: - items: - items: - $ref: '#/components/schemas/Fleet_fleet_server_host' - type: array - page: - type: integer - perPage: - type: integer - total: - type: integer + item: + $ref: '#/components/schemas/Fleet_package_policy' + required: + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List Fleet Server hosts + '409': + $ref: '#/components/responses/Fleet_error' + summary: Create package policy tags: - - Fleet Server hosts + - Fleet package policies + /api/fleet/package_policies/_bulk_get: post: - operationId: post-fleet-server-hosts + operationId: bulk-get-package-policies + parameters: + - $ref: '#/components/parameters/Fleet_format' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - host_urls: + ids: + description: list of package policy ids items: type: string type: array - id: - type: string - is_default: - type: boolean - is_internal: + ignoreMissing: type: boolean - name: - type: string - proxy_id: - description: >- - The ID of the proxy to use for this fleet server host. See - the proxies API for more information. - type: string required: - - name - - host_urls + - ids responses: '200': content: @@ -8502,19 +8641,26 @@ paths: schema: type: object properties: - item: - $ref: '#/components/schemas/Fleet_fleet_server_host' + items: + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + required: + - items description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Create Fleet Server host + summary: Bulk get package policies tags: - - Fleet Server hosts - '/fleet_server_hosts/{itemId}': + - Fleet package policies + '/api/fleet/package_policies/{packagePolicyId}': delete: - operationId: delete-fleet-server-hosts + operationId: delete-package-policy parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: query + name: force + schema: + type: boolean responses: '200': content: @@ -8529,11 +8675,13 @@ paths: description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete Fleet Server host by ID + summary: Delete package policy by ID tags: - - Fleet Server hosts + - Fleet package policies get: - operationId: get-one-fleet-server-hosts + operationId: get-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_format' responses: '200': content: @@ -8542,47 +8690,31 @@ paths: type: object properties: item: - $ref: '#/components/schemas/Fleet_fleet_server_host' + $ref: '#/components/schemas/Fleet_package_policy' required: - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get Fleet Server host by ID + summary: Get package policy by ID tags: - - Fleet Server hosts + - Fleet package policies parameters: - in: path - name: itemId + name: packagePolicyId required: true schema: type: string put: - operationId: update-fleet-server-hosts + operationId: update-package-policy parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_format' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - host_urls: - items: - type: string - type: array - is_default: - type: boolean - is_internal: - type: boolean - name: - type: string - proxy_id: - description: >- - The ID of the proxy to use for this fleet server host. See - the proxies API for more information. - nullable: true - type: string + $ref: '#/components/schemas/Fleet_package_policy_request' responses: '200': content: @@ -8591,18 +8723,21 @@ paths: type: object properties: item: - $ref: '#/components/schemas/Fleet_fleet_server_host' + $ref: '#/components/schemas/Fleet_package_policy' + sucess: + type: boolean required: - item + - sucess description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Update Fleet Server host by ID + summary: Update package policy by ID tags: - - Fleet Server hosts - /health_check: + - Fleet package policies + /api/fleet/package_policies/delete: post: - operationId: fleet-server-health-check + operationId: post-delete-package-policy parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: @@ -8611,92 +8746,122 @@ paths: schema: type: object properties: - host: - deprecated: true - type: string - id: - type: string + force: + type: boolean + packagePolicyIds: + items: + type: string + type: array required: - - id - required: true + - packagePolicyIds responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - host: - deprecated: true - type: string - id: - description: Fleet Server host id - type: string - status: - type: string + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + type: array description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Fleet Server health check + summary: Delete package policy tags: - - Fleet internals - /kubernetes: - get: - operationId: get-full-k8s-manifest - parameters: - - in: query - name: download - required: false - schema: - type: boolean - - in: query - name: fleetServer - required: false - schema: - type: string - - in: query - name: enrolToken - required: false - schema: - type: string + - Fleet package policies + /api/fleet/package_policies/upgrade: + post: + operationId: upgrade-package-policy + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + packagePolicyIds: + items: + type: string + type: array + required: + - packagePolicyIds responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - item: - type: string + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + type: array description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get full K8s agent manifest + '409': + $ref: '#/components/responses/Fleet_error' + summary: Upgrade package policy to a newer package version tags: - - Fleet Kubernetes - /logstash_api_keys: + - Fleet package policies + /api/fleet/package_policies/upgrade/dryrun: post: - operationId: generate-logstash-api-key - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + operationId: upgrade-package-policy-dry-run + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + packagePolicyIds: + items: + type: string + type: array + packageVersion: + type: string + required: + - packagePolicyIds responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - api_key: - type: string + items: + type: object + properties: + agent_diff: + $ref: '#/components/schemas/Fleet_upgrade_agent_diff' + diff: + $ref: '#/components/schemas/Fleet_upgrade_diff' + hasErrors: + type: boolean + required: + - hasErrors + type: array description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Generate Logstash API key + summary: Dry run package policy upgrade tags: - - Fleet outputs - /outputs: + - Fleet package policies + /api/fleet/proxies: get: - operationId: get-outputs + operationId: get-fleet-proxies responses: '200': content: @@ -8706,7 +8871,7 @@ paths: properties: items: items: - $ref: '#/components/schemas/Fleet_output_create_request' + $ref: '#/components/schemas/Fleet_proxies' type: array page: type: integer @@ -8717,17 +8882,34 @@ paths: description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List outputs + summary: List proxies tags: - - Fleet outputs + - Fleet proxies post: - operationId: post-outputs + operationId: post-fleet-proxies requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_output_create_request' - required: true + type: object + properties: + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + id: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string + required: + - name + - url responses: '200': content: @@ -8736,16 +8918,16 @@ paths: type: object properties: item: - $ref: '#/components/schemas/Fleet_output_create_request' + $ref: '#/components/schemas/Fleet_proxies' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Create output + summary: Create proxy tags: - - Fleet outputs - '/outputs/{outputId}': + - Fleet proxies + '/api/fleet/proxies/{itemId}': delete: - operationId: delete-output + operationId: delete-fleet-proxies parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: @@ -8762,11 +8944,11 @@ paths: description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete output by ID + summary: Delete proxy by ID tags: - - Fleet outputs + - Fleet proxies get: - operationId: get-output + operationId: get-one-fleet-proxies responses: '200': content: @@ -8775,28 +8957,43 @@ paths: type: object properties: item: - $ref: '#/components/schemas/Fleet_output_create_request' + $ref: '#/components/schemas/Fleet_proxies' + required: + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get output by ID + summary: Get proxy by ID tags: - - Fleet outputs + - Fleet proxies parameters: - in: path - name: outputId + name: itemId required: true schema: type: string put: - operationId: update-output + operationId: update-fleet-proxies parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_output_update_request' + type: object + properties: + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string responses: '200': content: @@ -8805,16 +9002,20 @@ paths: type: object properties: item: - $ref: '#/components/schemas/Fleet_output_update_request' + $ref: '#/components/schemas/Fleet_proxies' + required: + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Update output by ID + summary: Update proxy by ID tags: - - Fleet outputs - '/outputs/{outputId}/health': - get: - operationId: get-output-health + - Fleet proxies + /api/fleet/service_tokens: + post: + operationId: generate-service-token + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: @@ -8822,35 +9023,22 @@ paths: schema: type: object properties: - message: - description: long message if unhealthy - type: string - state: - description: 'state of output, HEALTHY or DEGRADED' + name: type: string - timestamp: - description: timestamp of reported state + value: type: string description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get latest output health + summary: Create service token tags: - - Fleet outputs - parameters: - - in: path - name: outputId - required: true - schema: - type: string - /package_policies: - get: - operationId: get-package-policies + - Fleet service tokens + /api/fleet/service-tokens: + post: + deprecated: true + operationId: generate-service-token-deprecated parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - $ref: '#/components/parameters/Fleet_kuery' - - $ref: '#/components/parameters/Fleet_format' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: @@ -8858,125 +9046,105 @@ paths: schema: type: object properties: - items: - items: - $ref: '#/components/schemas/Fleet_package_policy' - type: array - page: - type: number - perPage: - type: number - total: - type: number - required: - - items + name: + type: string + value: + type: string description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List package policies + summary: Create service token tags: - - Fleet package policies - parameters: [] - post: - operationId: create-package-policy - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - $ref: '#/components/parameters/Fleet_format' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_package_policy_request' - description: >- - You should use inputs as an object and not use the deprecated inputs - array. + - Fleet service tokens + /api/fleet/settings: + get: + operationId: get-settings responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_package_policy' - required: - - item + $ref: '#/components/schemas/Fleet_fleet_settings_response' description: OK '400': $ref: '#/components/responses/Fleet_error' - '409': - $ref: '#/components/responses/Fleet_error' - summary: Create package policy + summary: Get settings tags: - - Fleet package policies - /package_policies/_bulk_get: - post: - operationId: bulk-get-package-policies - parameters: - - $ref: '#/components/parameters/Fleet_format' + - Fleet internals + put: + operationId: update-settings requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - ids: - description: list of package policy ids + additional_yaml_config: + type: string + fleet_server_hosts: + description: Protocol and path must be the same for each URL items: type: string type: array - ignoreMissing: + has_seen_add_data_notice: type: boolean - required: - - ids responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_package_policy' - type: array - required: - - items + $ref: '#/components/schemas/Fleet_fleet_settings_response' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Bulk get package policies + summary: Update settings tags: - - Fleet package policies - '/package_policies/{packagePolicyId}': - delete: - operationId: delete-package-policy + - Fleet internals + /api/fleet/setup: + post: + operationId: setup parameters: - - in: query - name: force - schema: - type: boolean + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - id: - type: string - required: - - id + $ref: '#/components/schemas/Fleet_fleet_setup_response' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete package policy by ID + '500': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + message: + type: string + description: Internal Server Error + summary: Initiate Fleet setup tags: - - Fleet package policies + - Fleet internals + /api/fleet/uninstall_tokens: get: - operationId: get-package-policy + operationId: get-uninstall-tokens parameters: - - $ref: '#/components/parameters/Fleet_format' + - description: The number of items to return + in: query + name: perPage + required: false + schema: + default: 20 + minimum: 5 + type: integer + - $ref: '#/components/parameters/Fleet_page_index' + - description: Partial match filtering for policy IDs + in: query + name: policyId + required: false + schema: + type: string responses: '200': content: @@ -8984,32 +9152,47 @@ paths: schema: type: object properties: - item: - $ref: '#/components/schemas/Fleet_package_policy' + items: + items: + type: object + properties: + created_at: + type: string + id: + type: string + policy_id: + type: string + required: + - id + - policy_id + - created_at + type: array + page: + type: number + perPage: + type: number + total: + type: number required: - - item + - items + - total + - page + - perPage description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package policy by ID + summary: List metadata for latest uninstall tokens per agent policy tags: - - Fleet package policies - parameters: - - in: path - name: packagePolicyId - required: true - schema: - type: string - put: - operationId: update-package-policy + - Fleet uninstall tokens + '/api/fleet/uninstall_tokens/{uninstallTokenId}': + get: + operationId: get-uninstall-token parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - $ref: '#/components/parameters/Fleet_format' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_package_policy_request' + - in: path + name: uninstallTokenId + required: true + schema: + type: string responses: '200': content: @@ -9018,294 +9201,323 @@ paths: type: object properties: item: - $ref: '#/components/schemas/Fleet_package_policy' - sucess: - type: boolean + type: object + properties: + created_at: + type: string + id: + type: string + policy_id: + type: string + token: + type: string + required: + - id + - token + - policy_id + - created_at required: - item - - sucess description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Update package policy by ID + summary: Get one decrypted uninstall token by its ID tags: - - Fleet package policies - /package_policies/delete: - post: - operationId: post-delete-package-policy + - Fleet uninstall tokens + /api/ml/saved_objects/sync: + get: + description: > + Synchronizes Kibana saved objects for machine learning jobs and trained + models. This API runs automatically when you start Kibana and + periodically thereafter. + operationId: mlSync parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - force: - type: boolean - packagePolicyIds: - items: - type: string - type: array - required: - - packagePolicyIds + - $ref: '#/components/parameters/Machine_learning_APIs_simulateParam' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + syncExample: + $ref: '#/components/examples/Machine_learning_APIs_mlSyncExample' schema: - items: - type: object - properties: - id: - type: string - name: - type: string - success: - type: boolean - required: - - id - - success - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete package policy - tags: - - Fleet package policies - /package_policies/upgrade: - post: - operationId: upgrade-package-policy - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - packagePolicyIds: - items: - type: string - type: array - required: - - packagePolicyIds - responses: - '200': + $ref: '#/components/schemas/Machine_learning_APIs_mlSync200Response' + description: Indicates a successful call + '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - items: - type: object - properties: - id: - type: string - name: - type: string - success: - type: boolean - required: - - id - - success - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - '409': - $ref: '#/components/responses/Fleet_error' - summary: Upgrade package policy to a newer package version + $ref: '#/components/schemas/Machine_learning_APIs_mlSync4xxResponse' + description: Authorization information is missing or invalid. + summary: Sync machine learning saved objects tags: - - Fleet package policies - /package_policies/upgrade/dryrun: + - ml + /api/saved_objects/_export: post: - operationId: upgrade-package-policy-dry-run + description: > + Retrieve sets of saved objects that you want to import into Kibana. + + You must include `type` or `objects` in the request body. + + + Exported saved objects are not backwards compatible and cannot be + imported into an older version of Kibana. + + + NOTE: The `savedObjects.maxImportExportSize` configuration setting + limits the number of saved objects which may be exported. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: exportSavedObjectsDefault + parameters: + - $ref: '#/components/parameters/Serverless_saved_objects_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: + examples: + exportSavedObjectsRequest: + $ref: >- + #/components/examples/Serverless_saved_objects_export_objects_request schema: type: object properties: - packagePolicyIds: + excludeExportDetails: + default: false + description: Do not add export details entry at the end of the stream. + type: boolean + includeReferencesDeep: + description: >- + Includes all of the referenced objects in the exported + objects. + type: boolean + objects: + description: A list of objects to export. items: - type: string + type: object type: array - packageVersion: - type: string - required: - - packagePolicyIds - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - items: - type: object - properties: - agent_diff: - $ref: '#/components/schemas/Fleet_upgrade_agent_diff' - diff: - $ref: '#/components/schemas/Fleet_upgrade_diff' - hasErrors: - type: boolean - required: - - hasErrors - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Dry run package policy upgrade - tags: - - Fleet package policies - /proxies: - get: - operationId: get-fleet-proxies + type: + description: >- + The saved object types to include in the export. Use `*` to + export all the types. + oneOf: + - type: string + - items: + type: string + type: array + required: true responses: '200': content: - application/json; Elastic-Api-Version=2023-10-31: + application/x-ndjson; Elastic-Api-Version=2023-10-31: + examples: + exportSavedObjectsResponse: + $ref: >- + #/components/examples/Serverless_saved_objects_export_objects_response schema: + additionalProperties: true type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_proxies' - type: array - page: - type: integer - perPage: - type: integer - total: - type: integer - description: OK + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - summary: List proxies + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Serverless_saved_objects_400_response' + description: Bad request. + summary: Export saved objects tags: - - Fleet proxies + - saved objects + /api/saved_objects/_import: post: - operationId: post-fleet-proxies + description: > + Create sets of Kibana saved objects from a file created by the export + API. + + Saved objects can be imported only into the same version, a newer minor + on the same major, or the next major. Exported saved objects are not + backwards compatible and cannot be imported into an older version of + Kibana. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: importSavedObjectsDefault + parameters: + - $ref: '#/components/parameters/Serverless_saved_objects_kbn_xsrf' + - description: > + Creates copies of saved objects, regenerates each object ID, and + resets the origin. When used, potential conflict errors are avoided. + NOTE: This option cannot be used with the `overwrite` and + `compatibilityMode` options. + in: query + name: createNewCopies + required: false + schema: + type: boolean + - description: > + Overwrites saved objects when they already exist. When used, + potential conflict errors are automatically resolved by overwriting + the destination object. NOTE: This option cannot be used with the + `createNewCopies` option. + in: query + name: overwrite + required: false + schema: + type: boolean + - description: > + Applies various adjustments to the saved objects that are being + imported to maintain compatibility between different Kibana + versions. Use this option only if you encounter issues with imported + saved objects. NOTE: This option cannot be used with the + `createNewCopies` option. + in: query + name: compatibilityMode + required: false + schema: + type: boolean requestBody: content: - application/json; Elastic-Api-Version=2023-10-31: + multipart/form-data; Elastic-Api-Version=2023-10-31: + examples: + importObjectsRequest: + $ref: >- + #/components/examples/Serverless_saved_objects_import_objects_request schema: type: object properties: - certificate: - type: string - certificate_authorities: - type: string - certificate_key: - type: string - id: - type: string - name: - type: string - proxy_headers: - type: object - url: - type: string - required: - - name - - url + file: + description: > + A file exported using the export API. NOTE: The + `savedObjects.maxImportExportSize` configuration setting + limits the number of saved objects which may be included in + this file. Similarly, the + `savedObjects.maxImportPayloadBytes` setting limits the + overall size of the file that can be imported. + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + importObjectsResponse: + $ref: >- + #/components/examples/Serverless_saved_objects_import_objects_response schema: type: object properties: - item: - $ref: '#/components/schemas/Fleet_proxies' - description: OK + errors: + description: > + Indicates the import was unsuccessful and specifies the + objects that failed to import. + + + NOTE: One object may result in multiple errors, which + requires separate steps to resolve. For instance, a + `missing_references` error and conflict error. + items: + type: object + type: array + success: + description: > + Indicates when the import was successfully completed. When + set to false, some objects may not have been created. For + additional information, refer to the `errors` and + `successResults` properties. + type: boolean + successCount: + description: Indicates the number of successfully imported records. + type: integer + successResults: + description: > + Indicates the objects that are successfully imported, with + any metadata if applicable. + + + NOTE: Objects are created only when all resolvable errors + are addressed, including conflicts and missing references. + If objects are created as new copies, each entry in the + `successResults` array includes a `destinationId` + attribute. + items: + type: object + type: array + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - summary: Create proxy - tags: - - Fleet proxies - '/proxies/{itemId}': - delete: - operationId: delete-fleet-proxies - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - id: - type: string - required: - - id - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete proxy by ID + $ref: '#/components/schemas/Serverless_saved_objects_400_response' + description: Bad request. + summary: Import saved objects tags: - - Fleet proxies + - saved objects + x-codeSamples: + - label: Import with createNewCopies + lang: cURL + source: | + curl \ + -X POST api/saved_objects/_import?createNewCopies=true + -H "kbn-xsrf: true" + --form file=@file.ndjson + /api/status: get: - operationId: get-one-fleet-proxies + operationId: '%2Fapi%2Fstatus#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: Set to "true" to get the response in v7 format. + in: query + name: v7format + required: false + schema: + type: boolean + - description: Set to "true" to get the response in v8 format. + in: query + name: v8format + required: false + schema: + type: boolean responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_proxies' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get proxy by ID - tags: - - Fleet proxies - parameters: - - in: path - name: itemId - required: true - schema: - type: string - put: - operationId: update-fleet-proxies - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - certificate: - type: string - certificate_authorities: - type: string - certificate_key: - type: string - name: - type: string - proxy_headers: - type: object - url: - type: string - responses: - '200': + anyOf: + - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' + - $ref: >- + #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse + description: >- + Kibana's operational status. A minimal response is sent for + unauthorized users. + description: Overall status is OK and Kibana should be functioning normally. + '503': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_proxies' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update proxy by ID + anyOf: + - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' + - $ref: >- + #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse + description: >- + Kibana's operational status. A minimal response is sent for + unauthorized users. + description: >- + Kibana or some of it's essential services are unavailable. Kibana + may be degraded or unavailable. + summary: Get Kibana's current status tags: - - Fleet proxies + - system '/s/{spaceId}/api/observability/slos': get: description: > @@ -9753,247 +9965,6 @@ paths: summary: Enable an SLO tags: - slo - /service_tokens: - post: - operationId: generate-service-token - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - name: - type: string - value: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create service token - tags: - - Fleet service tokens - /service-tokens: - post: - deprecated: true - operationId: generate-service-token-deprecated - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - name: - type: string - value: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create service token - tags: - - Fleet service tokens - /settings: - get: - operationId: get-settings - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_settings_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get settings - tags: - - Fleet internals - put: - operationId: update-settings - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - additional_yaml_config: - type: string - fleet_server_hosts: - description: Protocol and path must be the same for each URL - items: - type: string - type: array - has_seen_add_data_notice: - type: boolean - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_settings_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update settings - tags: - - Fleet internals - /settings/enrollment: - get: - operationId: get-enrollment-settings - parameters: - - description: >- - An agent policy ID to scope the enrollment settings to. For example, - that policy's Fleet Server host, its proxy, download location, etc. - If not provided, the default Fleet Server policy is used (if any). - in: query - name: agentPolicyId - required: false - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_settings_enrollment_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get enrollment settings - tags: - - Fleet internals - servers: - - description: Used for Fleet internals and not supported - url: 'http://KIBANA_HOST:5601/internal/fleet' - /setup: - post: - operationId: setup - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_setup_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - '500': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - message: - type: string - description: Internal Server Error - summary: Initiate Fleet setup - tags: - - Fleet internals - /uninstall_tokens: - get: - operationId: get-uninstall-tokens - parameters: - - description: The number of items to return - in: query - name: perPage - required: false - schema: - default: 20 - minimum: 5 - type: integer - - $ref: '#/components/parameters/Fleet_page_index' - - description: Partial match filtering for policy IDs - in: query - name: policyId - required: false - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - type: object - properties: - created_at: - type: string - id: - type: string - policy_id: - type: string - required: - - id - - policy_id - - created_at - type: array - page: - type: number - perPage: - type: number - total: - type: number - required: - - items - - total - - page - - perPage - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List metadata for latest uninstall tokens per agent policy - tags: - - Fleet uninstall tokens - '/uninstall_tokens/{uninstallTokenId}': - get: - operationId: get-uninstall-token - parameters: - - in: path - name: uninstallTokenId - required: true - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - type: object - properties: - created_at: - type: string - id: - type: string - policy_id: - type: string - token: - type: string - required: - - id - - token - - policy_id - - created_at - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get one decrypted uninstall token by its ID - tags: - - Fleet uninstall tokens components: examples: Data_views_create_data_view_request: @@ -12639,49 +12610,6 @@ components: - is_default - is_preconfigured - host_urls - Fleet_fleet_settings_enrollment_response: - title: Fleet settings response - type: object - properties: - download_source: - $ref: '#/components/schemas/Fleet_download_sources' - fleet_server: - type: object - properties: - has_active: - type: boolean - host: - $ref: '#/components/schemas/Fleet_fleet_server_host' - host_proxy: - $ref: '#/components/schemas/Fleet_proxies' - policies: - items: - type: object - properties: - download_source_id: - type: string - fleet_server_host_id: - type: string - has_fleet_server: - type: boolean - id: - type: string - is_default_fleet_server: - type: boolean - is_managed: - type: boolean - name: - type: string - required: - - id - - name - - is_managed - type: array - required: - - agent_policies - - has_active - required: - - fleet_server Fleet_fleet_settings_response: title: Fleet settings response type: object diff --git a/oas_docs/output/kibana.yaml b/oas_docs/output/kibana.yaml index 4c8aafc41ad77..e4e718c3f73c9 100644 --- a/oas_docs/output/kibana.yaml +++ b/oas_docs/output/kibana.yaml @@ -75,1762 +75,877 @@ servers: kibana_url: default: 'localhost:5601' paths: - /agent_download_sources: + /api/actions: get: - operationId: get-download-sources - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_download_sources' - type: array - page: - type: integer - perPage: - type: integer - total: - type: integer - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agent binary download sources + deprecated: true + operationId: '%2Fapi%2Factions#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + responses: {} + summary: Get all connectors tags: - - Elastic Agent binary download sources + - connectors + /api/actions/action: post: - operationId: post-download-sources + deprecated: true + operationId: '%2Fapi%2Factions%2Faction#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - host: - type: string - id: + actionTypeId: + description: The connector type identifier. type: string - is_default: - type: boolean + config: + additionalProperties: {} + default: {} + type: object name: + description: The display name for the connector. type: string + secrets: + additionalProperties: {} + default: {} + type: object required: - name - - host - - is_default + - actionTypeId responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_download_sources' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create agent binary download source + description: Indicates a successful call. + summary: Create a connector tags: - - Elastic Agent binary download sources - '/agent_download_sources/{sourceId}': + - connectors + '/api/actions/action/{id}': delete: - operationId: delete-download-source + deprecated: true + description: 'WARNING: When you delete a connector, it cannot be recovered.' + operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#0' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - id: - type: string - required: - - id - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete agent binary download source by ID + '204': + description: Indicates a successful call. + summary: Delete a connector tags: - - Elastic Agent binary download sources + - connectors get: - operationId: get-one-download-source + deprecated: true + operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#1' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_download_sources' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent binary download source by ID + description: Indicates a successful call. + summary: Get connector information tags: - - Elastic Agent binary download sources - parameters: - - in: path - name: sourceId - required: true - schema: - type: string + - connectors put: - operationId: update-download-source + deprecated: true + operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#2' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - host: - type: string - is_default: - type: boolean + config: + additionalProperties: {} + default: {} + type: object name: type: string + secrets: + additionalProperties: {} + default: {} + type: object required: - name - - is_default - - host responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_download_sources' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update agent binary download source by ID + description: Indicates a successful call. + summary: Update a connector tags: - - Elastic Agent binary download sources - /agent_policies: - get: - description: '' - operationId: agent-policy-list + - connectors + '/api/actions/action/{id}/_execute': + post: + deprecated: true + operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D%2F_execute#0' parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - $ref: '#/components/parameters/Fleet_kuery' - - $ref: '#/components/parameters/Fleet_format' - - description: >- - When set to true, retrieve the related package policies for each - agent policy. - in: query - name: full + - description: The version of the API to use + in: header + name: elastic-api-version schema: - type: boolean + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + params: + additionalProperties: {} + type: object + required: + - params + responses: + '200': + description: Indicates a successful call. + summary: Run a connector + tags: + - connectors + /api/actions/connector_types: + get: + description: You do not need any Kibana feature privileges to run this API. + operationId: '%2Fapi%2Factions%2Fconnector_types#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string - description: >- - When set to true, do not count how many agents are in the agent - policy, this can improve performance if you are searching over a - large number of agent policies. The "agents" property will always be - 0 if set to true. + A filter to limit the retrieved connector types to those that + support a specific feature (such as alerting or cases). in: query - name: noAgentCount + name: feature_id + required: false schema: - type: boolean + type: string + responses: {} + summary: Get connector types + tags: + - connectors + '/api/actions/connector/{id}': + delete: + description: 'WARNING: When you delete a connector, it cannot be recovered.' + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Delete a connector + tags: + - connectors + get: + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#1' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_agent_policy' - type: array - page: - type: number - perPage: - type: number - total: - type: number - required: - - items - - total - - page - - perPage - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agent policies + description: Indicates a successful call. + summary: Get connector information tags: - - Elastic Agent policies + - connectors post: - operationId: create-agent-policy + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%3F%7D#0' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - in: path + name: id + required: false + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_agent_policy_create_request' + additionalProperties: false + type: object + properties: + config: + additionalProperties: {} + default: {} + type: object + connector_type_id: + description: The type of connector. + type: string + name: + description: The display name for the connector. + type: string + secrets: + additionalProperties: {} + default: {} + type: object + required: + - name + - connector_type_id responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_policy' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create agent policy + description: Indicates a successful call. + summary: Create a connector tags: - - Elastic Agent policies - /agent_policies/_bulk_get: - post: - operationId: bulk-get-agent-policies + - connectors + put: + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#2' parameters: - - $ref: '#/components/parameters/Fleet_format' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - full: - description: get full policies with package policies populated - type: boolean - ids: - description: list of agent policy ids - items: - type: string - type: array - ignoreMissing: - type: boolean + config: + additionalProperties: {} + default: {} + type: object + name: + description: The display name for the connector. + type: string + secrets: + additionalProperties: {} + default: {} + type: object required: - - ids + - name responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_agent_policy' - type: array - required: - - items - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk get agent policies - tags: - - Elastic Agent policies - '/agent_policies/{agentPolicyId}': - get: - description: Get one agent policy - operationId: agent-policy-info - parameters: [] - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_policy' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent policy by ID - tags: - - Elastic Agent policies - parameters: - - in: path - name: agentPolicyId - required: true - schema: - type: string - - $ref: '#/components/parameters/Fleet_format' - put: - operationId: update-agent-policy - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_agent_policy_update_request' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_policy' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update agent policy by ID + description: Indicates a successful call. + summary: Update a connector tags: - - Elastic Agent policies - '/agent_policies/{agentPolicyId}/copy': - parameters: - - in: path - name: agentPolicyId - required: true - schema: - type: string - - $ref: '#/components/parameters/Fleet_format' + - connectors + '/api/actions/connector/{id}/_execute': post: - operationId: agent-policy-copy + description: >- + You can use this API to test an action that involves interaction with + Kibana services or integrations with third-party systems. + operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D%2F_execute#0' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: An identifier for the connector. + in: path + name: id + required: true + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: + additionalProperties: false type: object properties: - description: - type: string - name: - type: string + params: + additionalProperties: {} + type: object required: - - name - description: '' + - params + responses: + '200': + description: Indicates a successful call. + summary: Run a connector + tags: + - connectors + /api/actions/connectors: + get: + operationId: '%2Fapi%2Factions%2Fconnectors#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + responses: {} + summary: Get all connectors + tags: + - connectors + /api/actions/list_action_types: + get: + deprecated: true + operationId: '%2Fapi%2Factions%2Flist_action_types#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + responses: {} + summary: Get connector types + tags: + - connectors + /api/alerting/_health: + get: + description: > + You must have `read` privileges for the **Management > Stack Rules** + feature or for at least one of the **Analytics > Discover**, **Analytics + > Machine Learning**, **Observability**, or **Security** features. + operationId: getAlertingHealth responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + getAlertingHealthResponse: + $ref: '#/components/examples/Alerting_get_health_response' schema: type: object properties: - item: - $ref: '#/components/schemas/Fleet_agent_policy' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Copy agent policy by ID + alerting_framework_health: + description: > + Three substates identify the health of the alerting + framework: `decryption_health`, `execution_health`, and + `read_health`. + type: object + properties: + decryption_health: + description: The timestamp and status of the rule decryption. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + execution_health: + description: The timestamp and status of the rule run. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + read_health: + description: The timestamp and status of the rule reading events. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + has_permanent_encryption_key: + description: >- + If `false`, the encrypted saved object plugin does not + have a permanent encryption key. + example: true + type: boolean + is_sufficiently_secure: + description: 'If `false`, security is enabled but TLS is not.' + example: true + type: boolean + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get the alerting framework health tags: - - Elastic Agent policies - '/agent_policies/{agentPolicyId}/download': + - alerting + /api/alerting/rule_types: get: - operationId: agent-policy-download + description: > + If you have `read` privileges for one or more Kibana features, the API + response contains information about the appropriate rule types. For + example, there are rule types associated with the **Management > Stack + Rules** feature, **Analytics > Discover** and **Machine Learning** + features, **Observability** features, and **Security** features. To get + rule types associated with the **Stack Monitoring** feature, use the + `monitoring_user` built-in role. + operationId: getRuleTypes responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + getRuleTypesResponse: + $ref: '#/components/examples/Alerting_get_rule_types_response' schema: - type: object - properties: - item: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Download agent policy by ID - tags: - - Elastic Agent policies - parameters: - - in: path - name: agentPolicyId - required: true - schema: - type: string - - in: query - name: download - required: false - schema: - type: string - - in: query - name: standalone - required: false - schema: - type: string - - in: query - name: kubernetes - required: false - schema: - type: string - '/agent_policies/{agentPolicyId}/full': - get: - operationId: agent-policy-full - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - oneOf: - - type: string - - $ref: '#/components/schemas/Fleet_agent_policy_full' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get full agent policy by ID - tags: - - Elastic Agent policies - parameters: - - in: path - name: agentPolicyId - required: true - schema: - type: string - - in: query - name: download - required: false - schema: - type: string - - in: query - name: standalone - required: false - schema: - type: string - - in: query - name: kubernetes - required: false - schema: - type: string - /agent_policies/delete: - parameters: [] - post: - operationId: delete-agent-policy - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - agentPolicyId: - type: string - force: - description: >- - bypass validation checks that can prevent agent policy - deletion - type: boolean - required: - - agentPolicyId - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - id: - type: string - success: - type: boolean - required: - - id - - success - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete agent policy by ID - tags: - - Elastic Agent policies - /agent_status: - get: - operationId: get-agent-status - parameters: - - in: query - name: policyId - required: false - schema: - type: string - - deprecated: true - in: query - name: kuery - required: false - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - active: - type: integer - all: - type: integer - error: - type: integer - events: - type: integer - inactive: - type: integer - offline: - type: integer - online: - type: integer - other: - type: integer - total: - deprecated: true - type: integer - unenrolled: - type: integer - updating: - type: integer - required: - - active - - all - - error - - events - - inactive - - offline - - online - - other - - total - - updating - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent status summary - tags: - - Elastic Agent status - /agent_status/data: - get: - operationId: get-agent-data - parameters: - - in: query - name: agentsIds - required: true - schema: - items: - type: string - type: array - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - additionalProperties: + items: + type: object + properties: + action_groups: + description: > + An explicit list of groups for which the rule type can + schedule actions, each with the action group's unique ID + and human readable name. Rule actions validation uses + this configuration to ensure that groups are valid. + items: type: object properties: - data: - type: boolean + id: + type: string + name: + type: string + type: array + action_variables: + description: > + A list of action variables that the rule type makes + available via context and state in action parameter + templates, and a short human readable description. When + you create a rule in Kibana, it uses this information to + prompt you for these variables in action parameter + editors. type: object - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get incoming agent data - tags: - - Elastic Agent status - /agent-status: - get: - deprecated: true - operationId: get-agent-status-deprecated - parameters: - - in: query - name: policyId - required: false - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - error: - type: integer - events: - type: integer - inactive: - type: integer - offline: - type: integer - online: - type: integer - other: - type: integer - total: - type: integer - updating: - type: integer - required: - - error - - events - - inactive - - offline - - online - - other - - total - - updating - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent status summary - tags: - - Elastic Agent status - /agents: - get: - operationId: get-agents - parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - $ref: '#/components/parameters/Fleet_kuery' - - $ref: '#/components/parameters/Fleet_show_inactive' - - $ref: '#/components/parameters/Fleet_show_upgradeable' - - $ref: '#/components/parameters/Fleet_sort_field' - - $ref: '#/components/parameters/Fleet_sort_order' - - $ref: '#/components/parameters/Fleet_with_metrics' - - in: query - name: getStatusSummary - required: false - schema: - type: boolean - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_get_agents_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agents - tags: - - Elastic Agents - post: - operationId: get-agents-by-actions - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionIds: - items: - type: string - type: array - required: - - policy_id - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_agent_get_by_actions' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agents by action ids - tags: - - Elastic Agents - '/agents/{agentId}': - delete: - operationId: delete-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - action: - enum: - - deleted - type: string - required: - - action - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete agent by ID - tags: - - Elastic Agents - get: - operationId: get-agent - parameters: - - $ref: '#/components/parameters/Fleet_with_metrics' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent by ID - tags: - - Elastic Agents - parameters: - - in: path - name: agentId - required: true - schema: - type: string - put: - operationId: update-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - tags: - items: - type: string - type: array - user_provided_metadata: - type: object - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update agent by ID - tags: - - Elastic Agents - '/agents/{agentId}/actions': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: new-agent-action - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - action: - $ref: '#/components/schemas/Fleet_agent_action' - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - body: - items: - type: number - type: array - headers: - type: string - statusCode: - type: number - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create agent action - tags: - - Elastic Agent actions - '/agents/{agentId}/reassign': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: reassign-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - policy_id: - type: string - required: - - policy_id - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Reassign agent - tags: - - Elastic Agents - put: - deprecated: true - operationId: reassign-agent-deprecated - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - policy_id: - type: string - required: - - policy_id - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Reassign agent - tags: - - Elastic Agents - '/agents/{agentId}/request_diagnostics': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: request-diagnostics-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - additional_metrics: - items: - oneOf: - - enum: - - CPU - type: string - type: array - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Request agent diagnostics - tags: - - Elastic Agents - '/agents/{agentId}/unenroll': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: unenroll-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - force: - type: boolean - revoke: - type: boolean - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: OK - '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - error: - type: string - message: - type: string - statusCode: - enum: - - 400 - type: number - description: BAD REQUEST - summary: Unenroll agent - tags: - - Elastic Agents - '/agents/{agentId}/upgrade': - parameters: - - in: path - name: agentId - required: true - schema: - type: string - post: - operationId: upgrade-agent - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_upgrade_agent' - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_upgrade_agent' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Upgrade agent - tags: - - Elastic Agents - '/agents/{agentId}/uploads': - get: - operationId: list-agent-uploads - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - body: - type: object - properties: - item: - items: - $ref: '#/components/schemas/Fleet_agent_diagnostics' - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agent uploads - tags: - - Elastic Agents - parameters: - - in: path - name: agentId - required: true - schema: - type: string - /agents/action_status: - get: - operationId: agents-action-status - parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - in: query - name: errorSize - schema: - default: 5 - type: integer - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - type: object - properties: - actionId: - type: string - cancellationTime: - type: string - completionTime: - type: string - creationTime: - description: creation time of action - type: string - expiration: - type: string - latestErrors: - description: >- - latest errors that happened when the agents executed - the action - items: - type: object - properties: - agentId: - type: string - error: - type: string - timestamp: - type: string - type: array - nbAgentsAck: - description: number of agents that acknowledged the action - type: number - nbAgentsActionCreated: - description: number of agents included in action from kibana - type: number - nbAgentsActioned: - description: number of agents actioned - type: number - nbAgentsFailed: - description: number of agents that failed to execute the action - type: number - newPolicyId: - description: new policy id (POLICY_REASSIGN action) - type: string - policyId: - description: policy id (POLICY_CHANGE action) - type: string - revision: - description: new policy revision (POLICY_CHANGE action) - type: string - startTime: - description: start time of action (scheduled actions) - type: string - status: - enum: - - COMPLETE - - EXPIRED - - CANCELLED - - FAILED - - IN_PROGRESS - - ROLLOUT_PASSED - type: string - type: - enum: - - POLICY_REASSIGN - - UPGRADE - - UNENROLL - - FORCE_UNENROLL - - UPDATE_TAGS - - CANCEL - - REQUEST_DIAGNOSTICS - - SETTINGS - - POLICY_CHANGE - - INPUT_ACTION - type: string - version: - description: agent version number (UPGRADE action) - type: string - required: - - actionId - - complete - - nbAgentsActioned - - nbAgentsActionCreated - - nbAgentsAck - - nbAgentsFailed - - status - - creationTime - - type - type: array - required: - - items - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent action status - tags: - - Elastic Agent actions - '/agents/actions/{actionId}/cancel': - parameters: - - in: path - name: actionId - required: true - schema: - type: string - post: - operationId: agent-action-cancel - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_agent_action' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Cancel agent action - tags: - - Elastic Agent actions - /agents/bulk_reassign: - post: - operationId: bulk-reassign-agents - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' - policy_id: policy_id - schema: - type: object - properties: - agents: - oneOf: - - description: 'KQL query string, leave empty to action all agents' - type: string - - description: list of agent IDs - items: - type: string - type: array - policy_id: - description: new agent policy id - type: string - required: - - policy_id - - agents - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk reassign agents - tags: - - Elastic Agents - /agents/bulk_request_diagnostics: - post: - operationId: bulk-request-diagnostics - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' - schema: - type: object - properties: - additional_metrics: - items: - oneOf: - - enum: - - CPU - type: string - type: array - agents: - oneOf: - - description: 'KQL query string, leave empty to action all agents' - type: string - - description: list of agent IDs - items: - type: string - type: array - batchSize: - type: number - required: - - agents - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk request diagnostics from agents - tags: - - Elastic Agents - /agents/bulk_unenroll: - post: - operationId: bulk-unenroll-agents - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: - - agent1 - - agent2 - force: false - revoke: true - schema: - type: object - properties: - agents: - oneOf: - - description: 'KQL query string, leave empty to action all agents' - type: string - - description: list of agent IDs - items: - type: string - type: array - force: - description: Unenrolls hosted agents too - type: boolean - includeInactive: - description: >- - When passing agents by KQL query, unenrolls inactive agents - too - type: boolean - revoke: - description: Revokes API keys of agents - type: boolean - required: - - agents - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk unenroll agents - tags: - - Elastic Agents - /agents/bulk_update_agent_tags: - post: - operationId: bulk-update-agent-tags - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: - - agent1 - - agent2 - tagsToAdd: - - newTag - tagsToRemove: - - existingTag - schema: - type: object - properties: - agents: - oneOf: - - description: 'KQL query string, leave empty to action all agents' - type: string - - description: list of agent IDs - items: - type: string - type: array - batchSize: - type: number - tagsToAdd: - items: - type: string - type: array - tagsToRemove: - items: - type: string - type: array - required: - - agents - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk update agent tags - tags: - - Elastic Agents - /agents/bulk_upgrade: - post: - operationId: bulk-upgrade-agents - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - example: - agents: - - agent1 - - agent2 - rollout_duration_seconds: 3600 - source_uri: 'https://artifacts.elastic.co/downloads/beats/elastic-agent' - start_time: 2022-08-03T14:00:00.000Z - version: 8.4.0 - schema: - $ref: '#/components/schemas/Fleet_bulk_upgrade_agents' - required: true - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - actionId: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk upgrade agents - tags: - - Elastic Agents - '/agents/files/{fileId}': - delete: - operationId: delete-agent-upload-file - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - body: - type: object - properties: - deleted: - type: boolean - id: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete file uploaded by agent - tags: - - Elastic Agents - parameters: - - in: path - name: fileId - required: true - schema: - type: string - '/agents/files/{fileId}/{fileName}': - get: - operationId: get-agent-upload-file - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - body: - type: object - properties: - items: - type: object - properties: - body: {} - headers: {} - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get file uploaded by agent - tags: - - Elastic Agents - parameters: - - in: path - name: fileId - required: true - schema: - type: string - - in: path - name: fileName - required: true - schema: - type: string - /agents/setup: - get: - operationId: get-agents-setup-status - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_status_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get agent setup info - tags: - - Elastic Agents - post: - operationId: setup-agents - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - admin_password: - type: string - admin_username: - type: string - required: - - admin_username - - admin_password - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_setup_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Initiate agent setup - tags: - - Elastic Agents - /agents/tags: - get: - operationId: get-agent-tags - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_get_agent_tags_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List agent tags - tags: - - Elastic Agents - /api/actions: - get: - deprecated: true - operationId: '%2Fapi%2Factions#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - responses: {} - summary: Get all connectors - tags: - - connectors - /api/actions/action: - post: - deprecated: true - operationId: '%2Fapi%2Factions%2Faction#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - actionTypeId: - description: The connector type identifier. - type: string - config: - additionalProperties: {} - default: {} - type: object - name: - description: The display name for the connector. - type: string - secrets: - additionalProperties: {} - default: {} - type: object - required: - - name - - actionTypeId - responses: - '200': - description: Indicates a successful call. - summary: Create a connector - tags: - - connectors - '/api/actions/action/{id}': - delete: - deprecated: true - description: 'WARNING: When you delete a connector, it cannot be recovered.' - operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - responses: - '204': - description: Indicates a successful call. - summary: Delete a connector - tags: - - connectors - get: - deprecated: true - operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#1' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - responses: - '200': - description: Indicates a successful call. - summary: Get connector information - tags: - - connectors - put: - deprecated: true - operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D#2' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - config: - additionalProperties: {} - default: {} - type: object - name: - type: string - secrets: - additionalProperties: {} - default: {} - type: object - required: - - name - responses: - '200': - description: Indicates a successful call. - summary: Update a connector - tags: - - connectors - '/api/actions/action/{id}/_execute': - post: - deprecated: true - operationId: '%2Fapi%2Factions%2Faction%2F%7Bid%7D%2F_execute#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - params: - additionalProperties: {} - type: object - required: - - params - responses: - '200': + properties: + context: + items: + type: object + properties: + description: + type: string + name: + type: string + useWithTripleBracesInTemplates: + type: boolean + type: array + params: + items: + type: object + properties: + description: + type: string + name: + type: string + type: array + state: + items: + type: object + properties: + description: + type: string + name: + type: string + type: array + alerts: + description: > + Details for writing alerts as data documents for this + rule type. + type: object + properties: + context: + description: | + The namespace for this rule type. + enum: + - ml.anomaly-detection + - observability.apm + - observability.logs + - observability.metrics + - observability.slo + - observability.threshold + - observability.uptime + - security + - stack + type: string + dynamic: + description: Indicates whether new fields are added dynamically. + enum: + - 'false' + - runtime + - strict + - 'true' + type: string + isSpaceAware: + description: > + Indicates whether the alerts are space-aware. If + true, space-specific alert indices are used. + type: boolean + mappings: + type: object + properties: + fieldMap: + additionalProperties: + $ref: >- + #/components/schemas/Alerting_fieldmap_properties + description: > + Mapping information for each field supported in + alerts as data documents for this rule type. For + more information about mapping parameters, refer + to the Elasticsearch documentation. + type: object + secondaryAlias: + description: > + A secondary alias. It is typically used to support + the signals alias for detection rules. + type: string + shouldWrite: + description: > + Indicates whether the rule should write out alerts + as data. + type: boolean + useEcs: + description: > + Indicates whether to include the ECS component + template for the alerts. + type: boolean + useLegacyAlerts: + default: false + description: > + Indicates whether to include the legacy component + template for the alerts. + type: boolean + authorized_consumers: + description: >- + The list of the plugins IDs that have access to the rule + type. + type: object + properties: + alerts: + type: object + properties: + all: + type: boolean + read: + type: boolean + apm: + type: object + properties: + all: + type: boolean + read: + type: boolean + discover: + type: object + properties: + all: + type: boolean + read: + type: boolean + infrastructure: + type: object + properties: + all: + type: boolean + read: + type: boolean + logs: + type: object + properties: + all: + type: boolean + read: + type: boolean + ml: + type: object + properties: + all: + type: boolean + read: + type: boolean + monitoring: + type: object + properties: + all: + type: boolean + read: + type: boolean + siem: + type: object + properties: + all: + type: boolean + read: + type: boolean + slo: + type: object + properties: + all: + type: boolean + read: + type: boolean + stackAlerts: + type: object + properties: + all: + type: boolean + read: + type: boolean + uptime: + type: object + properties: + all: + type: boolean + read: + type: boolean + category: + description: >- + The rule category, which is used by features such as + category-specific maintenance windows. + enum: + - management + - observability + - securitySolution + type: string + default_action_group_id: + description: The default identifier for the rule type group. + type: string + does_set_recovery_context: + description: >- + Indicates whether the rule passes context variables to + its recovery action. + type: boolean + enabled_in_license: + description: >- + Indicates whether the rule type is enabled or disabled + based on the subscription. + type: boolean + has_alerts_mappings: + description: >- + Indicates whether the rule type has custom mappings for + the alert data. + type: boolean + has_fields_for_a_a_d: + type: boolean + id: + description: The unique identifier for the rule type. + type: string + is_exportable: + description: >- + Indicates whether the rule type is exportable in **Stack + Management > Saved Objects**. + type: boolean + minimum_license_required: + description: The subscriptions required to use the rule type. + example: basic + type: string + name: + description: The descriptive name of the rule type. + type: string + producer: + description: >- + An identifier for the application that produces this + rule type. + example: stackAlerts + type: string + recovery_action_group: + description: >- + An action group to use when an alert goes from an active + state to an inactive one. + type: object + properties: + id: + type: string + name: + type: string + rule_task_timeout: + example: 5m + type: string + type: array description: Indicates a successful call. - summary: Run a connector - tags: - - connectors - /api/actions/connector_types: - get: - description: You do not need any Kibana feature privileges to run this API. - operationId: '%2Fapi%2Factions%2Fconnector_types#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: >- - A filter to limit the retrieved connector types to those that - support a specific feature (such as alerting or cases). - in: query - name: feature_id - required: false - schema: - type: string - responses: {} - summary: Get connector types + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get the rule types tags: - - connectors - '/api/actions/connector/{id}': + - alerting + '/api/alerting/rule/{id}': delete: - description: 'WARNING: When you delete a connector, it cannot be recovered.' - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#0' + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#2' parameters: - description: The version of the API to use in: header @@ -1847,7 +962,7 @@ paths: schema: example: 'true' type: string - - description: An identifier for the connector. + - description: The identifier for the rule. in: path name: id required: true @@ -1856,87 +971,11 @@ paths: responses: '204': description: Indicates a successful call. - summary: Delete a connector + summary: Delete a rule tags: - - connectors + - alerting get: - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#1' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: An identifier for the connector. - in: path - name: id - required: true - schema: - type: string - responses: - '200': - description: Indicates a successful call. - summary: Get connector information - tags: - - connectors - post: - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%3F%7D#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - in: path - name: id - required: false - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - config: - additionalProperties: {} - default: {} - type: object - connector_type_id: - description: The type of connector. - type: string - name: - description: The display name for the connector. - type: string - secrets: - additionalProperties: {} - default: {} - type: object - required: - - name - - connector_type_id - responses: - '200': - description: Indicates a successful call. - summary: Create a connector - tags: - - connectors - put: - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D#2' + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#0' parameters: - description: The version of the API to use in: header @@ -1946,51 +985,823 @@ paths: enum: - '2023-10-31' type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: An identifier for the connector. + - description: The identifier for the rule. in: path name: id required: true schema: type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - config: - additionalProperties: {} - default: {} - type: object - name: - description: The display name for the connector. - type: string - secrets: - additionalProperties: {} - default: {} - type: object - required: - - name responses: '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: + items: + additionalProperties: false + type: object + properties: + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. + type: string + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string + required: + - id + - connector_type_id + - params + type: array + active_snoozes: + items: + description: List of active snoozes for the rule. + type: string + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: + description: >- + Indicates whether the API key that is associated with the + rule was created by the user. + nullable: true + type: boolean + api_key_owner: + description: >- + The owner of the API key that is associated with the rule + and used to run background tasks. + nullable: true + type: string + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. + nullable: true + type: string + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: + additionalProperties: false + type: object + properties: + error: + additionalProperties: false + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + type: string + required: + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. + type: string + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown + type: string + warning: + additionalProperties: false + type: object + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message + required: + - status + - last_execution_date + id: + description: The identifier for the rule. + type: string + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule run. + type: number + outcome: + additionalProperties: false + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + success: + description: >- + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number + required: + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + updated_at: + description: The date and time that the rule was updated most recently. + type: string + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true + type: string + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision description: Indicates a successful call. - summary: Update a connector + summary: Get rule details tags: - - connectors - '/api/actions/connector/{id}/_execute': + - alerting post: - description: >- - You can use this API to test an action that involves interaction with - Kibana services or integrations with third-party systems. - operationId: '%2Fapi%2Factions%2Fconnector%2F%7Bid%7D%2F_execute#0' + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%3F%7D#0' parameters: - description: The version of the API to use in: header @@ -2007,10 +1818,12 @@ paths: schema: example: 'true' type: string - - description: An identifier for the connector. + - description: >- + The identifier for the rule. If it is omitted, an ID is randomly + generated. in: path name: id - required: true + required: false schema: type: string requestBody: @@ -2020,486 +1833,299 @@ paths: additionalProperties: false type: object properties: - params: - additionalProperties: {} - type: object - required: - - params - responses: - '200': - description: Indicates a successful call. - summary: Run a connector - tags: - - connectors - /api/actions/connectors: - get: - operationId: '%2Fapi%2Factions%2Fconnectors#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - responses: {} - summary: Get all connectors - tags: - - connectors - /api/actions/list_action_types: - get: - deprecated: true - operationId: '%2Fapi%2Factions%2Flist_action_types#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - responses: {} - summary: Get connector types - tags: - - connectors - /api/alerting/_health: - get: - description: > - You must have `read` privileges for the **Management > Stack Rules** - feature or for at least one of the **Analytics > Discover**, **Analytics - > Machine Learning**, **Observability**, or **Security** features. - operationId: getAlertingHealth - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getAlertingHealthResponse: - $ref: '#/components/examples/Alerting_get_health_response' - schema: - type: object - properties: - alerting_framework_health: - description: > - Three substates identify the health of the alerting - framework: `decryption_health`, `execution_health`, and - `read_health`. + actions: + default: [] + items: + additionalProperties: false + description: An action that runs under defined conditions. type: object properties: - decryption_health: - description: The timestamp and status of the rule decryption. - type: object - properties: - status: - enum: - - error - - ok - - warn - example: ok - type: string - timestamp: - example: '2023-01-13T01:28:00.280Z' - format: date-time - type: string - execution_health: - description: The timestamp and status of the rule run. - type: object - properties: - status: - enum: - - error - - ok - - warn - example: ok - type: string - timestamp: - example: '2023-01-13T01:28:00.280Z' - format: date-time - type: string - read_health: - description: The timestamp and status of the rule reading events. - type: object - properties: - status: - enum: - - error - - ok - - warn - example: ok - type: string - timestamp: - example: '2023-01-13T01:28:00.280Z' - format: date-time - type: string - has_permanent_encryption_key: - description: >- - If `false`, the encrypted saved object plugin does not - have a permanent encryption key. - example: true - type: boolean - is_sufficiently_secure: - description: 'If `false`, security is enabled but TLS is not.' - example: true - type: boolean - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Get the alerting framework health - tags: - - alerting - /api/alerting/rule_types: - get: - description: > - If you have `read` privileges for one or more Kibana features, the API - response contains information about the appropriate rule types. For - example, there are rule types associated with the **Management > Stack - Rules** feature, **Analytics > Discover** and **Machine Learning** - features, **Observability** features, and **Security** features. To get - rule types associated with the **Stack Monitoring** feature, use the - `monitoring_user` built-in role. - operationId: getRuleTypes - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getRuleTypesResponse: - $ref: '#/components/examples/Alerting_get_rule_types_response' - schema: - items: - type: object - properties: - action_groups: - description: > - An explicit list of groups for which the rule type can - schedule actions, each with the action group's unique ID - and human readable name. Rule actions validation uses - this configuration to ensure that groups are valid. - items: + alerts_filter: + additionalProperties: false + description: >- + Conditions that affect whether the action runs. If you + specify multiple conditions, all conditions must be + met for the action to run. For example, if an alert + occurs within the specified time frame and matches the + query, the action runs. type: object properties: - id: - type: string - name: - type: string - type: array - action_variables: - description: > - A list of action variables that the rule type makes - available via context and state in action parameter - templates, and a short human readable description. When - you create a rule in Kibana, it uses this information to - prompt you for these variables in action parameter - editors. - type: object - properties: - context: - items: - type: object - properties: - description: - type: string - name: - type: string - useWithTripleBracesInTemplates: - type: boolean - type: array - params: - items: - type: object - properties: - description: - type: string - name: - type: string - type: array - state: - items: + query: + additionalProperties: false type: object properties: - description: + dsl: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL). type: string - name: + filters: + description: >- + A filter written in Elasticsearch Query Domain + Specific Language (DSL) as defined in the + `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). type: string - type: array - alerts: - description: > - Details for writing alerts as data documents for this - rule type. - type: object - properties: - context: - description: | - The namespace for this rule type. - enum: - - ml.anomaly-detection - - observability.apm - - observability.logs - - observability.metrics - - observability.slo - - observability.threshold - - observability.uptime - - security - - stack - type: string - dynamic: - description: Indicates whether new fields are added dynamically. - enum: - - 'false' - - runtime - - strict - - 'true' - type: string - isSpaceAware: - description: > - Indicates whether the alerts are space-aware. If - true, space-specific alert indices are used. - type: boolean - mappings: - type: object - properties: - fieldMap: - additionalProperties: - $ref: >- - #/components/schemas/Alerting_fieldmap_properties - description: > - Mapping information for each field supported in - alerts as data documents for this rule type. For - more information about mapping parameters, refer - to the Elasticsearch documentation. - type: object - secondaryAlias: - description: > - A secondary alias. It is typically used to support - the signals alias for detection rules. - type: string - shouldWrite: - description: > - Indicates whether the rule should write out alerts - as data. - type: boolean - useEcs: - description: > - Indicates whether to include the ECS component - template for the alerts. - type: boolean - useLegacyAlerts: - default: false - description: > - Indicates whether to include the legacy component - template for the alerts. - type: boolean - authorized_consumers: - description: >- - The list of the plugins IDs that have access to the rule - type. - type: object - properties: - alerts: - type: object - properties: - all: - type: boolean - read: - type: boolean - apm: - type: object - properties: - all: - type: boolean - read: - type: boolean - discover: - type: object - properties: - all: - type: boolean - read: - type: boolean - infrastructure: - type: object - properties: - all: - type: boolean - read: - type: boolean - logs: - type: object - properties: - all: - type: boolean - read: - type: boolean - ml: - type: object - properties: - all: - type: boolean - read: - type: boolean - monitoring: - type: object - properties: - all: - type: boolean - read: - type: boolean - siem: - type: object - properties: - all: - type: boolean - read: - type: boolean - slo: - type: object - properties: - all: - type: boolean - read: - type: boolean - stackAlerts: - type: object - properties: - all: - type: boolean - read: - type: boolean - uptime: - type: object - properties: - all: - type: boolean - read: - type: boolean - category: - description: >- - The rule category, which is used by features such as - category-specific maintenance windows. - enum: - - management - - observability - - securitySolution - type: string - default_action_group_id: - description: The default identifier for the rule type group. - type: string - does_set_recovery_context: - description: >- - Indicates whether the rule passes context variables to - its recovery action. - type: boolean - enabled_in_license: - description: >- - Indicates whether the rule type is enabled or disabled - based on the subscription. - type: boolean - has_alerts_mappings: - description: >- - Indicates whether the rule type has custom mappings for - the alert data. - type: boolean - has_fields_for_a_a_d: - type: boolean - id: - description: The unique identifier for the rule type. - type: string - is_exportable: - description: >- - Indicates whether the rule type is exportable in **Stack - Management > Saved Objects**. - type: boolean - minimum_license_required: - description: The subscriptions required to use the rule type. - example: basic - type: string - name: - description: The descriptive name of the rule type. - type: string - producer: - description: >- - An identifier for the application that produces this - rule type. - example: stackAlerts - type: string - recovery_action_group: + required: + - kql + - filters + timeframe: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the days + of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + description: >- + Defines the range of time in a day that the + action can run. If the `start` value is + `00:00` and the `end` value is `24:00`, + actions be generated all day. + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work but + lack built-in daylight savings time support + and are not recommended. + type: string + required: + - days + - hours + - timezone + frequency: + additionalProperties: false + type: object + properties: + notify_when: + description: >- + Indicates how often alerts generate actions. Valid + values include: `onActionGroupChange`: Actions run + when the alert status changes; `onActiveAlert`: + Actions run when the alert becomes active and at + each check interval while the rule conditions are + met; `onThrottleInterval`: Actions run when the + alert becomes active and at the interval specified + in the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` at + both the rule and action level. The recommended + method is to set it for each action. If you set it + at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific + values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often an + alert generates repeated actions. It is specified + in seconds, minutes, hours, or days and is + applicable only if `notify_when` is set to + `onThrottleInterval`. NOTE: You cannot specify the + throttle interval at both the rule and action + level. The recommended method is to set it for + each action. If you set it at the rule level then + update the rule in Kibana, it is automatically + changed to use action-specific values. + nullable: true + type: string + required: + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + default: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: A universally unique identifier (UUID) for the action. + type: string + required: + - id + type: array + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: description: >- - An action group to use when an alert goes from an active - state to an inactive one. - type: object - properties: - id: - type: string - name: - type: string - rule_task_timeout: - example: 5m - type: string - type: array - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Get the rule types - tags: - - alerting - '/api/alerting/rule/{id}': - delete: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#2' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - responses: - '204': - description: Indicates a successful call. - summary: Delete a rule - tags: - - alerting - get: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, `infrastructure`, + `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, + `siem`, `stackAlerts`, or `uptime`. + type: string + enabled: + default: true + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + name: + description: >- + The name of the rule. While this name does not have to be + unique, a distinctive name can help you identify a rule. + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while the rule + conditions are met; `onThrottleInterval`: Actions run when + the alert becomes active and at the interval specified in + the throttle property while the rule conditions are met. + NOTE: You cannot specify `notify_when` at both the rule and + action level. The recommended method is to set it for each + action. If you set it at the rule level then update the rule + in Kibana, it is automatically changed to use + action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + default: {} + description: The parameters for the rule. + type: object + rule_type_id: + description: The rule type identifier. + type: string + schedule: + additionalProperties: false + description: >- + The check interval, which specifies how frequently the rule + conditions are checked. + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, or + days. + type: string + required: + - interval + tags: + default: [] + description: The tags for the rule. + items: + type: string + type: array + throttle: + description: >- + Use the `throttle` property in the action `frequency` object + instead. The throttle interval, which defines how often an + alert generates repeated actions. NOTE: You cannot specify + the throttle interval at both the rule and action level. If + you set it at the rule level then update the rule in Kibana, + it is automatically changed to use action-specific values. + nullable: true + type: string + required: + - name + - rule_type_id + - consumer + - schedule responses: '200': content: @@ -3306,11 +2932,11 @@ paths: - execution_status - revision description: Indicates a successful call. - summary: Get rule details + summary: Create a rule tags: - alerting - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%3F%7D#0' + put: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#1' parameters: - description: The version of the API to use in: header @@ -3327,12 +2953,10 @@ paths: schema: example: 'true' type: string - - description: >- - The identifier for the rule. If it is omitted, an ID is randomly - generated. + - description: The identifier for the rule. in: path name: id - required: false + required: true schema: type: string requestBody: @@ -3351,12 +2975,6 @@ paths: properties: alerts_filter: additionalProperties: false - description: >- - Conditions that affect whether the action runs. If you - specify multiple conditions, all conditions must be - met for the action to run. For example, if an alert - occurs within the specified time frame and matches the - query, the action runs. type: object properties: query: @@ -3554,19 +3172,6 @@ paths: type: number required: - active - consumer: - description: >- - The name of the application or feature that owns the rule. - For example: `alerts`, `apm`, `discover`, `infrastructure`, - `logs`, `metrics`, `ml`, `monitoring`, `securitySolution`, - `siem`, `stackAlerts`, or `uptime`. - type: string - enabled: - default: true - description: >- - Indicates whether you want to run the rule on an interval - basis after it is created. - type: boolean name: description: >- The name of the rule. While this name does not have to be @@ -3597,14 +3202,8 @@ paths: default: {} description: The parameters for the rule. type: object - rule_type_id: - description: The rule type identifier. - type: string schedule: additionalProperties: false - description: >- - The check interval, which specifies how frequently the rule - conditions are checked. type: object properties: interval: @@ -3616,8 +3215,8 @@ paths: - interval tags: default: [] - description: The tags for the rule. items: + description: The tags for the rule. type: string type: array throttle: @@ -3632,8 +3231,6 @@ paths: type: string required: - name - - rule_type_id - - consumer - schedule responses: '200': @@ -4210,3084 +3807,3975 @@ paths: type: string notify_when: description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the - alert becomes active and at each check interval while the - rule conditions are met; `onThrottleInterval`: Actions run - when the alert becomes active and at the interval - specified in the throttle property while the rule - conditions are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The recommended method - is to set it for each action. If you set it at the rule + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. + type: string + rRule: + additionalProperties: false + type: object + properties: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: + description: >- + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). + type: string + freq: + description: >- + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU + type: string + required: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true + description: >- + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule level then update the rule in Kibana, it is automatically changed to use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval nullable: true type: string - params: - additionalProperties: {} - description: The parameters for the rule. - type: object - revision: - description: The rule revision number. - type: number - rule_type_id: - description: The rule type identifier. + updated_at: + description: The date and time that the rule was updated most recently. type: string - running: - description: Indicates whether the rule is running. + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. nullable: true - type: boolean - schedule: - additionalProperties: false - type: object - properties: - interval: - description: >- - The interval is specified in seconds, minutes, hours, - or days. - type: string - required: - - interval - scheduled_task_id: - description: Identifier of the scheduled task. type: string - snooze_schedule: + view_in_app_relative_url: + description: Relative URL to view rule in the app. + nullable: true + type: string + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Update a rule + tags: + - alerting + '/api/alerting/rule/{id}/_disable': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_disable#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + nullable: true + type: object + properties: + untrack: + description: Defines whether this rule's alerts should be untracked. + type: boolean + x-oas-optional: true + responses: + '204': + description: Indicates a successful call. + summary: Disable a rule + tags: + - alerting + '/api/alerting/rule/{id}/_enable': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_enable#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Enable a rule + tags: + - alerting + '/api/alerting/rule/{id}/_mute_all': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_mute_all#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Mute all alerts + tags: + - alerting + '/api/alerting/rule/{id}/_unmute_all': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_unmute_all#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Unmute all alerts + tags: + - alerting + '/api/alerting/rule/{id}/_update_api_key': + post: + operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_update_api_key#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Update the API key for a rule + tags: + - alerting + '/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute': + post: + operationId: >- + %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_mute#0 + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: rule_id + required: true + schema: + type: string + - description: The identifier for the alert. + in: path + name: alert_id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Mute an alert + tags: + - alerting + '/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute': + post: + operationId: >- + %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_unmute#0 + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: A required header to protect against CSRF attacks + in: header + name: kbn-xsrf + required: true + schema: + example: 'true' + type: string + - description: The identifier for the rule. + in: path + name: rule_id + required: true + schema: + type: string + - description: The identifier for the alert. + in: path + name: alert_id + required: true + schema: + type: string + responses: + '204': + description: Indicates a successful call. + summary: Unmute an alert + tags: + - alerting + /api/alerting/rules/_find: + get: + operationId: '%2Fapi%2Falerting%2Frules%2F_find#0' + parameters: + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: The number of rules to return per page. + in: query + name: per_page + required: false + schema: + default: 10 + minimum: 0 + type: number + - description: The page number to return. + in: query + name: page + required: false + schema: + default: 1 + minimum: 1 + type: number + - description: >- + An Elasticsearch simple_query_string query that filters the objects + in the response. + in: query + name: search + required: false + schema: + type: string + - description: The default operator to use for the simple_query_string. + in: query + name: default_search_operator + required: false + schema: + default: OR + enum: + - OR + - AND + type: string + - description: The fields to perform the simple_query_string parsed query against. + in: query + name: search_fields + required: false + schema: + anyOf: + - items: + type: string + type: array + - type: string + - description: >- + Determines which field is used to sort the results. The field must + exist in the `attributes` key of the response. + in: query + name: sort_field + required: false + schema: + type: string + - description: Determines the sort order. + in: query + name: sort_order + required: false + schema: + enum: + - asc + - desc + type: string + - description: >- + Filters the rules that have a relation with the reference objects + with a specific type and identifier. + in: query + name: has_reference + required: false + schema: + additionalProperties: false + nullable: true + type: object + properties: + id: + type: string + type: + type: string + required: + - type + - id + - in: query + name: fields + required: false + schema: + items: + description: The fields to return in the `attributes` key of the response. + type: string + type: array + - description: >- + A KQL string that you filter with an attribute from your saved + object. It should look like `savedObjectType.attributes.title: + "myTitle"`. However, if you used a direct attribute of a saved + object, such as `updatedAt`, you must define your filter, for + example, `savedObjectType.updatedAt > 2018-12-22`. + in: query + name: filter + required: false + schema: + type: string + - in: query + name: filter_consumers + required: false + schema: + items: + description: List of consumers to filter. + type: string + type: array + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + additionalProperties: false + type: object + properties: + actions: items: additionalProperties: false type: object properties: - duration: - description: Duration of the rule snooze schedule. - type: number - id: - description: Identifier of the rule snooze schedule. + alerts_filter: + additionalProperties: false + description: >- + Defines a period that limits whether the action + runs. + type: object + properties: + query: + additionalProperties: false + type: object + properties: + dsl: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL). + type: string + filters: + description: >- + A filter written in Elasticsearch Query + Domain Specific Language (DSL) as defined in + the `kbn-es-query` package. + items: + additionalProperties: false + type: object + properties: + $state: + additionalProperties: false + type: object + properties: + store: + description: >- + A filter can be either specific to an + application context or applied globally. + enum: + - appState + - globalState + type: string + required: + - store + meta: + additionalProperties: {} + type: object + query: + additionalProperties: {} + type: object + required: + - meta + type: array + kql: + description: >- + A filter written in Kibana Query Language + (KQL). + type: string + required: + - kql + - filters + timeframe: + additionalProperties: false + type: object + properties: + days: + description: >- + Defines the days of the week that the action + can run, represented as an array of numbers. + For example, `1` represents Monday. An empty + array is equivalent to specifying all the + days of the week. + items: + enum: + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + type: integer + type: array + hours: + additionalProperties: false + type: object + properties: + end: + description: >- + The end of the time frame in 24-hour + notation (`hh:mm`). + type: string + start: + description: >- + The start of the time frame in 24-hour + notation (`hh:mm`). + type: string + required: + - start + - end + timezone: + description: >- + The ISO time zone for the `hours` values. + Values such as `UTC` and `UTC+1` also work + but lack built-in daylight savings time + support and are not recommended. + type: string + required: + - days + - hours + - timezone + connector_type_id: + description: >- + The type of connector. This property appears in + responses but cannot be set in requests. type: string - rRule: + frequency: additionalProperties: false type: object properties: - byhour: - items: - description: Indicates hours of the day to recur. - type: number - type: array - byminute: - items: - description: Indicates minutes of the hour to recur. - type: number - type: array - bymonth: - items: - description: >- - Indicates months of the year that this rule - should recur. - type: number - type: array - bymonthday: - items: - description: Indicates the days of the month to recur. - type: number - type: array - bysecond: - items: - description: Indicates seconds of the day to recur. - type: number - type: array - bysetpos: - items: - description: >- - A positive or negative integer affecting the - nth day of the month. For example, -2 combined - with `byweekday` of FR is 2nd to last Friday - of the month. It is recommended to not set - this manually and just use `byweekday`. - type: number - type: array - byweekday: - items: - anyOf: - - type: string - - type: number - description: >- - Indicates the days of the week to recur or - else nth-day-of-month strings. For example, - "+2TU" second Tuesday of month, "-1FR" last - Friday of the month, which are internally - converted to a `byweekday/bysetpos` - combination. - type: array - byweekno: - items: - description: Indicates number of the week hours to recur. - type: number - type: array - byyearday: - items: - description: >- - Indicates the days of the year that this rule - should recur. - type: number - type: array - count: - description: >- - Number of times the rule should recur until it - stops. - type: number - dtstart: - description: >- - Rule start date in Coordinated Universal Time - (UTC). - type: string - freq: + notify_when: description: >- - Indicates frequency of the rule. Options are - YEARLY, MONTHLY, WEEKLY, DAILY. + Indicates how often alerts generate actions. + Valid values include: `onActionGroupChange`: + Actions run when the alert status changes; + `onActiveAlert`: Actions run when the alert + becomes active and at each check interval while + the rule conditions are met; + `onThrottleInterval`: Actions run when the alert + becomes active and at the interval specified in + the throttle property while the rule conditions + are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The + recommended method is to set it for each action. + If you set it at the rule level then update the + rule in Kibana, it is automatically changed to + use action-specific values. enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - type: integer - interval: - description: >- - Indicates the interval of frequency. For - example, 1 and YEARLY is every 1 year, 2 and - WEEKLY is every 2 weeks. - type: number - tzid: - description: Indicates timezone abbreviation. - type: string - until: - description: Recur the rule until this date. + - onActionGroupChange + - onActiveAlert + - onThrottleInterval type: string - wkst: - description: 'Indicates the start of week, defaults to Monday.' - enum: - - MO - - TU - - WE - - TH - - FR - - SA - - SU + summary: + description: Indicates whether the action is a summary. + type: boolean + throttle: + description: >- + The throttle interval, which defines how often + an alert generates repeated actions. It is + specified in seconds, minutes, hours, or days + and is applicable only if 'notify_when' is set + to 'onThrottleInterval'. NOTE: You cannot + specify the throttle interval at both the rule + and action level. The recommended method is to + set it for each action. If you set it at the + rule level then update the rule in Kibana, it is + automatically changed to use action-specific + values. + nullable: true type: string required: - - dtstart - - tzid - skipRecurrences: - items: - description: Skips recurrence of rule on this date. - type: string - type: array + - summary + - notify_when + - throttle + group: + description: >- + The group name, which affects when the action runs + (for example, when the threshold is met or when the + alert is recovered). Each rule type has a list of + valid action group names. If you don't need to group + actions, set to `default`. + type: string + id: + description: The identifier for the connector saved object. + type: string + params: + additionalProperties: {} + description: >- + The parameters for the action, which are sent to the + connector. The `params` are handled as Mustache + templates and passed a default set of context. + type: object + use_alert_data_for_template: + description: Indicates whether to use alert data as a template. + type: boolean + uuid: + description: >- + A universally unique identifier (UUID) for the + action. + type: string required: - - duration - - rRule + - id + - connector_type_id + - params type: array - tags: + active_snoozes: items: - description: The tags for the rule. + description: List of active snoozes for the rule. type: string type: array - throttle: - deprecated: true + alert_delay: + additionalProperties: false + description: >- + Indicates that an alert occurs only when the specified + number of consecutive runs met the rule conditions. + type: object + properties: + active: + description: >- + The number of consecutive runs that must meet the rule + conditions. + type: number + required: + - active + api_key_created_by_user: description: >- - Deprecated in 8.13.0. Use the `throttle` property in the - action `frequency` object instead. The throttle interval, - which defines how often an alert generates repeated - actions. NOTE: You cannot specify the throttle interval at - both the rule and action level. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. + Indicates whether the API key that is associated with the + rule was created by the user. nullable: true - type: string - updated_at: - description: The date and time that the rule was updated most recently. - type: string - updated_by: + type: boolean + api_key_owner: description: >- - The identifier for the user that updated this rule most - recently. + The owner of the API key that is associated with the rule + and used to run background tasks. nullable: true type: string - view_in_app_relative_url: - description: Relative URL to view rule in the app. + consumer: + description: >- + The name of the application or feature that owns the rule. + For example: `alerts`, `apm`, `discover`, + `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, + `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + type: string + created_at: + description: The date and time that the rule was created. + type: string + created_by: + description: The identifier for the user that created the rule. nullable: true type: string - required: - - id - - enabled - - name - - tags - - rule_type_id - - consumer - - schedule - - actions - - params - - created_by - - updated_by - - created_at - - updated_at - - api_key_owner - - mute_all - - muted_alert_ids - - execution_status - - revision - description: Indicates a successful call. - summary: Create a rule - tags: - - alerting - put: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D#1' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - actions: - default: [] - items: + enabled: + description: >- + Indicates whether you want to run the rule on an interval + basis after it is created. + type: boolean + execution_status: additionalProperties: false - description: An action that runs under defined conditions. type: object properties: - alerts_filter: - additionalProperties: false - type: object - properties: - query: - additionalProperties: false - type: object - properties: - dsl: - description: >- - A filter written in Elasticsearch Query Domain - Specific Language (DSL). - type: string - filters: - description: >- - A filter written in Elasticsearch Query Domain - Specific Language (DSL) as defined in the - `kbn-es-query` package. - items: - additionalProperties: false - type: object - properties: - $state: - additionalProperties: false - type: object - properties: - store: - description: >- - A filter can be either specific to an - application context or applied globally. - enum: - - appState - - globalState - type: string - required: - - store - meta: - additionalProperties: {} - type: object - query: - additionalProperties: {} - type: object - required: - - meta - type: array - kql: - description: >- - A filter written in Kibana Query Language - (KQL). - type: string - required: - - kql - - filters - timeframe: - additionalProperties: false - description: >- - Defines a period that limits whether the action - runs. - type: object - properties: - days: - description: >- - Defines the days of the week that the action - can run, represented as an array of numbers. - For example, `1` represents Monday. An empty - array is equivalent to specifying all the days - of the week. - items: - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - type: array - hours: - additionalProperties: false - description: >- - Defines the range of time in a day that the - action can run. If the `start` value is - `00:00` and the `end` value is `24:00`, - actions be generated all day. - type: object - properties: - end: - description: >- - The end of the time frame in 24-hour - notation (`hh:mm`). - type: string - start: - description: >- - The start of the time frame in 24-hour - notation (`hh:mm`). - type: string - required: - - start - - end - timezone: - description: >- - The ISO time zone for the `hours` values. - Values such as `UTC` and `UTC+1` also work but - lack built-in daylight savings time support - and are not recommended. - type: string - required: - - days - - hours - - timezone - frequency: + error: additionalProperties: false - type: object - properties: - notify_when: - description: >- - Indicates how often alerts generate actions. Valid - values include: `onActionGroupChange`: Actions run - when the alert status changes; `onActiveAlert`: - Actions run when the alert becomes active and at - each check interval while the rule conditions are - met; `onThrottleInterval`: Actions run when the - alert becomes active and at the interval specified - in the throttle property while the rule conditions - are met. NOTE: You cannot specify `notify_when` at - both the rule and action level. The recommended - method is to set it for each action. If you set it - at the rule level then update the rule in Kibana, - it is automatically changed to use action-specific - values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - type: string - summary: - description: Indicates whether the action is a summary. - type: boolean - throttle: - description: >- - The throttle interval, which defines how often an - alert generates repeated actions. It is specified - in seconds, minutes, hours, or days and is - applicable only if `notify_when` is set to - `onThrottleInterval`. NOTE: You cannot specify the - throttle interval at both the rule and action - level. The recommended method is to set it for - each action. If you set it at the rule level then - update the rule in Kibana, it is automatically - changed to use action-specific values. - nullable: true + type: object + properties: + message: + description: Error message. + type: string + reason: + description: Reason for error. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate type: string required: - - summary - - notify_when - - throttle - group: - description: >- - The group name, which affects when the action runs - (for example, when the threshold is met or when the - alert is recovered). Each rule type has a list of - valid action group names. If you don't need to group - actions, set to `default`. + - reason + - message + last_duration: + description: Duration of last execution of the rule. + type: number + last_execution_date: + description: The date and time when rule was executed last. type: string - id: - description: The identifier for the connector saved object. + status: + description: Status of rule execution. + enum: + - ok + - active + - error + - warning + - pending + - unknown type: string - params: - additionalProperties: {} - default: {} - description: >- - The parameters for the action, which are sent to the - connector. The `params` are handled as Mustache - templates and passed a default set of context. + warning: + additionalProperties: false type: object - use_alert_data_for_template: - description: Indicates whether to use alert data as a template. - type: boolean - uuid: - description: A universally unique identifier (UUID) for the action. - type: string + properties: + message: + description: Warning message. + type: string + reason: + description: Reason for warning. + enum: + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + type: string + required: + - reason + - message required: - - id - type: array - alert_delay: - additionalProperties: false - description: >- - Indicates that an alert occurs only when the specified - number of consecutive runs met the rule conditions. - type: object - properties: - active: - description: >- - The number of consecutive runs that must meet the rule - conditions. - type: number - required: - - active - name: - description: >- - The name of the rule. While this name does not have to be - unique, a distinctive name can help you identify a rule. - type: string - notify_when: - description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the alert - becomes active and at each check interval while the rule - conditions are met; `onThrottleInterval`: Actions run when - the alert becomes active and at the interval specified in - the throttle property while the rule conditions are met. - NOTE: You cannot specify `notify_when` at both the rule and - action level. The recommended method is to set it for each - action. If you set it at the rule level then update the rule - in Kibana, it is automatically changed to use - action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - nullable: true - type: string - params: - additionalProperties: {} - default: {} - description: The parameters for the rule. - type: object - schedule: - additionalProperties: false - type: object - properties: - interval: - description: >- - The interval is specified in seconds, minutes, hours, or - days. - type: string - required: - - interval - tags: - default: [] - items: - description: The tags for the rule. + - status + - last_execution_date + id: + description: The identifier for the rule. type: string - type: array - throttle: - description: >- - Use the `throttle` property in the action `frequency` object - instead. The throttle interval, which defines how often an - alert generates repeated actions. NOTE: You cannot specify - the throttle interval at both the rule and action level. If - you set it at the rule level then update the rule in Kibana, - it is automatically changed to use action-specific values. - nullable: true - type: string - required: - - name - - schedule - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - additionalProperties: false - type: object - properties: - actions: - items: - additionalProperties: false - type: object - properties: - alerts_filter: - additionalProperties: false - description: >- - Defines a period that limits whether the action - runs. - type: object - properties: - query: - additionalProperties: false - type: object - properties: - dsl: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL). - type: string - filters: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL) as defined in - the `kbn-es-query` package. - items: - additionalProperties: false - type: object - properties: - $state: - additionalProperties: false - type: object - properties: - store: - description: >- - A filter can be either specific to an - application context or applied globally. - enum: - - appState - - globalState - type: string - required: - - store - meta: - additionalProperties: {} - type: object - query: - additionalProperties: {} - type: object - required: - - meta - type: array - kql: - description: >- - A filter written in Kibana Query Language - (KQL). - type: string - required: - - kql - - filters - timeframe: + is_snoozed_until: + description: The date when the rule will no longer be snoozed. + nullable: true + type: string + last_run: + additionalProperties: false + nullable: true + type: object + properties: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: Number of ignored alerts during last run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: Number of recovered alerts during last run. + nullable: true + type: number + outcome: + description: >- + Outcome of last run of the rule. Value could be + succeeded, warning or failed. + enum: + - succeeded + - warning + - failed + type: string + outcome_msg: + items: + description: Outcome message generated during last rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true + type: string + required: + - outcome + - alerts_count + mapped_params: + additionalProperties: {} + type: object + monitoring: + additionalProperties: false + description: Monitoring details of the rule. + type: object + properties: + run: + additionalProperties: false + description: Rule run details. + type: object + properties: + calculated_metrics: + additionalProperties: false + description: >- + Calculation of different percentiles and success + ratio. + type: object + properties: + p50: + type: number + p95: + type: number + p99: + type: number + success_ratio: + type: number + required: + - success_ratio + history: + description: History of the rule run. + items: additionalProperties: false type: object properties: - days: - description: >- - Defines the days of the week that the action - can run, represented as an array of numbers. - For example, `1` represents Monday. An empty - array is equivalent to specifying all the - days of the week. - items: - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - type: array - hours: + duration: + description: Duration of the rule run. + type: number + outcome: additionalProperties: false type: object properties: - end: + alerts_count: + additionalProperties: false + type: object + properties: + active: + description: Number of active alerts during last run. + nullable: true + type: number + ignored: + description: >- + Number of ignored alerts during last + run. + nullable: true + type: number + new: + description: Number of new alerts during last run. + nullable: true + type: number + recovered: + description: >- + Number of recovered alerts during last + run. + nullable: true + type: number + outcome: description: >- - The end of the time frame in 24-hour - notation (`hh:mm`). + Outcome of last run of the rule. Value + could be succeeded, warning or failed. + enum: + - succeeded + - warning + - failed type: string - start: - description: >- - The start of the time frame in 24-hour - notation (`hh:mm`). + outcome_msg: + items: + description: >- + Outcome message generated during last + rule run. + type: string + nullable: true + type: array + outcome_order: + description: Order of the outcome. + type: number + warning: + description: Warning of last rule execution. + enum: + - read + - decrypt + - execute + - unknown + - license + - timeout + - disabled + - validate + - maxExecutableActions + - maxAlerts + - maxQueuedActions + - ruleExecution + nullable: true type: string required: - - start - - end - timezone: + - outcome + - alerts_count + success: description: >- - The ISO time zone for the `hours` values. - Values such as `UTC` and `UTC+1` also work - but lack built-in daylight savings time - support and are not recommended. - type: string + Indicates whether the rule run was + successful. + type: boolean + timestamp: + description: Time of rule run. + type: number required: - - days - - hours - - timezone - connector_type_id: - description: >- - The type of connector. This property appears in - responses but cannot be set in requests. + - success + - timestamp + type: array + last_run: + additionalProperties: false + type: object + properties: + metrics: + additionalProperties: false + type: object + properties: + duration: + description: Duration of most recent rule run. + type: number + gap_duration_s: + description: Duration in seconds of rule run gap. + nullable: true + type: number + total_alerts_created: + description: >- + Total number of alerts created during last + rule run. + nullable: true + type: number + total_alerts_detected: + description: >- + Total number of alerts detected during + last rule run. + nullable: true + type: number + total_indexing_duration_ms: + description: >- + Total time spent indexing documents during + last rule run in milliseconds. + nullable: true + type: number + total_search_duration_ms: + description: >- + Total time spent performing Elasticsearch + searches as measured by Kibana; includes + network latency and time spent serializing + or deserializing the request and response. + nullable: true + type: number + timestamp: + description: Time of the most recent rule run. + type: string + required: + - timestamp + - metrics + required: + - history + - calculated_metrics + - last_run + required: + - run + mute_all: + description: Indicates whether all alerts are muted. + type: boolean + muted_alert_ids: + items: + description: 'List of identifiers of muted alerts. ' + type: string + type: array + name: + description: ' The name of the rule.' + type: string + next_run: + description: Date and time of the next run of the rule. + nullable: true + type: string + notify_when: + description: >- + Indicates how often alerts generate actions. Valid values + include: `onActionGroupChange`: Actions run when the alert + status changes; `onActiveAlert`: Actions run when the + alert becomes active and at each check interval while the + rule conditions are met; `onThrottleInterval`: Actions run + when the alert becomes active and at the interval + specified in the throttle property while the rule + conditions are met. NOTE: You cannot specify `notify_when` + at both the rule and action level. The recommended method + is to set it for each action. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + nullable: true + type: string + params: + additionalProperties: {} + description: The parameters for the rule. + type: object + revision: + description: The rule revision number. + type: number + rule_type_id: + description: The rule type identifier. + type: string + running: + description: Indicates whether the rule is running. + nullable: true + type: boolean + schedule: + additionalProperties: false + type: object + properties: + interval: + description: >- + The interval is specified in seconds, minutes, hours, + or days. + type: string + required: + - interval + scheduled_task_id: + description: Identifier of the scheduled task. + type: string + snooze_schedule: + items: + additionalProperties: false + type: object + properties: + duration: + description: Duration of the rule snooze schedule. + type: number + id: + description: Identifier of the rule snooze schedule. type: string - frequency: + rRule: additionalProperties: false type: object properties: - notify_when: + byhour: + items: + description: Indicates hours of the day to recur. + type: number + type: array + byminute: + items: + description: Indicates minutes of the hour to recur. + type: number + type: array + bymonth: + items: + description: >- + Indicates months of the year that this rule + should recur. + type: number + type: array + bymonthday: + items: + description: Indicates the days of the month to recur. + type: number + type: array + bysecond: + items: + description: Indicates seconds of the day to recur. + type: number + type: array + bysetpos: + items: + description: >- + A positive or negative integer affecting the + nth day of the month. For example, -2 combined + with `byweekday` of FR is 2nd to last Friday + of the month. It is recommended to not set + this manually and just use `byweekday`. + type: number + type: array + byweekday: + items: + anyOf: + - type: string + - type: number + description: >- + Indicates the days of the week to recur or + else nth-day-of-month strings. For example, + "+2TU" second Tuesday of month, "-1FR" last + Friday of the month, which are internally + converted to a `byweekday/bysetpos` + combination. + type: array + byweekno: + items: + description: Indicates number of the week hours to recur. + type: number + type: array + byyearday: + items: + description: >- + Indicates the days of the year that this rule + should recur. + type: number + type: array + count: description: >- - Indicates how often alerts generate actions. - Valid values include: `onActionGroupChange`: - Actions run when the alert status changes; - `onActiveAlert`: Actions run when the alert - becomes active and at each check interval while - the rule conditions are met; - `onThrottleInterval`: Actions run when the alert - becomes active and at the interval specified in - the throttle property while the rule conditions - are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The - recommended method is to set it for each action. - If you set it at the rule level then update the - rule in Kibana, it is automatically changed to - use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval + Number of times the rule should recur until it + stops. + type: number + dtstart: + description: >- + Rule start date in Coordinated Universal Time + (UTC). type: string - summary: - description: Indicates whether the action is a summary. - type: boolean - throttle: + freq: description: >- - The throttle interval, which defines how often - an alert generates repeated actions. It is - specified in seconds, minutes, hours, or days - and is applicable only if 'notify_when' is set - to 'onThrottleInterval'. NOTE: You cannot - specify the throttle interval at both the rule - and action level. The recommended method is to - set it for each action. If you set it at the - rule level then update the rule in Kibana, it is - automatically changed to use action-specific - values. - nullable: true + Indicates frequency of the rule. Options are + YEARLY, MONTHLY, WEEKLY, DAILY. + enum: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + type: integer + interval: + description: >- + Indicates the interval of frequency. For + example, 1 and YEARLY is every 1 year, 2 and + WEEKLY is every 2 weeks. + type: number + tzid: + description: Indicates timezone abbreviation. + type: string + until: + description: Recur the rule until this date. + type: string + wkst: + description: 'Indicates the start of week, defaults to Monday.' + enum: + - MO + - TU + - WE + - TH + - FR + - SA + - SU type: string required: - - summary - - notify_when - - throttle - group: - description: >- - The group name, which affects when the action runs - (for example, when the threshold is met or when the - alert is recovered). Each rule type has a list of - valid action group names. If you don't need to group - actions, set to `default`. - type: string - id: - description: The identifier for the connector saved object. - type: string - params: - additionalProperties: {} - description: >- - The parameters for the action, which are sent to the - connector. The `params` are handled as Mustache - templates and passed a default set of context. - type: object - use_alert_data_for_template: - description: Indicates whether to use alert data as a template. - type: boolean - uuid: - description: >- - A universally unique identifier (UUID) for the - action. - type: string - required: - - id - - connector_type_id - - params - type: array - active_snoozes: - items: - description: List of active snoozes for the rule. - type: string - type: array - alert_delay: - additionalProperties: false - description: >- - Indicates that an alert occurs only when the specified - number of consecutive runs met the rule conditions. - type: object - properties: - active: - description: >- - The number of consecutive runs that must meet the rule - conditions. - type: number - required: - - active - api_key_created_by_user: - description: >- - Indicates whether the API key that is associated with the - rule was created by the user. - nullable: true - type: boolean - api_key_owner: + - dtstart + - tzid + skipRecurrences: + items: + description: Skips recurrence of rule on this date. + type: string + type: array + required: + - duration + - rRule + type: array + tags: + items: + description: The tags for the rule. + type: string + type: array + throttle: + deprecated: true description: >- - The owner of the API key that is associated with the rule - and used to run background tasks. + Deprecated in 8.13.0. Use the `throttle` property in the + action `frequency` object instead. The throttle interval, + which defines how often an alert generates repeated + actions. NOTE: You cannot specify the throttle interval at + both the rule and action level. If you set it at the rule + level then update the rule in Kibana, it is automatically + changed to use action-specific values. nullable: true type: string - consumer: - description: >- - The name of the application or feature that owns the rule. - For example: `alerts`, `apm`, `discover`, - `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, - `securitySolution`, `siem`, `stackAlerts`, or `uptime`. + updated_at: + description: The date and time that the rule was updated most recently. type: string - created_at: - description: The date and time that the rule was created. + updated_by: + description: >- + The identifier for the user that updated this rule most + recently. + nullable: true type: string - created_by: - description: The identifier for the user that created the rule. + view_in_app_relative_url: + description: Relative URL to view rule in the app. nullable: true type: string - enabled: - description: >- - Indicates whether you want to run the rule on an interval - basis after it is created. - type: boolean - execution_status: - additionalProperties: false + required: + - id + - enabled + - name + - tags + - rule_type_id + - consumer + - schedule + - actions + - params + - created_by + - updated_by + - created_at + - updated_at + - api_key_owner + - mute_all + - muted_alert_ids + - execution_status + - revision + description: Indicates a successful call. + summary: Get information about rules + tags: + - alerting + '/api/alerts/alert/{alertId}': + delete: + deprecated: true + description: > + Deprecated in 7.13.0. Use the delete rule API instead. WARNING: After + you delete an alert, you cannot recover it. + operationId: legaryDeleteAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Delete an alert + tags: + - alerting + get: + deprecated: true + description: Deprecated in 7.13.0. Use the get rule API instead. + operationId: legacyGetAlert + parameters: + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_alert_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get an alert by identifier + tags: + - alerting + post: + deprecated: true + description: Deprecated in 7.13.0. Use the create rule API instead. + operationId: legacyCreateAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: >- + An UUID v1 or v4 identifier for the alert. If this parameter is + omitted, the identifier is randomly generated. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + title: Legacy create alert request properties + type: object + properties: + actions: + items: + type: object + properties: + actionTypeId: + description: The identifier for the action type. + type: string + group: + description: > + Grouping actions is recommended for escalations for + different types of alert instances. If you don't need + this functionality, set it to `default`. + type: string + id: + description: The ID of the action saved object. + type: string + params: + description: > + The map to the `params` that the action type will + receive. `params` are handled as Mustache templates + and passed a default set of context. + type: object + required: + - actionTypeId + - group + - id + - params + type: array + alertTypeId: + description: >- + The ID of the alert type that you want to call when the + alert is scheduled to run. + type: string + consumer: + description: >- + The name of the application that owns the alert. This name + has to match the Kibana feature name, as that dictates the + required role-based access control privileges. + type: string + enabled: + description: >- + Indicates if you want to run the alert on an interval basis + after it is created. + type: boolean + name: + description: A name to reference and search. + type: string + notifyWhen: + description: The condition for throttling the notification. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + params: + description: >- + The parameters to pass to the alert type executor `params` + value. This will also validate against the alert type params + validator, if defined. + type: object + schedule: + description: > + The schedule specifying when this alert should be run. A + schedule is structured such that the key specifies the + format you wish to use and its value specifies the schedule. + type: object + properties: + interval: + description: >- + The interval format specifies the interval in seconds, + minutes, hours or days at which the alert should run. + example: 10s + type: string + tags: + description: A list of keywords to reference and search. + items: + type: string + type: array + throttle: + description: > + How often this alert should fire the same actions. This will + prevent the alert from sending out the same notification + over and over. For example, if an alert with a schedule of 1 + minute stays in a triggered state for 90 minutes, setting a + throttle of `10m` or `1h` will prevent it from sending 90 + notifications during this period. + type: string + required: + - alertTypeId + - consumer + - name + - notifyWhen + - params + - schedule + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_alert_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Create an alert + tags: + - alerting + put: + deprecated: true + description: Deprecated in 7.13.0. Use the update rule API instead. + operationId: legacyUpdateAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + title: Legacy update alert request properties + type: object + properties: + actions: + items: type: object properties: - error: - additionalProperties: false - type: object - properties: - message: - description: Error message. - type: string - reason: - description: Reason for error. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - type: string - required: - - reason - - message - last_duration: - description: Duration of last execution of the rule. - type: number - last_execution_date: - description: The date and time when rule was executed last. + actionTypeId: + description: The identifier for the action type. type: string - status: - description: Status of rule execution. - enum: - - ok - - active - - error - - warning - - pending - - unknown + group: + description: > + Grouping actions is recommended for escalations for + different types of alert instances. If you don't need + this functionality, set it to `default`. type: string - warning: - additionalProperties: false + id: + description: The ID of the action saved object. + type: string + params: + description: > + The map to the `params` that the action type will + receive. `params` are handled as Mustache templates + and passed a default set of context. type: object - properties: - message: - description: Warning message. - type: string - reason: - description: Reason for warning. - enum: - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - type: string - required: - - reason - - message required: - - status - - last_execution_date - id: - description: The identifier for the rule. - type: string - is_snoozed_until: - description: The date when the rule will no longer be snoozed. - nullable: true + - actionTypeId + - group + - id + - params + type: array + name: + description: A name to reference and search. + type: string + notifyWhen: + description: The condition for throttling the notification. + enum: + - onActionGroupChange + - onActiveAlert + - onThrottleInterval + type: string + params: + description: >- + The parameters to pass to the alert type executor `params` + value. This will also validate against the alert type params + validator, if defined. + type: object + schedule: + description: > + The schedule specifying when this alert should be run. A + schedule is structured such that the key specifies the + format you wish to use and its value specifies the schedule. + type: object + properties: + interval: + description: >- + The interval format specifies the interval in seconds, + minutes, hours or days at which the alert should run. + example: 1d + type: string + tags: + description: A list of keywords to reference and search. + items: type: string - last_run: - additionalProperties: false - nullable: true - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: Number of ignored alerts during last run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: Number of recovered alerts during last run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value could be - succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: Outcome message generated during last rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - mapped_params: - additionalProperties: {} - type: object - monitoring: - additionalProperties: false - description: Monitoring details of the rule. + type: array + throttle: + description: > + How often this alert should fire the same actions. This will + prevent the alert from sending out the same notification + over and over. For example, if an alert with a schedule of 1 + minute stays in a triggered state for 90 minutes, setting a + throttle of `10m` or `1h` will prevent it from sending 90 + notifications during this period. + type: string + required: + - name + - notifyWhen + - params + - schedule + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_alert_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Update an alert + tags: + - alerting + '/api/alerts/alert/{alertId}/_disable': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the disable rule API instead. + operationId: legacyDisableAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Disable an alert + tags: + - alerting + '/api/alerts/alert/{alertId}/_enable': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the enable rule API instead. + operationId: legacyEnableAlert + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Enable an alert + tags: + - alerting + '/api/alerts/alert/{alertId}/_mute_all': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the mute all alerts API instead. + operationId: legacyMuteAllAlertInstances + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Mute all alert instances + tags: + - alerting + '/api/alerts/alert/{alertId}/_unmute_all': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the unmute all alerts API instead. + operationId: legacyUnmuteAllAlertInstances + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: The identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Unmute all alert instances + tags: + - alerting + '/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_mute': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the mute alert API instead. + operationId: legacyMuteAlertInstance + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: An identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + - description: An identifier for the alert instance. + in: path + name: alertInstanceId + required: true + schema: + example: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Mute an alert instance + tags: + - alerting + '/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_unmute': + post: + deprecated: true + description: Deprecated in 7.13.0. Use the unmute alert API instead. + operationId: legacyUnmuteAlertInstance + parameters: + - $ref: '#/components/parameters/Alerting_kbn_xsrf' + - description: An identifier for the alert. + in: path + name: alertId + required: true + schema: + example: 41893910-6bca-11eb-9e0d-85d233e3ee35 + type: string + - description: An identifier for the alert instance. + in: path + name: alertInstanceId + required: true + schema: + example: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 + type: string + responses: + '204': + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Unmute an alert instance + tags: + - alerting + /api/alerts/alerts/_find: + get: + deprecated: true + description: > + Deprecated in 7.13.0. Use the find rules API instead. NOTE: Alert + `params` are stored as a flattened field type and analyzed as keywords. + As alerts change in Kibana, the results on each page of the response + also change. Use the find API for traditional paginated results, but + avoid using it to export large amounts of data. + operationId: legacyFindAlerts + parameters: + - description: The default operator to use for the `simple_query_string`. + example: OR + in: query + name: default_search_operator + schema: + default: OR + type: string + - description: The fields to return in the `attributes` key of the response. + in: query + name: fields + schema: + items: + type: string + type: array + - description: > + A KQL string that you filter with an attribute from your saved + object. It should look like `savedObjectType.attributes.title: + "myTitle"`. However, if you used a direct attribute of a saved + object, such as `updatedAt`, you must define your filter, for + example, `savedObjectType.updatedAt > 2018-12-22`. + in: query + name: filter + schema: + type: string + - description: >- + Filters the rules that have a relation with the reference objects + with a specific type and identifier. + in: query + name: has_reference + schema: + type: object + properties: + id: + type: string + type: + type: string + - description: The page number to return. + example: 1 + in: query + name: page + schema: + default: 1 + type: integer + - description: The number of alerts to return per page. + example: 20 + in: query + name: per_page + schema: + default: 20 + type: integer + - description: >- + An Elasticsearch `simple_query_string` query that filters the alerts + in the response. + in: query + name: search + schema: + type: string + - description: >- + The fields to perform the `simple_query_string` parsed query + against. + in: query + name: search_fields + schema: + oneOf: + - type: string + - items: + type: string + type: array + - description: > + Determines which field is used to sort the results. The field must + exist in the `attributes` key of the response. + in: query + name: sort_field + schema: + type: string + - description: Determines the sort order. + example: asc + in: query + name: sort_order + schema: + default: desc + enum: + - asc + - desc + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + data: + items: + $ref: '#/components/schemas/Alerting_alert_response_properties' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get a paginated set of alerts + tags: + - alerting + /api/alerts/alerts/_health: + get: + deprecated: true + description: Deprecated in 7.13.0. Use the get alerting framework health API instead. + operationId: legacyGetAlertingHealth + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + alertingFrameworkHealth: + description: > + Three substates identify the health of the alerting + framework: `decryptionHealth`, `executionHealth`, and + `readHealth`. type: object properties: - run: - additionalProperties: false - description: Rule run details. + decryptionHealth: + description: The timestamp and status of the alert decryption. type: object properties: - calculated_metrics: - additionalProperties: false - description: >- - Calculation of different percentiles and success - ratio. + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + executionHealth: + description: The timestamp and status of the alert execution. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + readHealth: + description: The timestamp and status of the alert reading events. + type: object + properties: + status: + enum: + - error + - ok + - warn + example: ok + type: string + timestamp: + example: '2023-01-13T01:28:00.280Z' + format: date-time + type: string + hasPermanentEncryptionKey: + description: >- + If `false`, the encrypted saved object plugin does not + have a permanent encryption key. + example: true + type: boolean + isSufficientlySecure: + description: 'If `false`, security is enabled but TLS is not.' + example: true + type: boolean + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get the alerting framework health + tags: + - alerting + /api/alerts/alerts/list_alert_types: + get: + deprecated: true + description: Deprecated in 7.13.0. Use the get rule types API instead. + operationId: legacyGetAlertTypes + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + properties: + actionGroups: + description: > + An explicit list of groups for which the alert type can + schedule actions, each with the action group's unique ID + and human readable name. Alert actions validation uses + this configuration to ensure that groups are valid. + items: + type: object + properties: + id: + type: string + name: + type: string + type: array + actionVariables: + description: > + A list of action variables that the alert type makes + available via context and state in action parameter + templates, and a short human readable description. The + Alert UI will use this information to prompt users for + these variables in action parameter editors. + type: object + properties: + context: + items: type: object properties: - p50: - type: number - p95: - type: number - p99: - type: number - success_ratio: - type: number - required: - - success_ratio - history: - description: History of the rule run. - items: - additionalProperties: false - type: object - properties: - duration: - description: Duration of the rule run. - type: number - outcome: - additionalProperties: false - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: >- - Number of ignored alerts during last - run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: >- - Number of recovered alerts during last - run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value - could be succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: >- - Outcome message generated during last - rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - success: - description: >- - Indicates whether the rule run was - successful. - type: boolean - timestamp: - description: Time of rule run. - type: number - required: - - success - - timestamp - type: array - last_run: - additionalProperties: false + description: + type: string + name: + type: string + type: array + params: + items: type: object properties: - metrics: - additionalProperties: false - type: object - properties: - duration: - description: Duration of most recent rule run. - type: number - gap_duration_s: - description: Duration in seconds of rule run gap. - nullable: true - type: number - total_alerts_created: - description: >- - Total number of alerts created during last - rule run. - nullable: true - type: number - total_alerts_detected: - description: >- - Total number of alerts detected during - last rule run. - nullable: true - type: number - total_indexing_duration_ms: - description: >- - Total time spent indexing documents during - last rule run in milliseconds. - nullable: true - type: number - total_search_duration_ms: - description: >- - Total time spent performing Elasticsearch - searches as measured by Kibana; includes - network latency and time spent serializing - or deserializing the request and response. - nullable: true - type: number - timestamp: - description: Time of the most recent rule run. + description: type: string - required: - - timestamp - - metrics - required: - - history - - calculated_metrics - - last_run - required: - - run - mute_all: - description: Indicates whether all alerts are muted. - type: boolean - muted_alert_ids: - items: - description: 'List of identifiers of muted alerts. ' + name: + type: string + type: array + state: + items: + type: object + properties: + description: + type: string + name: + type: string + type: array + authorizedConsumers: + description: >- + The list of the plugins IDs that have access to the + alert type. + type: object + defaultActionGroupId: + description: The default identifier for the alert type group. type: string - type: array + enabledInLicense: + description: >- + Indicates whether the rule type is enabled based on the + subscription. + type: boolean + id: + description: The unique identifier for the alert type. + type: string + isExportable: + description: >- + Indicates whether the alert type is exportable in Saved + Objects Management UI. + type: boolean + minimumLicenseRequired: + description: The subscriptions required to use the alert type. + type: string + name: + description: The descriptive name of the alert type. + type: string + producer: + description: >- + An identifier for the application that produces this + alert type. + type: string + recoveryActionGroup: + description: > + An action group to use when an alert instance goes from + an active state to an inactive one. If it is not + specified, the default recovered action group is used. + type: object + properties: + id: + type: string + name: + type: string + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Alerting_401_response' + description: Authorization information is missing or invalid. + summary: Get the alert types + tags: + - alerting + /api/apm/agent_keys: + post: + description: Create a new agent key for APM. + operationId: createAgentKey + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + privileges: + items: + enum: + - 'event:write' + - 'config_agent:read' + type: string + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + api_key: + type: string + encoded: + type: string + expiration: + format: int64 + type: integer + id: + type: string name: - description: ' The name of the rule.' type: string - next_run: - description: Date and time of the next run of the rule. - nullable: true + description: Agent key created successfully + summary: Create an APM agent key + tags: + - APM agent keys + '/api/apm/services/{serviceName}/annotation': + post: + description: Create a new annotation for a specific service. + operationId: createAnnotation + parameters: + - description: The name of the service + in: path + name: serviceName + required: true + schema: + type: string + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + '@timestamp': + type: string + message: + type: string + service: + type: object + properties: + environment: + type: string + version: + type: string + tags: + items: type: string - notify_when: - description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the - alert becomes active and at each check interval while the - rule conditions are met; `onThrottleInterval`: Actions run - when the alert becomes active and at the interval - specified in the throttle property while the rule - conditions are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The recommended method - is to set it for each action. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - nullable: true + type: array + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + _id: type: string - params: - additionalProperties: {} - description: The parameters for the rule. - type: object - revision: - description: The rule revision number. - type: number - rule_type_id: - description: The rule type identifier. + _index: type: string - running: - description: Indicates whether the rule is running. - nullable: true - type: boolean - schedule: - additionalProperties: false + _source: type: object properties: - interval: - description: >- - The interval is specified in seconds, minutes, hours, - or days. + '@timestamp': + type: string + annotation: + type: string + event: + type: object + properties: + created: + type: string + message: type: string - required: - - interval - scheduled_task_id: - description: Identifier of the scheduled task. - type: string - snooze_schedule: + service: + type: object + properties: + environment: + type: string + name: + type: string + version: + type: string + tags: + items: + type: string + type: array + description: Annotation created successfully + summary: Create a service annotation + tags: + - APM annotations + '/api/apm/services/{serviceName}/annotation/search': + get: + description: Search for annotations related to a specific service. + operationId: getAnnotation + parameters: + - description: The name of the service + in: path + name: serviceName + required: true + schema: + type: string + - description: The environment to filter annotations by + in: query + name: environment + required: false + schema: + type: string + - description: The start date for the search + in: query + name: start + required: false + schema: + type: string + - description: The end date for the search + in: query + name: end + required: false + schema: + type: string + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + annotations: items: - additionalProperties: false type: object properties: - duration: - description: Duration of the rule snooze schedule. + '@timestamp': type: number id: - description: Identifier of the rule snooze schedule. type: string - rRule: - additionalProperties: false - type: object - properties: - byhour: - items: - description: Indicates hours of the day to recur. - type: number - type: array - byminute: - items: - description: Indicates minutes of the hour to recur. - type: number - type: array - bymonth: - items: - description: >- - Indicates months of the year that this rule - should recur. - type: number - type: array - bymonthday: - items: - description: Indicates the days of the month to recur. - type: number - type: array - bysecond: - items: - description: Indicates seconds of the day to recur. - type: number - type: array - bysetpos: - items: - description: >- - A positive or negative integer affecting the - nth day of the month. For example, -2 combined - with `byweekday` of FR is 2nd to last Friday - of the month. It is recommended to not set - this manually and just use `byweekday`. - type: number - type: array - byweekday: - items: - anyOf: - - type: string - - type: number - description: >- - Indicates the days of the week to recur or - else nth-day-of-month strings. For example, - "+2TU" second Tuesday of month, "-1FR" last - Friday of the month, which are internally - converted to a `byweekday/bysetpos` - combination. - type: array - byweekno: - items: - description: Indicates number of the week hours to recur. - type: number - type: array - byyearday: - items: - description: >- - Indicates the days of the year that this rule - should recur. - type: number - type: array - count: - description: >- - Number of times the rule should recur until it - stops. - type: number - dtstart: - description: >- - Rule start date in Coordinated Universal Time - (UTC). - type: string - freq: - description: >- - Indicates frequency of the rule. Options are - YEARLY, MONTHLY, WEEKLY, DAILY. - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - type: integer - interval: - description: >- - Indicates the interval of frequency. For - example, 1 and YEARLY is every 1 year, 2 and - WEEKLY is every 2 weeks. - type: number - tzid: - description: Indicates timezone abbreviation. - type: string - until: - description: Recur the rule until this date. - type: string - wkst: - description: 'Indicates the start of week, defaults to Monday.' - enum: - - MO - - TU - - WE - - TH - - FR - - SA - - SU - type: string - required: - - dtstart - - tzid - skipRecurrences: - items: - description: Skips recurrence of rule on this date. - type: string - type: array - required: - - duration - - rRule - type: array - tags: - items: - description: The tags for the rule. - type: string + text: + type: string + type: + enum: + - version + type: string type: array - throttle: - deprecated: true - description: >- - Deprecated in 8.13.0. Use the `throttle` property in the - action `frequency` object instead. The throttle interval, - which defines how often an alert generates repeated - actions. NOTE: You cannot specify the throttle interval at - both the rule and action level. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. - nullable: true - type: string - updated_at: - description: The date and time that the rule was updated most recently. - type: string - updated_by: - description: >- - The identifier for the user that updated this rule most - recently. - nullable: true - type: string - view_in_app_relative_url: - description: Relative URL to view rule in the app. - nullable: true - type: string - required: - - id - - enabled - - name - - tags - - rule_type_id - - consumer - - schedule - - actions - - params - - created_by - - updated_by - - created_at - - updated_at - - api_key_owner - - mute_all - - muted_alert_ids - - execution_status - - revision + description: Successful response + summary: Search for annotations + tags: + - APM annotations + /api/cases: + delete: + description: > + You must have `read` or `all` privileges and the `delete` sub-feature + privilege for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases you're deleting. + operationId: deleteCaseDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_ids' + responses: + '204': description: Indicates a successful call. - summary: Update a rule + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Delete cases tags: - - alerting - '/api/alerting/rule/{id}/_disable': - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_disable#0' + - cases + patch: + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the + Kibana feature privileges, depending on the owner of the case you're + updating. + operationId: updateCaseDefaultSpace parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string + - $ref: '#/components/parameters/Cases_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseRequest: + $ref: '#/components/examples/Cases_update_case_request' schema: - additionalProperties: false - nullable: true - type: object - properties: - untrack: - description: Defines whether this rule's alerts should be untracked. - type: boolean - x-oas-optional: true + $ref: '#/components/schemas/Cases_update_case_request' responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseResponse: + $ref: '#/components/examples/Cases_update_case_response' + schema: + items: + $ref: '#/components/schemas/Cases_case_response_properties' + type: array description: Indicates a successful call. - summary: Disable a rule + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Update cases tags: - - alerting - '/api/alerting/rule/{id}/_enable': + - cases post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_enable#0' + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the + Kibana feature privileges, depending on the owner of the case you're + creating. + operationId: createCaseDefaultSpace parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string + - $ref: '#/components/parameters/Cases_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createCaseRequest: + $ref: '#/components/examples/Cases_create_case_request' + schema: + $ref: '#/components/schemas/Cases_create_case_request' + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createCaseResponse: + $ref: '#/components/examples/Cases_create_case_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Create a case + tags: + - cases + /api/cases/_find: + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases you're seeking. + operationId: findCasesDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_assignees' + - $ref: '#/components/parameters/Cases_category' + - $ref: '#/components/parameters/Cases_defaultSearchOperator' + - $ref: '#/components/parameters/Cases_from' + - $ref: '#/components/parameters/Cases_owner' + - $ref: '#/components/parameters/Cases_page_index' + - $ref: '#/components/parameters/Cases_page_size' + - $ref: '#/components/parameters/Cases_reporters' + - $ref: '#/components/parameters/Cases_search' + - $ref: '#/components/parameters/Cases_searchFields' + - $ref: '#/components/parameters/Cases_severity' + - $ref: '#/components/parameters/Cases_sortField' + - $ref: '#/components/parameters/Cases_sort_order' + - $ref: '#/components/parameters/Cases_status' + - $ref: '#/components/parameters/Cases_tags' + - $ref: '#/components/parameters/Cases_to' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + findCaseResponse: + $ref: '#/components/examples/Cases_find_case_response' + schema: + type: object + properties: + cases: + items: + $ref: '#/components/schemas/Cases_case_response_properties' + maxItems: 10000 + type: array + count_closed_cases: + type: integer + count_in_progress_cases: + type: integer + count_open_cases: + type: integer + page: + type: integer + per_page: + type: integer + total: + type: integer + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Search cases + tags: + - cases + '/api/cases/{caseId}': + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the case you're seeking. + operationId: getCaseDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_includeComments' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDefaultCaseResponse: + $ref: '#/components/examples/Cases_get_case_response' + getDefaultObservabilityCaseReponse: + $ref: '#/components/examples/Cases_get_case_observability_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case information + tags: + - cases + '/api/cases/{caseId}/alerts': + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases you're seeking. + operationId: getCaseAlertsDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getCaseAlertsResponse: + $ref: '#/components/examples/Cases_get_case_alerts_response' + schema: + items: + $ref: '#/components/schemas/Cases_alert_response_properties' + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get all alerts for a case + tags: + - cases + x-technical-preview: true + '/api/cases/{caseId}/comments': + delete: + description: > + Deletes all comments and alerts from a case. You must have `all` + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases you're deleting. + operationId: deleteCaseCommentsDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_case_id' responses: '204': description: Indicates a successful call. - summary: Enable a rule + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Delete all case comments and alerts tags: - - alerting - '/api/alerting/rule/{id}/_mute_all': - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_mute_all#0' + - cases + get: + deprecated: true + description: > + Deprecated in 8.1.0. This API is deprecated and will be removed in a + future release; instead, use the get case comment API, which requires a + comment identifier in the path. You must have `read` privileges for the + **Cases** feature in the **Management**, **Observability**, or + **Security** section of the Kibana feature privileges, depending on the + owner of the cases with the comments you're seeking. + operationId: getAllCaseCommentsDefaultSpace parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string + - $ref: '#/components/parameters/Cases_case_id' responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_case_response_properties' description: Indicates a successful call. - summary: Mute all alerts + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get all case comments tags: - - alerting - '/api/alerting/rule/{id}/_unmute_all': - post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_unmute_all#0' + - cases + patch: + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the case you're updating. + NOTE: You cannot change the comment type or the owner of a comment. + operationId: updateCaseCommentDefaultSpace parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_case_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseCommentRequest: + $ref: '#/components/examples/Cases_update_comment_request' + schema: + $ref: '#/components/schemas/Cases_update_case_comment_request' + required: true responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseCommentResponse: + $ref: '#/components/examples/Cases_update_comment_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' description: Indicates a successful call. - summary: Unmute all alerts + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Update a case comment or alert tags: - - alerting - '/api/alerting/rule/{id}/_update_api_key': + - cases post: - operationId: '%2Fapi%2Falerting%2Frule%2F%7Bid%7D%2F_update_api_key#0' + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the case you're creating. + NOTE: Each case can have a maximum of 1,000 alerts. + operationId: addCaseCommentDefaultSpace parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: id - required: true - schema: - type: string + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_case_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createCaseCommentRequest: + $ref: '#/components/examples/Cases_add_comment_request' + schema: + $ref: '#/components/schemas/Cases_add_case_comment_request' + required: true responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createCaseCommentResponse: + $ref: '#/components/examples/Cases_add_comment_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' description: Indicates a successful call. - summary: Update the API key for a rule + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Add a case comment or alert tags: - - alerting - '/api/alerting/rule/{rule_id}/alert/{alert_id}/_mute': - post: - operationId: >- - %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_mute#0 + - cases + '/api/cases/{caseId}/comments/_find': + get: + description: > + Retrieves a paginated list of comments for a case. You must have `read` + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases with the comments you're + seeking. + operationId: findCaseCommentsDefaultSpace parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: rule_id - required: true - schema: - type: string - - description: The identifier for the alert. - in: path - name: alert_id - required: true - schema: - type: string + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_page_index' + - $ref: '#/components/parameters/Cases_page_size' + - $ref: '#/components/parameters/Cases_sort_order' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_case_response_properties' + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Find case comments and alerts + tags: + - cases + '/api/cases/{caseId}/comments/{commentId}': + delete: + description: > + You must have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases you're deleting. + operationId: deleteCaseCommentDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_comment_id' responses: '204': description: Indicates a successful call. - summary: Mute an alert + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Delete a case comment or alert tags: - - alerting - '/api/alerting/rule/{rule_id}/alert/{alert_id}/_unmute': + - cases + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases with the + comments you're seeking. + operationId: getCaseCommentDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_comment_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getCaseCommentResponse: + $ref: '#/components/examples/Cases_get_comment_response' + schema: + oneOf: + - $ref: >- + #/components/schemas/Cases_alert_comment_response_properties + - $ref: >- + #/components/schemas/Cases_user_comment_response_properties + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get a case comment or alert + tags: + - cases + '/api/cases/{caseId}/connector/{connectorId}/_push': post: - operationId: >- - %2Fapi%2Falerting%2Frule%2F%7Brule_id%7D%2Falert%2F%7Balert_id%7D%2F_unmute#0 + description: > + You must have `all` privileges for the **Actions and Connectors** + feature in the **Management** section of the Kibana feature privileges. + You must also have `all` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the case you're pushing. + operationId: pushCaseDefaultSpace parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: A required header to protect against CSRF attacks - in: header - name: kbn-xsrf - required: true - schema: - example: 'true' - type: string - - description: The identifier for the rule. - in: path - name: rule_id - required: true - schema: - type: string - - description: The identifier for the alert. - in: path - name: alert_id - required: true - schema: - type: string + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_connector_id' + - $ref: '#/components/parameters/Cases_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + nullable: true + type: object responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + pushCaseResponse: + $ref: '#/components/examples/Cases_push_case_response' + schema: + $ref: '#/components/schemas/Cases_case_response_properties' description: Indicates a successful call. - summary: Unmute an alert + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Push a case to an external service tags: - - alerting - /api/alerting/rules/_find: + - cases + '/api/cases/{caseId}/user_actions': get: - operationId: '%2Fapi%2Falerting%2Frules%2F_find#0' + deprecated: true + description: > + Returns all user activity for a case. Deprecated in 8.1.0. This API is + deprecated and will be removed in a future release; use the find user + actions API instead. You must have `read` privileges for the **Cases** + feature in the **Management**, **Observability**, or **Security** + section of the Kibana feature privileges, depending on the owner of the + case you're seeking. + operationId: getCaseActivityDefaultSpace parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: The number of rules to return per page. - in: query - name: per_page - required: false - schema: - default: 10 - minimum: 0 - type: number - - description: The page number to return. - in: query - name: page - required: false - schema: - default: 1 - minimum: 1 - type: number - - description: >- - An Elasticsearch simple_query_string query that filters the objects - in the response. - in: query - name: search - required: false - schema: - type: string - - description: The default operator to use for the simple_query_string. - in: query - name: default_search_operator - required: false - schema: - default: OR - enum: - - OR - - AND - type: string - - description: The fields to perform the simple_query_string parsed query against. - in: query - name: search_fields - required: false - schema: - anyOf: - - items: - type: string + - $ref: '#/components/parameters/Cases_case_id' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + $ref: '#/components/schemas/Cases_user_actions_response_properties' type: array - - type: string - - description: >- - Determines which field is used to sort the results. The field must - exist in the `attributes` key of the response. - in: query - name: sort_field - required: false - schema: - type: string - - description: Determines the sort order. - in: query - name: sort_order - required: false - schema: - enum: - - asc - - desc - type: string - - description: >- - Filters the rules that have a relation with the reference objects - with a specific type and identifier. - in: query - name: has_reference - required: false - schema: - additionalProperties: false - nullable: true - type: object - properties: - id: - type: string - type: - type: string - required: - - type - - id - - in: query - name: fields - required: false - schema: - items: - description: The fields to return in the `attributes` key of the response. - type: string - type: array - - description: >- - A KQL string that you filter with an attribute from your saved - object. It should look like `savedObjectType.attributes.title: - "myTitle"`. However, if you used a direct attribute of a saved - object, such as `updatedAt`, you must define your filter, for - example, `savedObjectType.updatedAt > 2018-12-22`. - in: query - name: filter - required: false - schema: - type: string - - in: query - name: filter_consumers - required: false - schema: - items: - description: List of consumers to filter. - type: string - type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case activity + tags: + - cases + '/api/cases/{caseId}/user_actions/_find': + get: + description: > + Retrives a paginated list of user activity for a case. You must have + `read` privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the case you're seeking. + operationId: findCaseActivityDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Cases_page_index' + - $ref: '#/components/parameters/Cases_page_size' + - $ref: '#/components/parameters/Cases_sort_order' + - $ref: '#/components/parameters/Cases_user_action_types' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + findCaseActivityResponse: + $ref: '#/components/examples/Cases_find_case_activity_response' schema: - additionalProperties: false type: object properties: - actions: + page: + type: integer + perPage: + type: integer + total: + type: integer + userActions: items: - additionalProperties: false - type: object - properties: - alerts_filter: - additionalProperties: false - description: >- - Defines a period that limits whether the action - runs. - type: object - properties: - query: - additionalProperties: false - type: object - properties: - dsl: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL). - type: string - filters: - description: >- - A filter written in Elasticsearch Query - Domain Specific Language (DSL) as defined in - the `kbn-es-query` package. - items: - additionalProperties: false - type: object - properties: - $state: - additionalProperties: false - type: object - properties: - store: - description: >- - A filter can be either specific to an - application context or applied globally. - enum: - - appState - - globalState - type: string - required: - - store - meta: - additionalProperties: {} - type: object - query: - additionalProperties: {} - type: object - required: - - meta - type: array - kql: - description: >- - A filter written in Kibana Query Language - (KQL). - type: string - required: - - kql - - filters - timeframe: - additionalProperties: false - type: object - properties: - days: - description: >- - Defines the days of the week that the action - can run, represented as an array of numbers. - For example, `1` represents Monday. An empty - array is equivalent to specifying all the - days of the week. - items: - enum: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - type: integer - type: array - hours: - additionalProperties: false - type: object - properties: - end: - description: >- - The end of the time frame in 24-hour - notation (`hh:mm`). - type: string - start: - description: >- - The start of the time frame in 24-hour - notation (`hh:mm`). - type: string - required: - - start - - end - timezone: - description: >- - The ISO time zone for the `hours` values. - Values such as `UTC` and `UTC+1` also work - but lack built-in daylight savings time - support and are not recommended. - type: string - required: - - days - - hours - - timezone - connector_type_id: - description: >- - The type of connector. This property appears in - responses but cannot be set in requests. - type: string - frequency: - additionalProperties: false - type: object - properties: - notify_when: - description: >- - Indicates how often alerts generate actions. - Valid values include: `onActionGroupChange`: - Actions run when the alert status changes; - `onActiveAlert`: Actions run when the alert - becomes active and at each check interval while - the rule conditions are met; - `onThrottleInterval`: Actions run when the alert - becomes active and at the interval specified in - the throttle property while the rule conditions - are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The - recommended method is to set it for each action. - If you set it at the rule level then update the - rule in Kibana, it is automatically changed to - use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - type: string - summary: - description: Indicates whether the action is a summary. - type: boolean - throttle: - description: >- - The throttle interval, which defines how often - an alert generates repeated actions. It is - specified in seconds, minutes, hours, or days - and is applicable only if 'notify_when' is set - to 'onThrottleInterval'. NOTE: You cannot - specify the throttle interval at both the rule - and action level. The recommended method is to - set it for each action. If you set it at the - rule level then update the rule in Kibana, it is - automatically changed to use action-specific - values. - nullable: true - type: string - required: - - summary - - notify_when - - throttle - group: - description: >- - The group name, which affects when the action runs - (for example, when the threshold is met or when the - alert is recovered). Each rule type has a list of - valid action group names. If you don't need to group - actions, set to `default`. - type: string - id: - description: The identifier for the connector saved object. - type: string - params: - additionalProperties: {} + $ref: >- + #/components/schemas/Cases_user_actions_find_response_properties + maxItems: 10000 + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Find case activity + tags: + - cases + '/api/cases/alerts/{alertId}': + get: + description: > + You must have `read` privileges for the **Cases** feature in the + **Management**, **Observability**, or **Security** section of the Kibana + feature privileges, depending on the owner of the cases you're seeking. + operationId: getCasesByAlertDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_alert_id' + - $ref: '#/components/parameters/Cases_owner' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + example: + - id: 06116b80-e1c3-11ec-be9b-9b1838238ee6 + title: security_case + items: + type: object + properties: + id: + description: The case identifier. + type: string + title: + description: The case title. + type: string + maxItems: 10000 + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get cases for an alert + tags: + - cases + x-technical-preview: true + /api/cases/configure: + get: + description: > + Get setting details such as the closure type, custom fields, templatse, + and the default connector for cases. You must have `read` privileges for + the **Cases** feature in the **Management**, **Observability**, or + **Security** section of the Kibana feature privileges, depending on + where the cases were created. + operationId: getCaseConfigurationDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_owner' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getConfigurationResponse: + $ref: '#/components/examples/Cases_get_case_configuration_response' + schema: + items: + type: object + properties: + closure_type: + $ref: '#/components/schemas/Cases_closure_types' + connector: + type: object + properties: + fields: description: >- - The parameters for the action, which are sent to the - connector. The `params` are handled as Mustache - templates and passed a default set of context. + The fields specified in the case configuration are + not used and are not propagated to individual cases, + therefore it is recommended to set it to `null`. + nullable: true type: object - use_alert_data_for_template: - description: Indicates whether to use alert data as a template. - type: boolean - uuid: + id: description: >- - A universally unique identifier (UUID) for the - action. - type: string - required: - - id - - connector_type_id - - params - type: array - active_snoozes: - items: - description: List of active snoozes for the rule. - type: string - type: array - alert_delay: - additionalProperties: false - description: >- - Indicates that an alert occurs only when the specified - number of consecutive runs met the rule conditions. - type: object - properties: - active: - description: >- - The number of consecutive runs that must meet the rule - conditions. - type: number - required: - - active - api_key_created_by_user: - description: >- - Indicates whether the API key that is associated with the - rule was created by the user. - nullable: true - type: boolean - api_key_owner: - description: >- - The owner of the API key that is associated with the rule - and used to run background tasks. - nullable: true - type: string - consumer: - description: >- - The name of the application or feature that owns the rule. - For example: `alerts`, `apm`, `discover`, - `infrastructure`, `logs`, `metrics`, `ml`, `monitoring`, - `securitySolution`, `siem`, `stackAlerts`, or `uptime`. - type: string - created_at: - description: The date and time that the rule was created. - type: string - created_by: - description: The identifier for the user that created the rule. - nullable: true - type: string - enabled: - description: >- - Indicates whether you want to run the rule on an interval - basis after it is created. - type: boolean - execution_status: - additionalProperties: false - type: object - properties: - error: - additionalProperties: false - type: object - properties: - message: - description: Error message. - type: string - reason: - description: Reason for error. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - type: string - required: - - reason - - message - last_duration: - description: Duration of last execution of the rule. - type: number - last_execution_date: - description: The date and time when rule was executed last. - type: string - status: - description: Status of rule execution. - enum: - - ok - - active - - error - - warning - - pending - - unknown - type: string - warning: - additionalProperties: false - type: object - properties: - message: - description: Warning message. - type: string - reason: - description: Reason for warning. - enum: - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - type: string - required: - - reason - - message - required: - - status - - last_execution_date - id: - description: The identifier for the rule. - type: string - is_snoozed_until: - description: The date when the rule will no longer be snoozed. - nullable: true - type: string - last_run: - additionalProperties: false - nullable: true - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: Number of ignored alerts during last run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: Number of recovered alerts during last run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value could be - succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: Outcome message generated during last rule run. + The identifier for the connector. If you do not want + a default connector, use `none`. To retrieve + connector IDs, use the find connectors API. + example: none type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - mapped_params: - additionalProperties: {} - type: object - monitoring: - additionalProperties: false - description: Monitoring details of the rule. - type: object - properties: - run: - additionalProperties: false - description: Rule run details. + name: + description: >- + The name of the connector. If you do not want a + default connector, use `none`. To retrieve connector + names, use the find connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + created_at: + example: '2022-06-01T17:07:17.767Z' + format: date-time + type: string + created_by: + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + customFields: + description: Custom fields configuration details. + items: type: object properties: - calculated_metrics: - additionalProperties: false + defaultValue: + description: > + A default value for the custom field. If the + `type` is `text`, the default value must be a + string. If the `type` is `toggle`, the default + value must be boolean. + oneOf: + - type: string + - type: boolean + key: + description: > + A unique key for the custom field. Must be lower + case and composed only of a-z, 0-9, '_', and '-' + characters. It is used in API calls to refer to a + specific custom field. + maxLength: 36 + minLength: 1 + type: string + label: description: >- - Calculation of different percentiles and success - ratio. - type: object - properties: - p50: - type: number - p95: - type: number - p99: - type: number - success_ratio: - type: number - required: - - success_ratio - history: - description: History of the rule run. - items: - additionalProperties: false - type: object - properties: - duration: - description: Duration of the rule run. - type: number - outcome: - additionalProperties: false - type: object - properties: - alerts_count: - additionalProperties: false - type: object - properties: - active: - description: Number of active alerts during last run. - nullable: true - type: number - ignored: - description: >- - Number of ignored alerts during last - run. - nullable: true - type: number - new: - description: Number of new alerts during last run. - nullable: true - type: number - recovered: - description: >- - Number of recovered alerts during last - run. - nullable: true - type: number - outcome: - description: >- - Outcome of last run of the rule. Value - could be succeeded, warning or failed. - enum: - - succeeded - - warning - - failed - type: string - outcome_msg: - items: - description: >- - Outcome message generated during last - rule run. - type: string - nullable: true - type: array - outcome_order: - description: Order of the outcome. - type: number - warning: - description: Warning of last rule execution. - enum: - - read - - decrypt - - execute - - unknown - - license - - timeout - - disabled - - validate - - maxExecutableActions - - maxAlerts - - maxQueuedActions - - ruleExecution - nullable: true - type: string - required: - - outcome - - alerts_count - success: - description: >- - Indicates whether the rule run was - successful. - type: boolean - timestamp: - description: Time of rule run. - type: number - required: - - success - - timestamp - type: array - last_run: - additionalProperties: false - type: object - properties: - metrics: - additionalProperties: false - type: object - properties: - duration: - description: Duration of most recent rule run. - type: number - gap_duration_s: - description: Duration in seconds of rule run gap. - nullable: true - type: number - total_alerts_created: - description: >- - Total number of alerts created during last - rule run. - nullable: true - type: number - total_alerts_detected: - description: >- - Total number of alerts detected during - last rule run. - nullable: true - type: number - total_indexing_duration_ms: - description: >- - Total time spent indexing documents during - last rule run in milliseconds. - nullable: true - type: number - total_search_duration_ms: - description: >- - Total time spent performing Elasticsearch - searches as measured by Kibana; includes - network latency and time spent serializing - or deserializing the request and response. - nullable: true - type: number - timestamp: - description: Time of the most recent rule run. - type: string - required: - - timestamp - - metrics - required: - - history - - calculated_metrics - - last_run + The custom field label that is displayed in the + case. + maxLength: 50 + minLength: 1 + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + required: + description: > + Indicates whether the field is required. If + `false`, the custom field can be set to null or + omitted when a case is created or updated. + type: boolean + type: array + error: + example: null + nullable: true + type: string + id: + example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 + type: string + mappings: + items: + type: object + properties: + action_type: + example: overwrite + type: string + source: + example: title + type: string + target: + example: summary + type: string + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + templates: + $ref: '#/components/schemas/Cases_templates' + updated_at: + example: '2022-06-01T19:58:48.169Z' + format: date-time + nullable: true + type: string + updated_by: + nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + version: + example: WzIwNzMsMV0= + type: string + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case settings + tags: + - cases + post: + description: > + Case settings include external connection details, custom fields, and + templates. Connectors are used to interface with external systems. You + must create a connector before you can use it in your cases. If you set + a default connector, it is automatically selected when you create cases + in Kibana. If you use the create case API, however, you must still + specify all of the connector details. You must have `all` privileges for + the **Cases** feature in the **Management**, **Observability**, or + **Security** section of the Kibana feature privileges, depending on + where you are creating cases. + operationId: setCaseConfigurationDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + setCaseConfigRequest: + $ref: '#/components/examples/Cases_set_case_configuration_request' + schema: + $ref: '#/components/schemas/Cases_set_case_configuration_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + setCaseConfigResponse: + $ref: '#/components/examples/Cases_set_case_configuration_response' + schema: + type: object + properties: + closure_type: + $ref: '#/components/schemas/Cases_closure_types' + connector: + type: object + properties: + fields: + description: >- + The fields specified in the case configuration are not + used and are not propagated to individual cases, + therefore it is recommended to set it to `null`. + nullable: true + type: object + id: + description: >- + The identifier for the connector. If you do not want a + default connector, use `none`. To retrieve connector + IDs, use the find connectors API. + example: none + type: string + name: + description: >- + The name of the connector. If you do not want a + default connector, use `none`. To retrieve connector + names, use the find connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + created_at: + example: '2022-06-01T17:07:17.767Z' + format: date-time + type: string + created_by: + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string required: - - run - mute_all: - description: Indicates whether all alerts are muted. - type: boolean - muted_alert_ids: + - email + - full_name + - username + customFields: + description: Custom fields configuration details. items: - description: 'List of identifiers of muted alerts. ' - type: string + type: object + properties: + defaultValue: + description: > + A default value for the custom field. If the `type` + is `text`, the default value must be a string. If + the `type` is `toggle`, the default value must be + boolean. + oneOf: + - type: string + - type: boolean + key: + description: > + A unique key for the custom field. Must be lower + case and composed only of a-z, 0-9, '_', and '-' + characters. It is used in API calls to refer to a + specific custom field. + maxLength: 36 + minLength: 1 + type: string + label: + description: >- + The custom field label that is displayed in the + case. + maxLength: 50 + minLength: 1 + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + required: + description: > + Indicates whether the field is required. If `false`, + the custom field can be set to null or omitted when + a case is created or updated. + type: boolean type: array - name: - description: ' The name of the rule.' + error: + example: null + nullable: true type: string - next_run: - description: Date and time of the next run of the rule. + id: + example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 + type: string + mappings: + items: + type: object + properties: + action_type: + example: overwrite + type: string + source: + example: title + type: string + target: + example: summary + type: string + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + templates: + $ref: '#/components/schemas/Cases_templates' + updated_at: + example: '2022-06-01T19:58:48.169Z' + format: date-time nullable: true type: string - notify_when: - description: >- - Indicates how often alerts generate actions. Valid values - include: `onActionGroupChange`: Actions run when the alert - status changes; `onActiveAlert`: Actions run when the - alert becomes active and at each check interval while the - rule conditions are met; `onThrottleInterval`: Actions run - when the alert becomes active and at the interval - specified in the throttle property while the rule - conditions are met. NOTE: You cannot specify `notify_when` - at both the rule and action level. The recommended method - is to set it for each action. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval + updated_by: nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + version: + example: WzIwNzMsMV0= type: string - params: - additionalProperties: {} - description: The parameters for the rule. + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Add case settings + tags: + - cases + '/api/cases/configure/{configurationId}': + patch: + description: > + Updates setting details such as the closure type, custom fields, + templates, and the default connector for cases. Connectors are used to + interface with external systems. You must create a connector before you + can use it in your cases. You must have `all` privileges for the + **Cases** feature in the **Management**, **Observability**, or + **Security** section of the Kibana feature privileges, depending on + where the case was created. + operationId: updateCaseConfigurationDefaultSpace + parameters: + - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Cases_configuration_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseConfigurationRequest: + $ref: '#/components/examples/Cases_update_case_configuration_request' + schema: + $ref: '#/components/schemas/Cases_update_case_configuration_request' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateCaseConfigurationResponse: + $ref: >- + #/components/examples/Cases_update_case_configuration_response + schema: + type: object + properties: + closure_type: + $ref: '#/components/schemas/Cases_closure_types' + connector: type: object - revision: - description: The rule revision number. - type: number - rule_type_id: - description: The rule type identifier. + properties: + fields: + description: >- + The fields specified in the case configuration are not + used and are not propagated to individual cases, + therefore it is recommended to set it to `null`. + nullable: true + type: object + id: + description: >- + The identifier for the connector. If you do not want a + default connector, use `none`. To retrieve connector + IDs, use the find connectors API. + example: none + type: string + name: + description: >- + The name of the connector. If you do not want a + default connector, use `none`. To retrieve connector + names, use the find connectors API. + example: none + type: string + type: + $ref: '#/components/schemas/Cases_connector_types' + created_at: + example: '2022-06-01T17:07:17.767Z' + format: date-time type: string - running: - description: Indicates whether the rule is running. - nullable: true - type: boolean - schedule: - additionalProperties: false + created_by: type: object properties: - interval: - description: >- - The interval is specified in seconds, minutes, hours, - or days. + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true type: string required: - - interval - scheduled_task_id: - description: Identifier of the scheduled task. - type: string - snooze_schedule: + - email + - full_name + - username + customFields: + description: Custom fields configuration details. items: - additionalProperties: false type: object properties: - duration: - description: Duration of the rule snooze schedule. - type: number - id: - description: Identifier of the rule snooze schedule. - type: string - rRule: - additionalProperties: false - type: object - properties: - byhour: - items: - description: Indicates hours of the day to recur. - type: number - type: array - byminute: - items: - description: Indicates minutes of the hour to recur. - type: number - type: array - bymonth: - items: - description: >- - Indicates months of the year that this rule - should recur. - type: number - type: array - bymonthday: - items: - description: Indicates the days of the month to recur. - type: number - type: array - bysecond: - items: - description: Indicates seconds of the day to recur. - type: number - type: array - bysetpos: - items: - description: >- - A positive or negative integer affecting the - nth day of the month. For example, -2 combined - with `byweekday` of FR is 2nd to last Friday - of the month. It is recommended to not set - this manually and just use `byweekday`. - type: number - type: array - byweekday: - items: - anyOf: - - type: string - - type: number - description: >- - Indicates the days of the week to recur or - else nth-day-of-month strings. For example, - "+2TU" second Tuesday of month, "-1FR" last - Friday of the month, which are internally - converted to a `byweekday/bysetpos` - combination. - type: array - byweekno: - items: - description: Indicates number of the week hours to recur. - type: number - type: array - byyearday: - items: - description: >- - Indicates the days of the year that this rule - should recur. - type: number - type: array - count: - description: >- - Number of times the rule should recur until it - stops. - type: number - dtstart: - description: >- - Rule start date in Coordinated Universal Time - (UTC). - type: string - freq: - description: >- - Indicates frequency of the rule. Options are - YEARLY, MONTHLY, WEEKLY, DAILY. - enum: - - 0 - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - type: integer - interval: - description: >- - Indicates the interval of frequency. For - example, 1 and YEARLY is every 1 year, 2 and - WEEKLY is every 2 weeks. - type: number - tzid: - description: Indicates timezone abbreviation. - type: string - until: - description: Recur the rule until this date. - type: string - wkst: - description: 'Indicates the start of week, defaults to Monday.' - enum: - - MO - - TU - - WE - - TH - - FR - - SA - - SU - type: string - required: - - dtstart - - tzid - skipRecurrences: - items: - description: Skips recurrence of rule on this date. - type: string - type: array - required: - - duration - - rRule - type: array - tags: - items: - description: The tags for the rule. - type: string + defaultValue: + description: > + A default value for the custom field. If the `type` + is `text`, the default value must be a string. If + the `type` is `toggle`, the default value must be + boolean. + oneOf: + - type: string + - type: boolean + key: + description: > + A unique key for the custom field. Must be lower + case and composed only of a-z, 0-9, '_', and '-' + characters. It is used in API calls to refer to a + specific custom field. + maxLength: 36 + minLength: 1 + type: string + label: + description: >- + The custom field label that is displayed in the + case. + maxLength: 50 + minLength: 1 + type: string + type: + description: The type of the custom field. + enum: + - text + - toggle + type: string + required: + description: > + Indicates whether the field is required. If `false`, + the custom field can be set to null or omitted when + a case is created or updated. + type: boolean type: array - throttle: - deprecated: true - description: >- - Deprecated in 8.13.0. Use the `throttle` property in the - action `frequency` object instead. The throttle interval, - which defines how often an alert generates repeated - actions. NOTE: You cannot specify the throttle interval at - both the rule and action level. If you set it at the rule - level then update the rule in Kibana, it is automatically - changed to use action-specific values. + error: + example: null nullable: true type: string - updated_at: - description: The date and time that the rule was updated most recently. + id: + example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 type: string - updated_by: - description: >- - The identifier for the user that updated this rule most - recently. + mappings: + items: + type: object + properties: + action_type: + example: overwrite + type: string + source: + example: title + type: string + target: + example: summary + type: string + type: array + owner: + $ref: '#/components/schemas/Cases_owners' + templates: + $ref: '#/components/schemas/Cases_templates' + updated_at: + example: '2022-06-01T19:58:48.169Z' + format: date-time nullable: true type: string - view_in_app_relative_url: - description: Relative URL to view rule in the app. + updated_by: nullable: true + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + version: + example: WzIwNzMsMV0= type: string - required: - - id - - enabled - - name - - tags - - rule_type_id - - consumer - - schedule - - actions - - params - - created_by - - updated_by - - created_at - - updated_at - - api_key_owner - - mute_all - - muted_alert_ids - - execution_status - - revision description: Indicates a successful call. - summary: Get information about rules + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Update case settings tags: - - alerting - '/api/alerts/alert/{alertId}': - delete: - deprecated: true + - cases + /api/cases/configure/connectors/_find: + get: description: > - Deprecated in 7.13.0. Use the delete rule API instead. WARNING: After - you delete an alert, you cannot recover it. - operationId: legaryDeleteAlert + Get information about connectors that are supported for use in cases. + You must have `read` privileges for the **Actions and Connectors** + feature in the **Management** section of the Kibana feature privileges. + operationId: findCaseConnectorsDefaultSpace + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + findConnectorResponse: + $ref: '#/components/examples/Cases_find_connector_response' + schema: + items: + type: object + properties: + actionTypeId: + $ref: '#/components/schemas/Cases_connector_types' + config: + additionalProperties: true + type: object + properties: + apiUrl: + type: string + projectKey: + type: string + id: + type: string + isDeprecated: + type: boolean + isMissingSecrets: + type: boolean + isPreconfigured: + type: boolean + name: + type: string + referencedByCount: + type: integer + maxItems: 1000 + type: array + description: Indicates a successful call. + '401': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Cases_4xx_response' + description: Authorization information is missing or invalid. + summary: Get case connectors + tags: + - cases + /api/cases/reporters: + get: + description: > + Returns information about the users who opened cases. You must have read + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases. The API returns + information about the users as they existed at the time of the case + creation, including their name, full name, and email address. If any of + those details change thereafter or if a user is deleted, the information + returned by this API is unchanged. + operationId: getCaseReportersDefaultSpace parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: The identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string + - $ref: '#/components/parameters/Cases_owner' responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getReportersResponse: + $ref: '#/components/examples/Cases_get_reporters_response' + schema: + items: + type: object + properties: + email: + example: null + nullable: true + type: string + full_name: + example: null + nullable: true + type: string + profile_uid: + example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 + type: string + username: + example: elastic + nullable: true + type: string + required: + - email + - full_name + - username + maxItems: 10000 + type: array description: Indicates a successful call. '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' + $ref: '#/components/schemas/Cases_4xx_response' description: Authorization information is missing or invalid. - summary: Delete an alert + summary: Get case creators tags: - - alerting + - cases + /api/cases/status: get: deprecated: true - description: Deprecated in 7.13.0. Use the get rule API instead. - operationId: legacyGetAlert + description: > + Returns the number of cases that are open, closed, and in progress. + Deprecated in 8.1.0. This API is deprecated and will be removed in a + future release; use the find cases API instead. You must have `read` + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases you're seeking. + operationId: getCaseStatusDefaultSpace parameters: - - description: The identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string + - $ref: '#/components/parameters/Cases_owner' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_alert_response_properties' + type: object + properties: + count_closed_cases: + type: integer + count_in_progress_cases: + type: integer + count_open_cases: + type: integer description: Indicates a successful call. '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' + $ref: '#/components/schemas/Cases_4xx_response' description: Authorization information is missing or invalid. - summary: Get an alert by identifier + summary: Get case status summary tags: - - alerting - post: - deprecated: true - description: Deprecated in 7.13.0. Use the create rule API instead. - operationId: legacyCreateAlert + - cases + /api/cases/tags: + get: + description: > + Aggregates and returns a list of case tags. You must have read + privileges for the **Cases** feature in the **Management**, + **Observability**, or **Security** section of the Kibana feature + privileges, depending on the owner of the cases you're seeking. + operationId: getCaseTagsDefaultSpace parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: >- - An UUID v1 or v4 identifier for the alert. If this parameter is - omitted, the identifier is randomly generated. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - title: Legacy create alert request properties - type: object - properties: - actions: - items: - type: object - properties: - actionTypeId: - description: The identifier for the action type. - type: string - group: - description: > - Grouping actions is recommended for escalations for - different types of alert instances. If you don't need - this functionality, set it to `default`. - type: string - id: - description: The ID of the action saved object. - type: string - params: - description: > - The map to the `params` that the action type will - receive. `params` are handled as Mustache templates - and passed a default set of context. - type: object - required: - - actionTypeId - - group - - id - - params - type: array - alertTypeId: - description: >- - The ID of the alert type that you want to call when the - alert is scheduled to run. - type: string - consumer: - description: >- - The name of the application that owns the alert. This name - has to match the Kibana feature name, as that dictates the - required role-based access control privileges. - type: string - enabled: - description: >- - Indicates if you want to run the alert on an interval basis - after it is created. - type: boolean - name: - description: A name to reference and search. - type: string - notifyWhen: - description: The condition for throttling the notification. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - type: string - params: - description: >- - The parameters to pass to the alert type executor `params` - value. This will also validate against the alert type params - validator, if defined. - type: object - schedule: - description: > - The schedule specifying when this alert should be run. A - schedule is structured such that the key specifies the - format you wish to use and its value specifies the schedule. - type: object - properties: - interval: - description: >- - The interval format specifies the interval in seconds, - minutes, hours or days at which the alert should run. - example: 10s - type: string - tags: - description: A list of keywords to reference and search. - items: - type: string - type: array - throttle: - description: > - How often this alert should fire the same actions. This will - prevent the alert from sending out the same notification - over and over. For example, if an alert with a schedule of 1 - minute stays in a triggered state for 90 minutes, setting a - throttle of `10m` or `1h` will prevent it from sending 90 - notifications during this period. - type: string - required: - - alertTypeId - - consumer - - name - - notifyWhen - - params - - schedule - required: true + - $ref: '#/components/parameters/Cases_owner' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + getTagsResponse: + $ref: '#/components/examples/Cases_get_tags_response' schema: - $ref: '#/components/schemas/Alerting_alert_response_properties' + items: + type: string + maxItems: 10000 + type: array description: Indicates a successful call. '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' + $ref: '#/components/schemas/Cases_4xx_response' description: Authorization information is missing or invalid. - summary: Create an alert + summary: Get case tags tags: - - alerting - put: - deprecated: true - description: Deprecated in 7.13.0. Use the update rule API instead. - operationId: legacyUpdateAlert - parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: The identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - title: Legacy update alert request properties - type: object - properties: - actions: - items: - type: object - properties: - actionTypeId: - description: The identifier for the action type. - type: string - group: - description: > - Grouping actions is recommended for escalations for - different types of alert instances. If you don't need - this functionality, set it to `default`. - type: string - id: - description: The ID of the action saved object. - type: string - params: - description: > - The map to the `params` that the action type will - receive. `params` are handled as Mustache templates - and passed a default set of context. - type: object - required: - - actionTypeId - - group - - id - - params - type: array - name: - description: A name to reference and search. - type: string - notifyWhen: - description: The condition for throttling the notification. - enum: - - onActionGroupChange - - onActiveAlert - - onThrottleInterval - type: string - params: - description: >- - The parameters to pass to the alert type executor `params` - value. This will also validate against the alert type params - validator, if defined. - type: object - schedule: - description: > - The schedule specifying when this alert should be run. A - schedule is structured such that the key specifies the - format you wish to use and its value specifies the schedule. - type: object - properties: - interval: - description: >- - The interval format specifies the interval in seconds, - minutes, hours or days at which the alert should run. - example: 1d - type: string - tags: - description: A list of keywords to reference and search. - items: - type: string - type: array - throttle: - description: > - How often this alert should fire the same actions. This will - prevent the alert from sending out the same notification - over and over. For example, if an alert with a schedule of 1 - minute stays in a triggered state for 90 minutes, setting a - throttle of `10m` or `1h` will prevent it from sending 90 - notifications during this period. - type: string - required: - - name - - notifyWhen - - params - - schedule + - cases + /api/data_views: + get: + operationId: getAllDataViewsDefault + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getAllDataViewsResponse: + $ref: '#/components/examples/Data_views_get_data_views_response' + schema: + type: object + properties: + data_view: + items: + type: object + properties: + id: + type: string + name: + type: string + namespaces: + items: + type: string + type: array + title: + type: string + typeMeta: + type: object + type: array + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Get all data views + tags: + - data views + /api/data_views/data_view: + post: + operationId: createDataViewDefaultw + parameters: + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createDataViewRequest: + $ref: '#/components/examples/Data_views_create_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_create_data_view_request_object' required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_alert_response_properties' + $ref: '#/components/schemas/Data_views_data_view_response_object' description: Indicates a successful call. - '401': + '400': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Update an alert + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Create a data view tags: - - alerting - '/api/alerts/alert/{alertId}/_disable': - post: - deprecated: true - description: Deprecated in 7.13.0. Use the disable rule API instead. - operationId: legacyDisableAlert + - data views + '/api/data_views/data_view/{viewId}': + delete: + description: | + WARNING: When you delete a data view, it cannot be recovered. + operationId: deleteDataViewDefault parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: The identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' responses: '204': description: Indicates a successful call. - '401': + '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Disable an alert + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Delete a data view tags: - - alerting - '/api/alerts/alert/{alertId}/_enable': - post: - deprecated: true - description: Deprecated in 7.13.0. Use the enable rule API instead. - operationId: legacyEnableAlert + - data views + get: + operationId: getDataViewDefault parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: The identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string + - $ref: '#/components/parameters/Data_views_view_id' responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + getDataViewResponse: + $ref: '#/components/examples/Data_views_get_data_view_response' + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' description: Indicates a successful call. - '401': + '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Enable an alert + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Get a data view tags: - - alerting - '/api/alerts/alert/{alertId}/_mute_all': + - data views post: - deprecated: true - description: Deprecated in 7.13.0. Use the mute all alerts API instead. - operationId: legacyMuteAllAlertInstances + operationId: updateDataViewDefault parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: The identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateDataViewRequest: + $ref: '#/components/examples/Data_views_update_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_update_data_view_request_object' + required: true responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_data_view_response_object' description: Indicates a successful call. - '401': + '400': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Mute all alert instances + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update a data view tags: - - alerting - '/api/alerts/alert/{alertId}/_unmute_all': + - data views + '/api/data_views/data_view/{viewId}/fields': post: - deprecated: true - description: Deprecated in 7.13.0. Use the unmute all alerts API instead. - operationId: legacyUnmuteAllAlertInstances + description: > + Update fields presentation metadata such as count, customLabel, + customDescription, and format. + operationId: updateFieldsMetadataDefault parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: The identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateFieldsMetadataRequest: + $ref: '#/components/examples/Data_views_update_field_metadata_request' + schema: + type: object + properties: + fields: + description: The field object. + type: object + required: + - fields + required: true responses: - '204': + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + acknowledged: + type: boolean description: Indicates a successful call. - '401': + '400': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Unmute all alert instances + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update data view fields metadata tags: - - alerting - '/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_mute': + - data views + '/api/data_views/data_view/{viewId}/runtime_field': post: - deprecated: true - description: Deprecated in 7.13.0. Use the mute alert API instead. - operationId: legacyMuteAlertInstance + operationId: createRuntimeFieldDefault parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: An identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string - - description: An identifier for the alert instance. - in: path - name: alertInstanceId - required: true - schema: - example: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 - type: string + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_view_id' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + createRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_create_runtime_field_request' + schema: + type: object + properties: + name: + description: | + The name for a runtime field. + type: string + runtimeField: + description: | + The runtime field definition object. + type: object + required: + - name + - runtimeField + required: true responses: - '204': - description: Indicates a successful call. - '401': + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Mute an alert instance + type: object + description: Indicates a successful call. + summary: Create a runtime field tags: - - alerting - '/api/alerts/alert/{alertId}/alert_instance/{alertInstanceId}/_unmute': - post: - deprecated: true - description: Deprecated in 7.13.0. Use the unmute alert API instead. - operationId: legacyUnmuteAlertInstance + - data views + put: + operationId: createUpdateRuntimeFieldDefault parameters: - - $ref: '#/components/parameters/Alerting_kbn_xsrf' - - description: An identifier for the alert. - in: path - name: alertId - required: true - schema: - example: 41893910-6bca-11eb-9e0d-85d233e3ee35 - type: string - - description: An identifier for the alert instance. + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - description: | + The ID of the data view fields you want to update. in: path - name: alertInstanceId + name: viewId required: true - schema: - example: dceeb5d0-6b41-11eb-802b-85b0c1bc8ba2 - type: string - responses: - '204': - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Unmute an alert instance - tags: - - alerting - /api/alerts/alerts/_find: - get: - deprecated: true - description: > - Deprecated in 7.13.0. Use the find rules API instead. NOTE: Alert - `params` are stored as a flattened field type and analyzed as keywords. - As alerts change in Kibana, the results on each page of the response - also change. Use the find API for traditional paginated results, but - avoid using it to export large amounts of data. - operationId: legacyFindAlerts - parameters: - - description: The default operator to use for the `simple_query_string`. - example: OR - in: query - name: default_search_operator - schema: - default: OR - type: string - - description: The fields to return in the `attributes` key of the response. - in: query - name: fields - schema: - items: - type: string - type: array - - description: > - A KQL string that you filter with an attribute from your saved - object. It should look like `savedObjectType.attributes.title: - "myTitle"`. However, if you used a direct attribute of a saved - object, such as `updatedAt`, you must define your filter, for - example, `savedObjectType.updatedAt > 2018-12-22`. - in: query - name: filter - schema: - type: string - - description: >- - Filters the rules that have a relation with the reference objects - with a specific type and identifier. - in: query - name: has_reference - schema: - type: object - properties: - id: - type: string - type: - type: string - - description: The page number to return. - example: 1 - in: query - name: page - schema: - default: 1 - type: integer - - description: The number of alerts to return per page. - example: 20 - in: query - name: per_page - schema: - default: 20 - type: integer - - description: >- - An Elasticsearch `simple_query_string` query that filters the alerts - in the response. - in: query - name: search schema: type: string - - description: >- - The fields to perform the `simple_query_string` parsed query - against. - in: query - name: search_fields - schema: - oneOf: - - type: string - - items: + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_create_runtime_field_request' + schema: + type: object + properties: + name: + description: | + The name for a runtime field. type: string - type: array - - description: > - Determines which field is used to sort the results. The field must - exist in the `attributes` key of the response. - in: query - name: sort_field - schema: - type: string - - description: Determines the sort order. - example: asc - in: query - name: sort_order - schema: - default: desc - enum: - - asc - - desc - type: string + runtimeField: + description: | + The runtime field definition object. + type: object + required: + - name + - runtimeField + required: true responses: '200': content: @@ -7295,301 +7783,161 @@ paths: schema: type: object properties: - data: + data_view: + type: object + fields: items: - $ref: '#/components/schemas/Alerting_alert_response_properties' + type: object type: array - page: - type: integer - perPage: - type: integer - total: - type: integer description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Get a paginated set of alerts - tags: - - alerting - /api/alerts/alerts/_health: - get: - deprecated: true - description: Deprecated in 7.13.0. Use the get alerting framework health API instead. - operationId: legacyGetAlertingHealth - responses: - '200': + '400': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - alertingFrameworkHealth: - description: > - Three substates identify the health of the alerting - framework: `decryptionHealth`, `executionHealth`, and - `readHealth`. - type: object - properties: - decryptionHealth: - description: The timestamp and status of the alert decryption. - type: object - properties: - status: - enum: - - error - - ok - - warn - example: ok - type: string - timestamp: - example: '2023-01-13T01:28:00.280Z' - format: date-time - type: string - executionHealth: - description: The timestamp and status of the alert execution. - type: object - properties: - status: - enum: - - error - - ok - - warn - example: ok - type: string - timestamp: - example: '2023-01-13T01:28:00.280Z' - format: date-time - type: string - readHealth: - description: The timestamp and status of the alert reading events. - type: object - properties: - status: - enum: - - error - - ok - - warn - example: ok - type: string - timestamp: - example: '2023-01-13T01:28:00.280Z' - format: date-time - type: string - hasPermanentEncryptionKey: - description: >- - If `false`, the encrypted saved object plugin does not - have a permanent encryption key. - example: true - type: boolean - isSufficientlySecure: - description: 'If `false`, security is enabled but TLS is not.' - example: true - type: boolean + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Create or update a runtime field + tags: + - data views + '/api/data_views/data_view/{viewId}/runtime_field/{fieldName}': + delete: + operationId: deleteRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' + responses: + '200': description: Indicates a successful call. - '401': + '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Get the alerting framework health + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Delete a runtime field from a data view tags: - - alerting - /api/alerts/alerts/list_alert_types: + - data views get: - deprecated: true - description: Deprecated in 7.13.0. Use the get rule types API instead. - operationId: legacyGetAlertTypes + operationId: getRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + getRuntimeFieldResponse: + $ref: '#/components/examples/Data_views_get_runtime_field_response' schema: - items: - type: object - properties: - actionGroups: - description: > - An explicit list of groups for which the alert type can - schedule actions, each with the action group's unique ID - and human readable name. Alert actions validation uses - this configuration to ensure that groups are valid. - items: - type: object - properties: - id: - type: string - name: - type: string - type: array - actionVariables: - description: > - A list of action variables that the alert type makes - available via context and state in action parameter - templates, and a short human readable description. The - Alert UI will use this information to prompt users for - these variables in action parameter editors. - type: object - properties: - context: - items: - type: object - properties: - description: - type: string - name: - type: string - type: array - params: - items: - type: object - properties: - description: - type: string - name: - type: string - type: array - state: - items: - type: object - properties: - description: - type: string - name: - type: string - type: array - authorizedConsumers: - description: >- - The list of the plugins IDs that have access to the - alert type. - type: object - defaultActionGroupId: - description: The default identifier for the alert type group. - type: string - enabledInLicense: - description: >- - Indicates whether the rule type is enabled based on the - subscription. - type: boolean - id: - description: The unique identifier for the alert type. - type: string - isExportable: - description: >- - Indicates whether the alert type is exportable in Saved - Objects Management UI. - type: boolean - minimumLicenseRequired: - description: The subscriptions required to use the alert type. - type: string - name: - description: The descriptive name of the alert type. - type: string - producer: - description: >- - An identifier for the application that produces this - alert type. - type: string - recoveryActionGroup: - description: > - An action group to use when an alert instance goes from - an active state to an inactive one. If it is not - specified, the default recovered action group is used. + type: object + properties: + data_view: + type: object + fields: + items: type: object - properties: - id: - type: string - name: - type: string - type: array + type: array description: Indicates a successful call. - '401': + '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Alerting_401_response' - description: Authorization information is missing or invalid. - summary: Get the alert types + $ref: '#/components/schemas/Data_views_404_response' + description: Object is not found. + summary: Get a runtime field tags: - - alerting - /api/apm/agent_keys: + - data views post: - description: Create a new agent key for APM. - operationId: createAgentKey + operationId: updateRuntimeFieldDefault + parameters: + - $ref: '#/components/parameters/Data_views_field_name' + - $ref: '#/components/parameters/Data_views_view_id' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: + examples: + updateRuntimeFieldRequest: + $ref: '#/components/examples/Data_views_update_runtime_field_request' schema: type: object properties: - name: - type: string - privileges: - items: - enum: - - 'event:write' - - 'config_agent:read' - type: string - type: array + runtimeField: + description: | + The runtime field definition object. + + You can update following fields: + + - `type` + - `script` + type: object + required: + - runtimeField required: true + responses: + '200': + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Update a runtime field + tags: + - data views + /api/data_views/default: + get: + operationId: getDefaultDataViewDefault responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + getDefaultDataViewResponse: + $ref: >- + #/components/examples/Data_views_get_default_data_view_response schema: type: object properties: - api_key: - type: string - encoded: - type: string - expiration: - format: int64 - type: integer - id: - type: string - name: + data_view_id: type: string - description: Agent key created successfully - summary: Create an APM agent key + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Get the default data view tags: - - APM agent keys - '/api/apm/services/{serviceName}/annotation': + - data views post: - description: Create a new annotation for a specific service. - operationId: createAnnotation + operationId: setDefaultDatailViewDefault parameters: - - description: The name of the service - in: path - name: serviceName - required: true - schema: - type: string + - $ref: '#/components/parameters/Data_views_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: + examples: + setDefaultDataViewRequest: + $ref: '#/components/examples/Data_views_set_default_data_view_request' schema: type: object properties: - '@timestamp': - type: string - message: + data_view_id: + description: > + The data view identifier. NOTE: The API does not validate + whether it is a valid identifier. Use `null` to unset the + default data view. + nullable: true type: string - service: - type: object - properties: - environment: - type: string - version: - type: string - tags: - items: - type: string - type: array + force: + default: false + description: Update an existing default data view identifier. + type: boolean + required: + - data_view_id required: true responses: '200': @@ -7598,70 +7946,36 @@ paths: schema: type: object properties: - _id: - type: string - _index: - type: string - _source: - type: object - properties: - '@timestamp': - type: string - annotation: - type: string - event: - type: object - properties: - created: - type: string - message: - type: string - service: - type: object - properties: - environment: - type: string - name: - type: string - version: - type: string - tags: - items: - type: string - type: array - description: Annotation created successfully - summary: Create a service annotation + acknowledged: + type: boolean + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Data_views_400_response' + description: Bad request + summary: Set the default data view tags: - - APM annotations - '/api/apm/services/{serviceName}/annotation/search': - get: - description: Search for annotations related to a specific service. - operationId: getAnnotation + - data views + /api/data_views/swap_references: + post: + description: > + Changes saved object references from one data view identifier to + another. WARNING: Misuse can break large numbers of saved objects! + Practicing with a backup is recommended. + operationId: swapDataViewsDefault parameters: - - description: The name of the service - in: path - name: serviceName - required: true - schema: - type: string - - description: The environment to filter annotations by - in: query - name: environment - required: false - schema: - type: string - - description: The start date for the search - in: query - name: start - required: false - schema: - type: string - - description: The end date for the search - in: query - name: end - required: false - schema: - type: string + - $ref: '#/components/parameters/Data_views_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + swapDataViewRequest: + $ref: '#/components/examples/Data_views_swap_data_view_request' + schema: + $ref: '#/components/schemas/Data_views_swap_data_view_request_object' + required: true responses: '200': content: @@ -7669,1534 +7983,1444 @@ paths: schema: type: object properties: - annotations: + deleteStatus: + type: object + properties: + deletePerformed: + type: boolean + remainingRefs: + type: integer + result: items: type: object properties: - '@timestamp': - type: number id: - type: string - text: + description: A saved object identifier. type: string type: - enum: - - version + description: The saved object type. type: string type: array - description: Successful response - summary: Search for annotations - tags: - - APM annotations - /api/cases: - delete: - description: > - You must have `read` or `all` privileges and the `delete` sub-feature - privilege for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases you're deleting. - operationId: deleteCaseDefaultSpace - parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_ids' - responses: - '204': description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Delete cases + summary: Swap saved object references tags: - - cases - patch: + - data views + /api/data_views/swap_references/_preview: + post: description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the - Kibana feature privileges, depending on the owner of the case you're - updating. - operationId: updateCaseDefaultSpace + Preview the impact of swapping saved object references from one data + view identifier to another. + operationId: previewSwapDataViewsDefault parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Data_views_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: examples: - updateCaseRequest: - $ref: '#/components/examples/Cases_update_case_request' + previewSwapDataViewRequest: + $ref: >- + #/components/examples/Data_views_preview_swap_data_view_request schema: - $ref: '#/components/schemas/Cases_update_case_request' + $ref: '#/components/schemas/Data_views_swap_data_view_request_object' + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateCaseResponse: - $ref: '#/components/examples/Cases_update_case_response' schema: - items: - $ref: '#/components/schemas/Cases_case_response_properties' - type: array + type: object + properties: + result: + items: + type: object + properties: + id: + description: A saved object identifier. + type: string + type: + description: The saved object type. + type: string + type: array description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Update cases + summary: Preview a saved object reference swap tags: - - cases + - data views + /api/encrypted_saved_objects/_rotate_key: post: description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the - Kibana feature privileges, depending on the owner of the case you're - creating. - operationId: createCaseDefaultSpace + Superuser role required. + + + If a saved object cannot be decrypted using the primary encryption key, + then Kibana will attempt to decrypt it using the specified + decryption-only keys. In most of the cases this overhead is negligible, + but if you're dealing with a large number of saved objects and + experiencing performance issues, you may want to rotate the encryption + key. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: rotateEncryptionKey parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - createCaseRequest: - $ref: '#/components/examples/Cases_create_case_request' - schema: - $ref: '#/components/schemas/Cases_create_case_request' - required: true + - description: > + Specifies a maximum number of saved objects that Kibana can process + in a single batch. Bulk key rotation is an iterative process since + Kibana may not be able to fetch and process all required saved + objects in one go and splits processing into consequent batches. By + default, the batch size is 10000, which is also a maximum allowed + value. + in: query + name: batch_size + required: false + schema: + default: 10000 + type: number + - description: > + Limits encryption key rotation only to the saved objects with the + specified type. By default, Kibana tries to rotate the encryption + key for all saved object types that may contain encrypted + attributes. + in: query + name: type + required: false + schema: + type: string responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - createCaseResponse: - $ref: '#/components/examples/Cases_create_case_response' + examples: + rotateEncryptionKeyResponse: + $ref: '#/components/examples/Saved_objects_key_rotation_response' + schema: + type: object + properties: + failed: + description: > + Indicates the number of the saved objects that were still + encrypted with one of the old encryption keys that Kibana + failed to re-encrypt with the primary key. + type: number + successful: + description: > + Indicates the total number of all encrypted saved objects + (optionally filtered by the requested `type`), regardless + of the key Kibana used for encryption. + + + NOTE: In most cases, `total` will be greater than + `successful` even if `failed` is zero. The reason is that + Kibana may not need or may not be able to rotate + encryption keys for all encrypted saved objects. + type: number + total: + description: > + Indicates the total number of all encrypted saved objects + (optionally filtered by the requested `type`), regardless + of the key Kibana used for encryption. + type: number + description: Indicates a successful call. + '400': + content: + application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_case_response_properties' - description: Indicates a successful call. - '401': + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + '429': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Create a case + type: object + description: Already in progress. + summary: Rotate a key for encrypted saved objects tags: - - cases - /api/cases/_find: + - saved objects + /api/fleet/agent_download_sources: get: - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases you're seeking. - operationId: findCasesDefaultSpace - parameters: - - $ref: '#/components/parameters/Cases_assignees' - - $ref: '#/components/parameters/Cases_category' - - $ref: '#/components/parameters/Cases_defaultSearchOperator' - - $ref: '#/components/parameters/Cases_from' - - $ref: '#/components/parameters/Cases_owner' - - $ref: '#/components/parameters/Cases_page_index' - - $ref: '#/components/parameters/Cases_page_size' - - $ref: '#/components/parameters/Cases_reporters' - - $ref: '#/components/parameters/Cases_search' - - $ref: '#/components/parameters/Cases_searchFields' - - $ref: '#/components/parameters/Cases_severity' - - $ref: '#/components/parameters/Cases_sortField' - - $ref: '#/components/parameters/Cases_sort_order' - - $ref: '#/components/parameters/Cases_status' - - $ref: '#/components/parameters/Cases_tags' - - $ref: '#/components/parameters/Cases_to' + operationId: get-download-sources responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - findCaseResponse: - $ref: '#/components/examples/Cases_find_case_response' schema: type: object properties: - cases: + items: items: - $ref: '#/components/schemas/Cases_case_response_properties' - maxItems: 10000 + $ref: '#/components/schemas/Fleet_download_sources' type: array - count_closed_cases: - type: integer - count_in_progress_cases: - type: integer - count_open_cases: - type: integer page: type: integer - per_page: + perPage: type: integer total: type: integer - description: Indicates a successful call. - '401': + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent binary download sources + tags: + - Elastic Agent binary download sources + post: + operationId: post-download-sources + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + type: string + id: + type: string + is_default: + type: boolean + name: + type: string + required: + - name + - host + - is_default + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Search cases + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent binary download source tags: - - cases - '/api/cases/{caseId}': - get: - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the case you're seeking. - operationId: getCaseDefaultSpace + - Elastic Agent binary download sources + '/api/fleet/agent_download_sources/{sourceId}': + delete: + operationId: delete-download-source parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_includeComments' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getDefaultCaseResponse: - $ref: '#/components/examples/Cases_get_case_response' - getDefaultObservabilityCaseReponse: - $ref: '#/components/examples/Cases_get_case_observability_response' - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - description: Indicates a successful call. - '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get case information + type: object + properties: + id: + type: string + required: + - id + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent binary download source by ID tags: - - cases - '/api/cases/{caseId}/alerts': + - Elastic Agent binary download sources get: - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases you're seeking. - operationId: getCaseAlertsDefaultSpace - parameters: - - $ref: '#/components/parameters/Cases_case_id' + operationId: get-one-download-source responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getCaseAlertsResponse: - $ref: '#/components/examples/Cases_get_case_alerts_response' - schema: - items: - $ref: '#/components/schemas/Cases_alert_response_properties' - type: array - description: Indicates a successful call. - '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get all alerts for a case + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent binary download source by ID tags: - - cases - x-technical-preview: true - '/api/cases/{caseId}/comments': - delete: - description: > - Deletes all comments and alerts from a case. You must have `all` - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases you're deleting. - operationId: deleteCaseCommentsDefaultSpace + - Elastic Agent binary download sources + parameters: + - in: path + name: sourceId + required: true + schema: + type: string + put: + operationId: update-download-source parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host: + type: string + is_default: + type: boolean + name: + type: string + required: + - name + - is_default + - host responses: - '204': - description: Indicates a successful call. - '401': + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Delete all case comments and alerts + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_download_sources' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent binary download source by ID tags: - - cases - get: - deprecated: true - description: > - Deprecated in 8.1.0. This API is deprecated and will be removed in a - future release; instead, use the get case comment API, which requires a - comment identifier in the path. You must have `read` privileges for the - **Cases** feature in the **Management**, **Observability**, or - **Security** section of the Kibana feature privileges, depending on the - owner of the cases with the comments you're seeking. - operationId: getAllCaseCommentsDefaultSpace + - Elastic Agent binary download sources + /api/fleet/agent_policies: + get: + description: '' + operationId: agent-policy-list parameters: - - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_format' + - description: >- + When set to true, retrieve the related package policies for each + agent policy. + in: query + name: full + schema: + type: boolean + - description: >- + When set to true, do not count how many agents are in the agent + policy, this can improve performance if you are searching over a + large number of agent policies. The "agents" property will always be + 0 if set to true. + in: query + name: noAgentCount + schema: + type: boolean responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_case_response_properties' - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get all case comments + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent_policy' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - total + - page + - perPage + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent policies tags: - - cases - patch: - description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the case you're updating. - NOTE: You cannot change the comment type or the owner of a comment. - operationId: updateCaseCommentDefaultSpace + - Elastic Agent policies + post: + operationId: create-agent-policy parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateCaseCommentRequest: - $ref: '#/components/examples/Cases_update_comment_request' schema: - $ref: '#/components/schemas/Cases_update_case_comment_request' - required: true + $ref: '#/components/schemas/Fleet_agent_policy_create_request' responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - updateCaseCommentResponse: - $ref: '#/components/examples/Cases_update_comment_response' - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - description: Indicates a successful call. - '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Update a case comment or alert + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent policy tags: - - cases + - Elastic Agent policies + /api/fleet/agent_policies/_bulk_get: post: - description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the case you're creating. - NOTE: Each case can have a maximum of 1,000 alerts. - operationId: addCaseCommentDefaultSpace + operationId: bulk-get-agent-policies parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_case_id' + - $ref: '#/components/parameters/Fleet_format' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - createCaseCommentRequest: - $ref: '#/components/examples/Cases_add_comment_request' schema: - $ref: '#/components/schemas/Cases_add_case_comment_request' - required: true + type: object + properties: + full: + description: get full policies with package policies populated + type: boolean + ids: + description: list of agent policy ids + items: + type: string + type: array + ignoreMissing: + type: boolean + required: + - ids responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - createCaseCommentResponse: - $ref: '#/components/examples/Cases_add_comment_response' - schema: - $ref: '#/components/schemas/Cases_case_response_properties' - description: Indicates a successful call. - '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Add a case comment or alert + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_agent_policy' + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get agent policies tags: - - cases - '/api/cases/{caseId}/comments/_find': + - Elastic Agent policies + '/api/fleet/agent_policies/{agentPolicyId}': get: - description: > - Retrieves a paginated list of comments for a case. You must have `read` - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases with the comments you're - seeking. - operationId: findCaseCommentsDefaultSpace - parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_page_index' - - $ref: '#/components/parameters/Cases_page_size' - - $ref: '#/components/parameters/Cases_sort_order' + description: Get one agent policy + operationId: agent-policy-info + parameters: [] responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_case_response_properties' - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Find case comments and alerts - tags: - - cases - '/api/cases/{caseId}/comments/{commentId}': - delete: - description: > - You must have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases you're deleting. - operationId: deleteCaseCommentDefaultSpace - parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_comment_id' - responses: - '204': - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Delete a case comment or alert + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent policy by ID tags: - - cases - get: - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases with the - comments you're seeking. - operationId: getCaseCommentDefaultSpace + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - $ref: '#/components/parameters/Fleet_format' + put: + operationId: update-agent-policy parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_comment_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_agent_policy_update_request' responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getCaseCommentResponse: - $ref: '#/components/examples/Cases_get_comment_response' - schema: - oneOf: - - $ref: >- - #/components/schemas/Cases_alert_comment_response_properties - - $ref: >- - #/components/schemas/Cases_user_comment_response_properties - description: Indicates a successful call. - '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get a case comment or alert + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent policy by ID tags: - - cases - '/api/cases/{caseId}/connector/{connectorId}/_push': + - Elastic Agent policies + '/api/fleet/agent_policies/{agentPolicyId}/copy': + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - $ref: '#/components/parameters/Fleet_format' post: - description: > - You must have `all` privileges for the **Actions and Connectors** - feature in the **Management** section of the Kibana feature privileges. - You must also have `all` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the case you're pushing. - operationId: pushCaseDefaultSpace + operationId: agent-policy-copy parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_connector_id' - - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - nullable: true type: object + properties: + description: + type: string + name: + type: string + required: + - name + description: '' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - pushCaseResponse: - $ref: '#/components/examples/Cases_push_case_response' schema: - $ref: '#/components/schemas/Cases_case_response_properties' - description: Indicates a successful call. - '401': + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_policy' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Copy agent policy by ID + tags: + - Elastic Agent policies + '/api/fleet/agent_policies/{agentPolicyId}/download': + get: + operationId: agent-policy-download + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Push a case to an external service + type: object + properties: + item: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Download agent policy by ID tags: - - cases - '/api/cases/{caseId}/user_actions': + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - in: query + name: download + required: false + schema: + type: string + - in: query + name: standalone + required: false + schema: + type: string + - in: query + name: kubernetes + required: false + schema: + type: string + '/api/fleet/agent_policies/{agentPolicyId}/full': get: - deprecated: true - description: > - Returns all user activity for a case. Deprecated in 8.1.0. This API is - deprecated and will be removed in a future release; use the find user - actions API instead. You must have `read` privileges for the **Cases** - feature in the **Management**, **Observability**, or **Security** - section of the Kibana feature privileges, depending on the owner of the - case you're seeking. - operationId: getCaseActivityDefaultSpace - parameters: - - $ref: '#/components/parameters/Cases_case_id' + operationId: agent-policy-full responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - items: - $ref: '#/components/schemas/Cases_user_actions_response_properties' - type: array - description: Indicates a successful call. - '401': + type: object + properties: + item: + oneOf: + - type: string + - $ref: '#/components/schemas/Fleet_agent_policy_full' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get full agent policy by ID + tags: + - Elastic Agent policies + parameters: + - in: path + name: agentPolicyId + required: true + schema: + type: string + - in: query + name: download + required: false + schema: + type: string + - in: query + name: standalone + required: false + schema: + type: string + - in: query + name: kubernetes + required: false + schema: + type: string + /api/fleet/agent_policies/delete: + parameters: [] + post: + operationId: delete-agent-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + agentPolicyId: + type: string + force: + description: >- + bypass validation checks that can prevent agent policy + deletion + type: boolean + required: + - agentPolicyId + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get case activity + type: object + properties: + id: + type: string + success: + type: boolean + required: + - id + - success + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent policy by ID tags: - - cases - '/api/cases/{caseId}/user_actions/_find': + - Elastic Agent policies + /api/fleet/agent_status: get: - description: > - Retrives a paginated list of user activity for a case. You must have - `read` privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the case you're seeking. - operationId: findCaseActivityDefaultSpace + operationId: get-agent-status parameters: - - $ref: '#/components/parameters/Cases_case_id' - - $ref: '#/components/parameters/Cases_page_index' - - $ref: '#/components/parameters/Cases_page_size' - - $ref: '#/components/parameters/Cases_sort_order' - - $ref: '#/components/parameters/Cases_user_action_types' + - in: query + name: policyId + required: false + schema: + type: string + - deprecated: true + in: query + name: kuery + required: false + schema: + type: string responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - findCaseActivityResponse: - $ref: '#/components/examples/Cases_find_case_activity_response' schema: type: object properties: - page: + active: type: integer - perPage: + all: + type: integer + error: + type: integer + events: + type: integer + inactive: + type: integer + offline: + type: integer + online: + type: integer + other: type: integer total: + deprecated: true type: integer - userActions: - items: - $ref: >- - #/components/schemas/Cases_user_actions_find_response_properties - maxItems: 10000 - type: array - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Find case activity + unenrolled: + type: integer + updating: + type: integer + required: + - active + - all + - error + - events + - inactive + - offline + - online + - other + - total + - updating + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent status summary tags: - - cases - '/api/cases/alerts/{alertId}': + - Elastic Agent status + /api/fleet/agent_status/data: get: - description: > - You must have `read` privileges for the **Cases** feature in the - **Management**, **Observability**, or **Security** section of the Kibana - feature privileges, depending on the owner of the cases you're seeking. - operationId: getCasesByAlertDefaultSpace + operationId: get-agent-data parameters: - - $ref: '#/components/parameters/Cases_alert_id' - - $ref: '#/components/parameters/Cases_owner' + - in: query + name: agentsIds + required: true + schema: + items: + type: string + type: array responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - example: - - id: 06116b80-e1c3-11ec-be9b-9b1838238ee6 - title: security_case - items: - type: object - properties: - id: - description: The case identifier. - type: string - title: - description: The case title. - type: string - maxItems: 10000 - type: array - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get cases for an alert + type: object + properties: + items: + items: + additionalProperties: + type: object + properties: + data: + type: boolean + type: object + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get incoming agent data tags: - - cases - x-technical-preview: true - /api/cases/configure: + - Elastic Agent status + /api/fleet/agent-status: get: - description: > - Get setting details such as the closure type, custom fields, templatse, - and the default connector for cases. You must have `read` privileges for - the **Cases** feature in the **Management**, **Observability**, or - **Security** section of the Kibana feature privileges, depending on - where the cases were created. - operationId: getCaseConfigurationDefaultSpace + deprecated: true + operationId: get-agent-status-deprecated parameters: - - $ref: '#/components/parameters/Cases_owner' + - in: query + name: policyId + required: false + schema: + type: string responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - getConfigurationResponse: - $ref: '#/components/examples/Cases_get_case_configuration_response' schema: - items: - type: object - properties: - closure_type: - $ref: '#/components/schemas/Cases_closure_types' - connector: - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are - not used and are not propagated to individual cases, - therefore it is recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want - a default connector, use `none`. To retrieve - connector IDs, use the find connectors API. - example: none - type: string - name: - description: >- - The name of the connector. If you do not want a - default connector, use `none`. To retrieve connector - names, use the find connectors API. - example: none - type: string - type: - $ref: '#/components/schemas/Cases_connector_types' - created_at: - example: '2022-06-01T17:07:17.767Z' - format: date-time - type: string - created_by: - type: object - properties: - email: - example: null - nullable: true - type: string - full_name: - example: null - nullable: true - type: string - profile_uid: - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - type: string - username: - example: elastic - nullable: true - type: string - required: - - email - - full_name - - username - customFields: - description: Custom fields configuration details. - items: - type: object - properties: - defaultValue: - description: > - A default value for the custom field. If the - `type` is `text`, the default value must be a - string. If the `type` is `toggle`, the default - value must be boolean. - oneOf: - - type: string - - type: boolean - key: - description: > - A unique key for the custom field. Must be lower - case and composed only of a-z, 0-9, '_', and '-' - characters. It is used in API calls to refer to a - specific custom field. - maxLength: 36 - minLength: 1 - type: string - label: - description: >- - The custom field label that is displayed in the - case. - maxLength: 50 - minLength: 1 - type: string - type: - description: The type of the custom field. - enum: - - text - - toggle - type: string - required: - description: > - Indicates whether the field is required. If - `false`, the custom field can be set to null or - omitted when a case is created or updated. - type: boolean - type: array - error: - example: null - nullable: true - type: string - id: - example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 - type: string - mappings: - items: - type: object - properties: - action_type: - example: overwrite - type: string - source: - example: title - type: string - target: - example: summary - type: string - type: array - owner: - $ref: '#/components/schemas/Cases_owners' - templates: - $ref: '#/components/schemas/Cases_templates' - updated_at: - example: '2022-06-01T19:58:48.169Z' - format: date-time - nullable: true - type: string - updated_by: - nullable: true - type: object - properties: - email: - example: null - nullable: true - type: string - full_name: - example: null - nullable: true - type: string - profile_uid: - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - type: string - username: - example: elastic - nullable: true - type: string - required: - - email - - full_name - - username - version: - example: WzIwNzMsMV0= - type: string - type: array - description: Indicates a successful call. - '401': + type: object + properties: + error: + type: integer + events: + type: integer + inactive: + type: integer + offline: + type: integer + online: + type: integer + other: + type: integer + total: + type: integer + updating: + type: integer + required: + - error + - events + - inactive + - offline + - online + - other + - total + - updating + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent status summary + tags: + - Elastic Agent status + /api/fleet/agents: + get: + operationId: get-agents + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_show_inactive' + - $ref: '#/components/parameters/Fleet_show_upgradeable' + - $ref: '#/components/parameters/Fleet_sort_field' + - $ref: '#/components/parameters/Fleet_sort_order' + - $ref: '#/components/parameters/Fleet_with_metrics' + - in: query + name: getStatusSummary + required: false + schema: + type: boolean + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get case settings + $ref: '#/components/schemas/Fleet_get_agents_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agents tags: - - cases + - Elastic Agents post: - description: > - Case settings include external connection details, custom fields, and - templates. Connectors are used to interface with external systems. You - must create a connector before you can use it in your cases. If you set - a default connector, it is automatically selected when you create cases - in Kibana. If you use the create case API, however, you must still - specify all of the connector details. You must have `all` privileges for - the **Cases** feature in the **Management**, **Observability**, or - **Security** section of the Kibana feature privileges, depending on - where you are creating cases. - operationId: setCaseConfigurationDefaultSpace + operationId: get-agents-by-actions parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - setCaseConfigRequest: - $ref: '#/components/examples/Cases_set_case_configuration_request' schema: - $ref: '#/components/schemas/Cases_set_case_configuration_request' + type: object + properties: + actionIds: + items: + type: string + type: array + required: + - policy_id + required: true + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_agent_get_by_actions' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agents by action ids + tags: + - Elastic Agents + '/api/fleet/agents/{agentId}': + delete: + operationId: delete-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - setCaseConfigResponse: - $ref: '#/components/examples/Cases_set_case_configuration_response' schema: type: object properties: - closure_type: - $ref: '#/components/schemas/Cases_closure_types' - connector: - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are not - used and are not propagated to individual cases, - therefore it is recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want a - default connector, use `none`. To retrieve connector - IDs, use the find connectors API. - example: none - type: string - name: - description: >- - The name of the connector. If you do not want a - default connector, use `none`. To retrieve connector - names, use the find connectors API. - example: none - type: string - type: - $ref: '#/components/schemas/Cases_connector_types' - created_at: - example: '2022-06-01T17:07:17.767Z' - format: date-time - type: string - created_by: - type: object - properties: - email: - example: null - nullable: true - type: string - full_name: - example: null - nullable: true - type: string - profile_uid: - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - type: string - username: - example: elastic - nullable: true - type: string - required: - - email - - full_name - - username - customFields: - description: Custom fields configuration details. - items: - type: object - properties: - defaultValue: - description: > - A default value for the custom field. If the `type` - is `text`, the default value must be a string. If - the `type` is `toggle`, the default value must be - boolean. - oneOf: - - type: string - - type: boolean - key: - description: > - A unique key for the custom field. Must be lower - case and composed only of a-z, 0-9, '_', and '-' - characters. It is used in API calls to refer to a - specific custom field. - maxLength: 36 - minLength: 1 - type: string - label: - description: >- - The custom field label that is displayed in the - case. - maxLength: 50 - minLength: 1 - type: string - type: - description: The type of the custom field. - enum: - - text - - toggle - type: string - required: - description: > - Indicates whether the field is required. If `false`, - the custom field can be set to null or omitted when - a case is created or updated. - type: boolean - type: array - error: - example: null - nullable: true - type: string - id: - example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 - type: string - mappings: - items: - type: object - properties: - action_type: - example: overwrite - type: string - source: - example: title - type: string - target: - example: summary - type: string - type: array - owner: - $ref: '#/components/schemas/Cases_owners' - templates: - $ref: '#/components/schemas/Cases_templates' - updated_at: - example: '2022-06-01T19:58:48.169Z' - format: date-time - nullable: true - type: string - updated_by: - nullable: true - type: object - properties: - email: - example: null - nullable: true - type: string - full_name: - example: null - nullable: true - type: string - profile_uid: - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - type: string - username: - example: elastic - nullable: true - type: string - required: - - email - - full_name - - username - version: - example: WzIwNzMsMV0= + action: + enum: + - deleted type: string - description: Indicates a successful call. - '401': + required: + - action + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete agent by ID + tags: + - Elastic Agents + get: + operationId: get-agent + parameters: + - $ref: '#/components/parameters/Fleet_with_metrics' + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Add case settings + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent by ID tags: - - cases - '/api/cases/configure/{configurationId}': - patch: - description: > - Updates setting details such as the closure type, custom fields, - templates, and the default connector for cases. Connectors are used to - interface with external systems. You must create a connector before you - can use it in your cases. You must have `all` privileges for the - **Cases** feature in the **Management**, **Observability**, or - **Security** section of the Kibana feature privileges, depending on - where the case was created. - operationId: updateCaseConfigurationDefaultSpace + - Elastic Agents + parameters: + - in: path + name: agentId + required: true + schema: + type: string + put: + operationId: update-agent parameters: - - $ref: '#/components/parameters/Cases_kbn_xsrf' - - $ref: '#/components/parameters/Cases_configuration_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateCaseConfigurationRequest: - $ref: '#/components/examples/Cases_update_case_configuration_request' schema: - $ref: '#/components/schemas/Cases_update_case_configuration_request' + type: object + properties: + tags: + items: + type: string + type: array + user_provided_metadata: + type: object + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateCaseConfigurationResponse: - $ref: >- - #/components/examples/Cases_update_case_configuration_response schema: type: object properties: - closure_type: - $ref: '#/components/schemas/Cases_closure_types' - connector: - type: object - properties: - fields: - description: >- - The fields specified in the case configuration are not - used and are not propagated to individual cases, - therefore it is recommended to set it to `null`. - nullable: true - type: object - id: - description: >- - The identifier for the connector. If you do not want a - default connector, use `none`. To retrieve connector - IDs, use the find connectors API. - example: none - type: string - name: - description: >- - The name of the connector. If you do not want a - default connector, use `none`. To retrieve connector - names, use the find connectors API. - example: none - type: string - type: - $ref: '#/components/schemas/Cases_connector_types' - created_at: - example: '2022-06-01T17:07:17.767Z' - format: date-time - type: string - created_by: - type: object - properties: - email: - example: null - nullable: true - type: string - full_name: - example: null - nullable: true - type: string - profile_uid: - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - type: string - username: - example: elastic - nullable: true - type: string - required: - - email - - full_name - - username - customFields: - description: Custom fields configuration details. - items: - type: object - properties: - defaultValue: - description: > - A default value for the custom field. If the `type` - is `text`, the default value must be a string. If - the `type` is `toggle`, the default value must be - boolean. - oneOf: - - type: string - - type: boolean - key: - description: > - A unique key for the custom field. Must be lower - case and composed only of a-z, 0-9, '_', and '-' - characters. It is used in API calls to refer to a - specific custom field. - maxLength: 36 - minLength: 1 - type: string - label: - description: >- - The custom field label that is displayed in the - case. - maxLength: 50 - minLength: 1 - type: string - type: - description: The type of the custom field. - enum: - - text - - toggle - type: string - required: - description: > - Indicates whether the field is required. If `false`, - the custom field can be set to null or omitted when - a case is created or updated. - type: boolean - type: array - error: - example: null - nullable: true - type: string - id: - example: 4a97a440-e1cd-11ec-be9b-9b1838238ee6 - type: string - mappings: - items: - type: object - properties: - action_type: - example: overwrite - type: string - source: - example: title - type: string - target: - example: summary - type: string - type: array - owner: - $ref: '#/components/schemas/Cases_owners' - templates: - $ref: '#/components/schemas/Cases_templates' - updated_at: - example: '2022-06-01T19:58:48.169Z' - format: date-time - nullable: true - type: string - updated_by: - nullable: true - type: object - properties: - email: - example: null - nullable: true - type: string - full_name: - example: null - nullable: true - type: string - profile_uid: - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - type: string - username: - example: elastic - nullable: true - type: string - required: - - email - - full_name - - username - version: - example: WzIwNzMsMV0= - type: string - description: Indicates a successful call. - '401': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Update case settings + item: + $ref: '#/components/schemas/Fleet_agent' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Update agent by ID tags: - - cases - /api/cases/configure/connectors/_find: - get: - description: > - Get information about connectors that are supported for use in cases. - You must have `read` privileges for the **Actions and Connectors** - feature in the **Management** section of the Kibana feature privileges. - operationId: findCaseConnectorsDefaultSpace + - Elastic Agents + '/api/fleet/agents/{agentId}/actions': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: new-agent-action + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + action: + $ref: '#/components/schemas/Fleet_agent_action' + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - findConnectorResponse: - $ref: '#/components/examples/Cases_find_connector_response' schema: - items: - type: object - properties: - actionTypeId: - $ref: '#/components/schemas/Cases_connector_types' - config: - additionalProperties: true - type: object - properties: - apiUrl: - type: string - projectKey: - type: string - id: - type: string - isDeprecated: - type: boolean - isMissingSecrets: - type: boolean - isPreconfigured: - type: boolean - name: - type: string - referencedByCount: - type: integer - maxItems: 1000 - type: array - description: Indicates a successful call. - '401': + type: object + properties: + body: + items: + type: number + type: array + headers: + type: string + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create agent action + tags: + - Elastic Agent actions + '/api/fleet/agents/{agentId}/reassign': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: reassign-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + policy_id: + type: string + required: + - policy_id + required: true + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get case connectors + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Reassign agent tags: - - cases - /api/cases/reporters: - get: - description: > - Returns information about the users who opened cases. You must have read - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases. The API returns - information about the users as they existed at the time of the case - creation, including their name, full name, and email address. If any of - those details change thereafter or if a user is deleted, the information - returned by this API is unchanged. - operationId: getCaseReportersDefaultSpace + - Elastic Agents + put: + deprecated: true + operationId: reassign-agent-deprecated parameters: - - $ref: '#/components/parameters/Cases_owner' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + policy_id: + type: string + required: + - policy_id + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - getReportersResponse: - $ref: '#/components/examples/Cases_get_reporters_response' schema: - items: - type: object - properties: - email: - example: null - nullable: true - type: string - full_name: - example: null - nullable: true - type: string - profile_uid: - example: u_J41Oh6L9ki-Vo2tOogS8WRTENzhHurGtRc87NgEAlkc_0 - type: string - username: - example: elastic - nullable: true - type: string - required: - - email - - full_name - - username - maxItems: 10000 - type: array - description: Indicates a successful call. - '401': + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Reassign agent + tags: + - Elastic Agents + '/api/fleet/agents/{agentId}/request_diagnostics': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: request-diagnostics-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + additional_metrics: + items: + oneOf: + - enum: + - CPU + type: string + type: array + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get case creators + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Request agent diagnostics tags: - - cases - /api/cases/status: - get: - deprecated: true - description: > - Returns the number of cases that are open, closed, and in progress. - Deprecated in 8.1.0. This API is deprecated and will be removed in a - future release; use the find cases API instead. You must have `read` - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases you're seeking. - operationId: getCaseStatusDefaultSpace + - Elastic Agents + '/api/fleet/agents/{agentId}/unenroll': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: unenroll-agent parameters: - - $ref: '#/components/parameters/Cases_owner' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean + revoke: + type: boolean responses: '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: OK + '400': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - count_closed_cases: - type: integer - count_in_progress_cases: - type: integer - count_open_cases: - type: integer - description: Indicates a successful call. - '401': + error: + type: string + message: + type: string + statusCode: + enum: + - 400 + type: number + description: BAD REQUEST + summary: Unenroll agent + tags: + - Elastic Agents + '/api/fleet/agents/{agentId}/upgrade': + parameters: + - in: path + name: agentId + required: true + schema: + type: string + post: + operationId: upgrade-agent + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_upgrade_agent' + required: true + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get case status summary + $ref: '#/components/schemas/Fleet_upgrade_agent' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Upgrade agent tags: - - cases - /api/cases/tags: + - Elastic Agents + '/api/fleet/agents/{agentId}/uploads': get: - description: > - Aggregates and returns a list of case tags. You must have read - privileges for the **Cases** feature in the **Management**, - **Observability**, or **Security** section of the Kibana feature - privileges, depending on the owner of the cases you're seeking. - operationId: getCaseTagsDefaultSpace - parameters: - - $ref: '#/components/parameters/Cases_owner' + operationId: list-agent-uploads responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getTagsResponse: - $ref: '#/components/examples/Cases_get_tags_response' - schema: - items: - type: string - maxItems: 10000 - type: array - description: Indicates a successful call. - '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Cases_4xx_response' - description: Authorization information is missing or invalid. - summary: Get case tags + type: object + properties: + body: + type: object + properties: + item: + items: + $ref: '#/components/schemas/Fleet_agent_diagnostics' + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List agent uploads tags: - - cases - /api/data_views: + - Elastic Agents + parameters: + - in: path + name: agentId + required: true + schema: + type: string + /api/fleet/agents/action_status: get: - operationId: getAllDataViewsDefault + operationId: agents-action-status + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - in: query + name: errorSize + schema: + default: 5 + type: integer responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - getAllDataViewsResponse: - $ref: '#/components/examples/Data_views_get_data_views_response' schema: type: object properties: - data_view: + items: items: type: object properties: - id: + actionId: type: string - name: + cancellationTime: type: string - namespaces: + completionTime: + type: string + creationTime: + description: creation time of action + type: string + expiration: + type: string + latestErrors: + description: >- + latest errors that happened when the agents executed + the action items: - type: string + type: object + properties: + agentId: + type: string + error: + type: string + timestamp: + type: string type: array - title: + nbAgentsAck: + description: number of agents that acknowledged the action + type: number + nbAgentsActionCreated: + description: number of agents included in action from kibana + type: number + nbAgentsActioned: + description: number of agents actioned + type: number + nbAgentsFailed: + description: number of agents that failed to execute the action + type: number + newPolicyId: + description: new policy id (POLICY_REASSIGN action) type: string - typeMeta: - type: object + policyId: + description: policy id (POLICY_CHANGE action) + type: string + revision: + description: new policy revision (POLICY_CHANGE action) + type: string + startTime: + description: start time of action (scheduled actions) + type: string + status: + enum: + - COMPLETE + - EXPIRED + - CANCELLED + - FAILED + - IN_PROGRESS + - ROLLOUT_PASSED + type: string + type: + enum: + - POLICY_REASSIGN + - UPGRADE + - UNENROLL + - FORCE_UNENROLL + - UPDATE_TAGS + - CANCEL + - REQUEST_DIAGNOSTICS + - SETTINGS + - POLICY_CHANGE + - INPUT_ACTION + type: string + version: + description: agent version number (UPGRADE action) + type: string + required: + - actionId + - complete + - nbAgentsActioned + - nbAgentsActionCreated + - nbAgentsAck + - nbAgentsFailed + - status + - creationTime + - type type: array - description: Indicates a successful call. + required: + - items + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Get all data views + $ref: '#/components/responses/Fleet_error' + summary: Get agent action status tags: - - data views - /api/data_views/data_view: + - Elastic Agent actions + '/api/fleet/agents/actions/{actionId}/cancel': + parameters: + - in: path + name: actionId + required: true + schema: + type: string post: - operationId: createDataViewDefaultw + operationId: agent-action-cancel parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - createDataViewRequest: - $ref: '#/components/examples/Data_views_create_data_view_request' - schema: - $ref: '#/components/schemas/Data_views_create_data_view_request_object' - required: true + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - description: Indicates a successful call. + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_agent_action' + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Create a data view - tags: - - data views - '/api/data_views/data_view/{viewId}': - delete: - description: | - WARNING: When you delete a data view, it cannot be recovered. - operationId: deleteDataViewDefault - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' - responses: - '204': - description: Indicates a successful call. - '404': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_404_response' - description: Object is not found. - summary: Delete a data view + $ref: '#/components/responses/Fleet_error' + summary: Cancel agent action tags: - - data views - get: - operationId: getDataViewDefault + - Elastic Agent actions + /api/fleet/agents/bulk_reassign: + post: + operationId: bulk-reassign-agents parameters: - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + example: + agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' + policy_id: policy_id + schema: + type: object + properties: + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + policy_id: + description: new agent policy id + type: string + required: + - policy_id + - agents responses: '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - getDataViewResponse: - $ref: '#/components/examples/Data_views_get_data_view_response' - schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - description: Indicates a successful call. - '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - description: Object is not found. - summary: Get a data view + type: object + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk reassign agents tags: - - data views + - Elastic Agents + /api/fleet/agents/bulk_request_diagnostics: post: - operationId: updateDataViewDefault + operationId: bulk-request-diagnostics parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateDataViewRequest: - $ref: '#/components/examples/Data_views_update_data_view_request' + example: + agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' schema: - $ref: '#/components/schemas/Data_views_update_data_view_request_object' - required: true + type: object + properties: + additional_metrics: + items: + oneOf: + - enum: + - CPU + type: string + type: array + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + batchSize: + type: number + required: + - agents responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_data_view_response_object' - description: Indicates a successful call. + type: object + properties: + actionId: + type: string + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Update a data view + $ref: '#/components/responses/Fleet_error' + summary: Bulk request diagnostics from agents tags: - - data views - '/api/data_views/data_view/{viewId}/fields': + - Elastic Agents + /api/fleet/agents/bulk_unenroll: post: - description: > - Update fields presentation metadata such as count, customLabel, - customDescription, and format. - operationId: updateFieldsMetadataDefault + operationId: bulk-unenroll-agents parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateFieldsMetadataRequest: - $ref: '#/components/examples/Data_views_update_field_metadata_request' + example: + agents: + - agent1 + - agent2 + force: false + revoke: true schema: type: object properties: - fields: - description: The field object. - type: object + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + force: + description: Unenrolls hosted agents too + type: boolean + includeInactive: + description: >- + When passing agents by KQL query, unenrolls inactive agents + too + type: boolean + revoke: + description: Revokes API keys of agents + type: boolean required: - - fields - required: true + - agents responses: '200': content: @@ -9204,86 +9428,86 @@ paths: schema: type: object properties: - acknowledged: - type: boolean - description: Indicates a successful call. + actionId: + type: string + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Update data view fields metadata + $ref: '#/components/responses/Fleet_error' + summary: Bulk unenroll agents tags: - - data views - '/api/data_views/data_view/{viewId}/runtime_field': + - Elastic Agents + /api/fleet/agents/bulk_update_agent_tags: post: - operationId: createRuntimeFieldDefault + operationId: bulk-update-agent-tags parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - createRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_create_runtime_field_request' + example: + agents: + - agent1 + - agent2 + tagsToAdd: + - newTag + tagsToRemove: + - existingTag schema: type: object properties: - name: - description: | - The name for a runtime field. - type: string - runtimeField: - description: | - The runtime field definition object. - type: object + agents: + oneOf: + - description: 'KQL query string, leave empty to action all agents' + type: string + - description: list of agent IDs + items: + type: string + type: array + batchSize: + type: number + tagsToAdd: + items: + type: string + type: array + tagsToRemove: + items: + type: string + type: array required: - - name - - runtimeField - required: true + - agents responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. - summary: Create a runtime field + properties: + actionId: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk update agent tags tags: - - data views - put: - operationId: createUpdateRuntimeFieldDefault + - Elastic Agents + /api/fleet/agents/bulk_upgrade: + post: + operationId: bulk-upgrade-agents parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - - description: | - The ID of the data view fields you want to update. - in: path - name: viewId - required: true - schema: - type: string + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_create_runtime_field_request' + example: + agents: + - agent1 + - agent2 + rollout_duration_seconds: 3600 + source_uri: 'https://artifacts.elastic.co/downloads/beats/elastic-agent' + start_time: '2022-08-03T14:00:00.000Z' + version: 8.4.0 schema: - type: object - properties: - name: - description: | - The name for a runtime field. - type: string - runtimeField: - description: | - The runtime field definition object. - type: object - required: - - name - - runtimeField + $ref: '#/components/schemas/Fleet_bulk_upgrade_agents' required: true responses: '200': @@ -9292,162 +9516,140 @@ paths: schema: type: object properties: - data_view: - type: object - fields: - items: - type: object - type: array - description: Indicates a successful call. + actionId: + type: string + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Create or update a runtime field + $ref: '#/components/responses/Fleet_error' + summary: Bulk upgrade agents tags: - - data views - '/api/data_views/data_view/{viewId}/runtime_field/{fieldName}': - delete: - operationId: deleteRuntimeFieldDefault - parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + - Elastic Agents + '/api/fleet/agents/files/{fileId}': + delete: + operationId: delete-agent-upload-file responses: '200': - description: Indicates a successful call. - '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - description: Object is not found. - summary: Delete a runtime field from a data view + type: object + properties: + body: + type: object + properties: + deleted: + type: boolean + id: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete file uploaded by agent tags: - - data views + - Elastic Agents + parameters: + - in: path + name: fileId + required: true + schema: + type: string + '/api/fleet/agents/files/{fileId}/{fileName}': get: - operationId: getRuntimeFieldDefault - parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + operationId: get-agent-upload-file responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - getRuntimeFieldResponse: - $ref: '#/components/examples/Data_views_get_runtime_field_response' schema: type: object properties: - data_view: + body: type: object - fields: - items: - type: object - type: array - description: Indicates a successful call. - '404': + properties: + items: + type: object + properties: + body: {} + headers: {} + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get file uploaded by agent + tags: + - Elastic Agents + parameters: + - in: path + name: fileId + required: true + schema: + type: string + - in: path + name: fileName + required: true + schema: + type: string + /api/fleet/agents/setup: + get: + operationId: get-agents-setup-status + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_404_response' - description: Object is not found. - summary: Get a runtime field + $ref: '#/components/schemas/Fleet_fleet_status_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get agent setup info tags: - - data views + - Elastic Agents post: - operationId: updateRuntimeFieldDefault + operationId: setup-agents parameters: - - $ref: '#/components/parameters/Data_views_field_name' - - $ref: '#/components/parameters/Data_views_view_id' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - updateRuntimeFieldRequest: - $ref: '#/components/examples/Data_views_update_runtime_field_request' schema: type: object properties: - runtimeField: - description: | - The runtime field definition object. - - You can update following fields: - - - `type` - - `script` - type: object + admin_password: + type: string + admin_username: + type: string required: - - runtimeField - required: true + - admin_username + - admin_password responses: '200': - description: Indicates a successful call. - '400': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Update a runtime field + $ref: '#/components/schemas/Fleet_fleet_setup_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Initiate agent setup tags: - - data views - /api/data_views/default: + - Elastic Agents + /api/fleet/agents/tags: get: - operationId: getDefaultDataViewDefault + operationId: get-agent-tags responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - getDefaultDataViewResponse: - $ref: >- - #/components/examples/Data_views_get_default_data_view_response schema: - type: object - properties: - data_view_id: - type: string - description: Indicates a successful call. + $ref: '#/components/schemas/Fleet_get_agent_tags_response' + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Get the default data view + $ref: '#/components/responses/Fleet_error' + summary: List agent tags tags: - - data views - post: - operationId: setDefaultDatailViewDefault - parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - setDefaultDataViewRequest: - $ref: '#/components/examples/Data_views_set_default_data_view_request' - schema: - type: object - properties: - data_view_id: - description: > - The data view identifier. NOTE: The API does not validate - whether it is a valid identifier. Use `null` to unset the - default data view. - nullable: true - type: string - force: - default: false - description: Update an existing default data view identifier. - type: boolean - required: - - data_view_id - required: true + - Elastic Agents + /api/fleet/data_streams: + get: + operationId: data-streams-list responses: '200': content: @@ -9455,36 +9657,24 @@ paths: schema: type: object properties: - acknowledged: - type: boolean - description: Indicates a successful call. + data_streams: + items: + $ref: '#/components/schemas/Fleet_data_stream' + type: array + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Data_views_400_response' - description: Bad request - summary: Set the default data view + $ref: '#/components/responses/Fleet_error' + summary: List data streams tags: - - data views - /api/data_views/swap_references: - post: - description: > - Changes saved object references from one data view identifier to - another. WARNING: Misuse can break large numbers of saved objects! - Practicing with a backup is recommended. - operationId: swapDataViewsDefault + - Data streams + parameters: [] + /api/fleet/enrollment_api_keys: + get: + operationId: get-enrollment-api-keys parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - examples: - swapDataViewRequest: - $ref: '#/components/examples/Data_views_swap_data_view_request' - schema: - $ref: '#/components/schemas/Data_views_swap_data_view_request_object' - required: true + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' responses: '200': content: @@ -9492,46 +9682,52 @@ paths: schema: type: object properties: - deleteStatus: - type: object - properties: - deletePerformed: - type: boolean - remainingRefs: - type: integer - result: + items: items: - type: object - properties: - id: - description: A saved object identifier. - type: string - type: - description: The saved object type. - type: string + $ref: '#/components/schemas/Fleet_enrollment_api_key' type: array - description: Indicates a successful call. - summary: Swap saved object references - tags: - - data views - /api/data_views/swap_references/_preview: + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - page + - perPage + - total + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List enrollment API keys + tags: + - Fleet enrollment API keys post: - description: > - Preview the impact of swapping saved object references from one data - view identifier to another. - operationId: previewSwapDataViewsDefault + operationId: create-enrollment-api-keys parameters: - - $ref: '#/components/parameters/Data_views_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - previewSwapDataViewRequest: - $ref: >- - #/components/examples/Data_views_preview_swap_data_view_request schema: - $ref: '#/components/schemas/Data_views_swap_data_view_request_object' - required: true + type: object + properties: + name: + description: The name of the enrollment API key. Must be unique. + type: string + policy_id: + description: >- + The ID of the agent policy the Elastic Agent will be + enrolled in. + type: string + required: + - policy_id responses: '200': content: @@ -9539,846 +9735,867 @@ paths: schema: type: object properties: - result: - items: - type: object - properties: - id: - description: A saved object identifier. - type: string - type: - description: The saved object type. - type: string - type: array - description: Indicates a successful call. - summary: Preview a saved object reference swap + action: + enum: + - created + type: string + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create enrollment API key tags: - - data views - /api/encrypted_saved_objects/_rotate_key: - post: - description: > - Superuser role required. - - - If a saved object cannot be decrypted using the primary encryption key, - then Kibana will attempt to decrypt it using the specified - decryption-only keys. In most of the cases this overhead is negligible, - but if you're dealing with a large number of saved objects and - experiencing performance issues, you may want to rotate the encryption - key. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - operationId: rotateEncryptionKey + - Fleet enrollment API keys + '/api/fleet/enrollment_api_keys/{keyId}': + delete: + operationId: delete-enrollment-api-key parameters: - - description: > - Specifies a maximum number of saved objects that Kibana can process - in a single batch. Bulk key rotation is an iterative process since - Kibana may not be able to fetch and process all required saved - objects in one go and splits processing into consequent batches. By - default, the batch size is 10000, which is also a maximum allowed - value. - in: query - name: batch_size - required: false - schema: - default: 10000 - type: number - - description: > - Limits encryption key rotation only to the saved objects with the - specified type. By default, Kibana tries to rotate the encryption - key for all saved object types that may contain encrypted - attributes. - in: query - name: type - required: false - schema: - type: string + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - rotateEncryptionKeyResponse: - $ref: '#/components/examples/Saved_objects_key_rotation_response' schema: type: object properties: - failed: - description: > - Indicates the number of the saved objects that were still - encrypted with one of the old encryption keys that Kibana - failed to re-encrypt with the primary key. - type: number - successful: - description: > - Indicates the total number of all encrypted saved objects - (optionally filtered by the requested `type`), regardless - of the key Kibana used for encryption. - - - NOTE: In most cases, `total` will be greater than - `successful` even if `failed` is zero. The reason is that - Kibana may not need or may not be able to rotate - encryption keys for all encrypted saved objects. - type: number - total: - description: > - Indicates the total number of all encrypted saved objects - (optionally filtered by the requested `type`), regardless - of the key Kibana used for encryption. - type: number - description: Indicates a successful call. + action: + enum: + - deleted + type: string + required: + - action + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request - '429': + $ref: '#/components/responses/Fleet_error' + summary: Revoke enrollment API key by ID by marking it as inactive + tags: + - Fleet enrollment API keys + get: + operationId: get-enrollment-api-key + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Already in progress. - summary: Rotate a key for encrypted saved objects + properties: + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment API key by ID tags: - - saved objects - /api/ml/saved_objects/sync: + - Fleet enrollment API keys + parameters: + - in: path + name: keyId + required: true + schema: + type: string + /api/fleet/enrollment-api-keys: get: - description: > - Synchronizes Kibana saved objects for machine learning jobs and trained - models in the default space. You must have `all` privileges for the - **Machine Learning** feature in the **Analytics** section of the Kibana - feature privileges. This API runs automatically when you start Kibana - and periodically thereafter. - operationId: mlSync - parameters: - - $ref: '#/components/parameters/Machine_learning_APIs_simulateParam' + deprecated: true + operationId: get-enrollment-api-keys-deprecated + parameters: [] responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - syncExample: - $ref: '#/components/examples/Machine_learning_APIs_mlSyncExample' schema: - $ref: '#/components/schemas/Machine_learning_APIs_mlSync200Response' - description: Indicates a successful call - '401': + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + list: + deprecated: true + items: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items + - page + - perPage + - total + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List enrollment API keys + tags: + - Fleet enrollment API keys + post: + deprecated: true + operationId: create-enrollment-api-keys-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Machine_learning_APIs_mlSync4xxResponse' - description: Authorization information is missing or invalid. - summary: Sync saved objects in the default space + type: object + properties: + action: + enum: + - created + type: string + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create enrollment API key tags: - - ml - /api/saved_objects/_bulk_create: - post: + - Fleet enrollment API keys + '/api/fleet/enrollment-api-keys/{keyId}': + delete: deprecated: true - operationId: bulkCreateSavedObjects + operationId: delete-enrollment-api-key-deprecated parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - description: 'When true, overwrites the document with the same identifier.' - in: query - name: overwrite - schema: - type: boolean - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - items: - type: object - type: array - required: true + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. + properties: + action: + enum: + - deleted + type: string + required: + - action + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete enrollment API key by ID + tags: + - Fleet enrollment API keys + get: + deprecated: true + operationId: get-enrollment-api-key-deprecated + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request - summary: Create saved objects + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_enrollment_api_key' + required: + - item + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get enrollment API key by ID tags: - - saved objects - /api/saved_objects/_bulk_delete: + - Fleet enrollment API keys + parameters: + - in: path + name: keyId + required: true + schema: + type: string + /api/fleet/epm/bulk_assets: post: - deprecated: true - description: | - WARNING: When you delete a saved object, it cannot be recovered. - operationId: bulkDeleteSavedObjects - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - description: > - When true, force delete objects that exist in multiple namespaces. - Note that the option applies to the whole request. Use the delete - object API to specify per-object deletion behavior. TIP: Use this if - you attempted to delete objects and received an HTTP 400 error with - the following message: "Unable to delete saved object that exists in - multiple namespaces, use the force option to delete it anyway". - WARNING: When you bulk delete objects that exist in multiple - namespaces, the API also deletes legacy url aliases that reference - the object. These requests are batched to minimise the impact but - they can place a heavy load on Kibana. Make sure you limit the - number of objects that exist in multiple namespaces in a single bulk - delete operation. - in: query - name: force - schema: - type: boolean + operationId: bulk-get-assets requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - items: - type: object - type: array - required: true + type: object + properties: + assetIds: + description: list of items necessary to fetch assets + items: + type: object + properties: + id: + type: string + type: + type: string + type: array + required: + - assetIds responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - description: > - Indicates a successful call. NOTE: This HTTP response code indicates - that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. + $ref: '#/components/schemas/Fleet_get_bulk_assets_response' + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Bulk get assets + tags: + - Elastic Package Manager (EPM) + /api/fleet/epm/categories: + get: + operationId: get-package-categories + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request - summary: Delete saved objects + $ref: '#/components/schemas/Fleet_get_categories_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List package categories tags: - - saved objects - /api/saved_objects/_bulk_get: - post: - deprecated: true - operationId: bulkGetSavedObjects + - Elastic Package Manager (EPM) + parameters: + - description: >- + Whether to include prerelease packages in categories count (e.g. beta, + rc, preview) + in: query + name: prerelease + schema: + default: false + type: boolean + - deprecated: true + in: query + name: experimental + schema: + default: false + type: boolean + - in: query + name: include_policy_templates + schema: + default: false + type: boolean + /api/fleet/epm/packages: + get: + operationId: list-all-packages parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - items: - type: object - type: array - required: true + - description: >- + Whether to exclude the install status of each package. Enabling this + option will opt in to caching for the response via `cache-control` + headers. If you don't need up-to-date installation info for a + package, and are querying for a list of available packages, + providing this flag can improve performance substantially. + in: query + name: excludeInstallStatus + schema: + default: false + type: boolean + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean + - deprecated: true + in: query + name: experimental + schema: + default: false + type: boolean + - in: query + name: category + schema: + type: string responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - description: Indicates a successful call. + $ref: '#/components/schemas/Fleet_get_packages_response' + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request - summary: Get saved objects + $ref: '#/components/responses/Fleet_error' + summary: List packages tags: - - saved objects - /api/saved_objects/_bulk_resolve: + - Elastic Package Manager (EPM) post: - deprecated: true - description: > - Retrieve multiple Kibana saved objects by identifier using any legacy - URL aliases if they exist. Under certain circumstances when Kibana is - upgraded, saved object migrations may necessitate regenerating some - object IDs to enable new features. When an object's ID is regenerated, a - legacy URL alias is created for that object, preserving its old ID. In - such a scenario, that object can be retrieved by the bulk resolve API - using either its new ID or its old ID. - operationId: bulkResolveSavedObjects + description: '' + operationId: install-package-by-upload parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: avoid erroring out on unexpected mapping update errors + in: query + name: ignoreMappingUpdateErrors + schema: + default: false + type: boolean + - description: >- + Skip data stream rollover during index template mapping or settings + update + in: query + name: skipDataStreamRollover + schema: + default: false + type: boolean requestBody: content: - application/json; Elastic-Api-Version=2023-10-31: + application/gzip; Elastic-Api-Version=2023-10-31: schema: - items: - type: object - type: array - required: true + format: binary + type: string + application/zip; Elastic-Api-Version=2023-10-31: + schema: + format: binary + type: string responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: > - Indicates a successful call. NOTE: This HTTP response code indicates - that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. + properties: + _meta: + type: object + properties: + install_source: + enum: + - upload + - registry + - bundled + type: string + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request - summary: Resolve saved objects + $ref: '#/components/responses/Fleet_error' + '429': + $ref: '#/components/responses/Fleet_error' + summary: Install by package by direct upload tags: - - saved objects - /api/saved_objects/_bulk_update: + - Elastic Package Manager (EPM) + /api/fleet/epm/packages/_bulk: post: - deprecated: true - description: Update the attributes for multiple Kibana saved objects. - operationId: bulkUpdateSavedObjects + operationId: bulk-install-packages parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - items: - type: object - type: array - required: true + type: object + properties: + force: + description: force install to ignore package verification errors + type: boolean + packages: + description: list of packages to install + items: + oneOf: + - description: package name + type: string + - type: object + properties: + name: + description: package name + type: string + version: + description: package version + type: string + type: array + required: + - packages responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - description: > - Indicates a successful call. NOTE: This HTTP response code indicates - that the bulk operation succeeded. Errors pertaining to individual - objects will be returned in the response body. + $ref: '#/components/schemas/Fleet_bulk_install_packages_response' + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request - summary: Update saved objects + $ref: '#/components/responses/Fleet_error' + summary: Bulk install packages tags: - - saved objects - /api/saved_objects/_export: - post: - description: > - Retrieve sets of saved objects that you want to import into Kibana. - - You must include `type` or `objects` in the request body. - - - Exported saved objects are not backwards compatible and cannot be - imported into an older version of Kibana. - - - NOTE: The `savedObjects.maxImportExportSize` configuration setting - limits the number of saved objects which may be exported. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - operationId: exportSavedObjectsDefault + - Elastic Package Manager (EPM) + '/api/fleet/epm/packages/{pkgkey}': + delete: + deprecated: true + operationId: delete-package-deprecated parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgkey + required: true + schema: + type: string requestBody: content: application/json; Elastic-Api-Version=2023-10-31: - examples: - exportSavedObjectsRequest: - $ref: '#/components/examples/Saved_objects_export_objects_request' schema: type: object properties: - excludeExportDetails: - default: false - description: Do not add export details entry at the end of the stream. - type: boolean - includeReferencesDeep: - description: >- - Includes all of the referenced objects in the exported - objects. + force: type: boolean - objects: - description: A list of objects to export. - items: - type: object - type: array - type: - description: >- - The saved object types to include in the export. Use `*` to - export all the types. - oneOf: - - type: string - - items: - type: string - type: array - required: true responses: '200': content: - application/x-ndjson; Elastic-Api-Version=2023-10-31: - examples: - exportSavedObjectsResponse: - $ref: '#/components/examples/Saved_objects_export_objects_response' + application/json; Elastic-Api-Version=2023-10-31: schema: - additionalProperties: true type: object - description: Indicates a successful call. + properties: + response: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - response + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request. - summary: Export saved objects + $ref: '#/components/responses/Fleet_error' + summary: Delete ackage tags: - - saved objects - /api/saved_objects/_find: + - Elastic Package Manager (EPM) get: deprecated: true - description: Retrieve a paginated set of Kibana saved objects. - operationId: findSavedObjects + operationId: get-package-deprecated parameters: - - description: > - An aggregation structure, serialized as a string. The field format - is similar to filter, meaning that to use a saved object type - attribute in the aggregation, the `savedObjectType.attributes.title: - "myTitle"` format must be used. For root fields, the syntax is - `savedObjectType.rootField`. NOTE: As objects change in Kibana, the - results on each page of the response also change. Use the find API - for traditional paginated results, but avoid using it to export - large amounts of data. - in: query - name: aggs - schema: - type: string - - description: The default operator to use for the `simple_query_string`. - in: query - name: default_search_operator - schema: - type: string - - description: The fields to return in the attributes key of the response. - in: query - name: fields - schema: - oneOf: - - type: string - - type: array - - description: > - The filter is a KQL string with the caveat that if you filter with - an attribute from your saved object type, it should look like that: - `savedObjectType.attributes.title: "myTitle"`. However, if you use a - root attribute of a saved object such as `updated_at`, you will have - to define your filter like that: `savedObjectType.updated_at > - 2018-12-22`. - in: query - name: filter - schema: - type: string - - description: >- - Filters to objects that do not have a relationship with the type and - identifier combination. - in: query - name: has_no_reference - schema: - type: object - - description: >- - The operator to use for the `has_no_reference` parameter. Either - `OR` or `AND`. Defaults to `OR`. - in: query - name: has_no_reference_operator + - in: path + name: pkgkey + required: true schema: type: string - description: >- - Filters to objects that have a relationship with the type and ID - combination. + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) in: query - name: has_reference + name: prerelease schema: - type: object - - description: >- - The operator to use for the `has_reference` parameter. Either `OR` - or `AND`. Defaults to `OR`. - in: query - name: has_reference_operator + default: false + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + allOf: + - properties: + response: + $ref: '#/components/schemas/Fleet_package_info' + - properties: + savedObject: + type: string + status: + enum: + - installed + - installing + - install_failed + - not_installed + type: string + required: + - status + - savedObject + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package + tags: + - Elastic Package Manager (EPM) + post: + deprecated: true + description: '' + operationId: install-package-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgkey + required: true schema: type: string - - description: The page of objects to return. - in: query - name: page - schema: - type: integer - - description: The number of objects to return per page. - in: query - name: per_page - schema: - type: integer - - description: >- - An Elasticsearch `simple_query_string` query that filters the - objects in the response. + - description: avoid erroring out on unexpected mapping update errors in: query - name: search + name: ignoreMappingUpdateErrors schema: - type: string + default: false + type: boolean - description: >- - The fields to perform the `simple_query_string` parsed query - against. - in: query - name: search_fields - schema: - oneOf: - - type: string - - type: array - - description: > - Sorts the response. Includes "root" and "type" fields. "root" fields - exist for all saved objects, such as "updated_at". "type" fields are - specific to an object type, such as fields returned in the - attributes key of the response. When a single type is defined in the - type parameter, the "root" and "type" fields are allowed, and - validity checks are made in that order. When multiple types are - defined in the type parameter, only "root" fields are allowed. + Skip data stream rollover during index template mapping or settings + update in: query - name: sort_field + name: skipDataStreamRollover schema: - type: string - - description: The saved object types to include. + default: false + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + force: + type: boolean + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + response: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - response + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Install package + tags: + - Elastic Package Manager (EPM) + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}': + delete: + operationId: delete-package + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: delete package even if policies used by agents in: query - name: type - required: true + name: force schema: - oneOf: - - type: string - - type: array + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + deprecated: true + type: object + properties: + force: + type: boolean responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. + properties: + items: + items: + type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type + type: array + required: + - items + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Delete package + tags: + - Elastic Package Manager (EPM) + get: + operationId: get-package + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request - summary: Search for saved objects + allOf: + - properties: + item: + $ref: '#/components/schemas/Fleet_package_info' + - properties: + keepPoliciesUpToDate: + type: boolean + latestVersion: + type: string + licensePath: + type: string + notice: + type: string + savedObject: + deprecated: true + type: object + status: + enum: + - installed + - installing + - install_failed + - not_installed + type: string + required: + - status + - savedObject + type: object + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package tags: - - saved objects - /api/saved_objects/_import: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: Ignore if the package is fails signature verification + in: query + name: ignoreUnverified + schema: + type: boolean + - description: >- + Return all fields from the package manifest, not just those supported + by the Elastic Package Registry + in: query + name: full + schema: + type: boolean + - description: >- + Whether to return prerelease versions of packages (e.g. beta, rc, + preview) + in: query + name: prerelease + schema: + default: false + type: boolean post: - description: > - Create sets of Kibana saved objects from a file created by the export - API. - - Saved objects can be imported only into the same version, a newer minor - on the same major, or the next major. Exported saved objects are not - backwards compatible and cannot be imported into an older version of - Kibana. - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - operationId: importSavedObjectsDefault + description: '' + operationId: install-package parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - description: > - Creates copies of saved objects, regenerates each object ID, and - resets the origin. When used, potential conflict errors are avoided. - NOTE: This option cannot be used with the `overwrite` and - `compatibilityMode` options. - in: query - name: createNewCopies - required: false - schema: - type: boolean - - description: > - Overwrites saved objects when they already exist. When used, - potential conflict errors are automatically resolved by overwriting - the destination object. NOTE: This option cannot be used with the - `createNewCopies` option. + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - description: avoid erroring out on unexpected mapping update errors in: query - name: overwrite - required: false + name: ignoreMappingUpdateErrors schema: + default: false type: boolean - - description: > - Applies various adjustments to the saved objects that are being - imported to maintain compatibility between different Kibana - versions. Use this option only if you encounter issues with imported - saved objects. NOTE: This option cannot be used with the - `createNewCopies` option. + - description: >- + Skip data stream rollover during index template mapping or settings + update in: query - name: compatibilityMode - required: false + name: skipDataStreamRollover schema: + default: false type: boolean requestBody: content: - multipart/form-data; Elastic-Api-Version=2023-10-31: - examples: - importObjectsRequest: - $ref: '#/components/examples/Saved_objects_import_objects_request' + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - file: - description: > - A file exported using the export API. NOTE: The - `savedObjects.maxImportExportSize` configuration setting - limits the number of saved objects which may be included in - this file. Similarly, the - `savedObjects.maxImportPayloadBytes` setting limits the - overall size of the file that can be imported. - required: true + force: + type: boolean + ignore_constraints: + type: boolean responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - importObjectsResponse: - $ref: '#/components/examples/Saved_objects_import_objects_response' schema: type: object properties: - errors: - description: > - Indicates the import was unsuccessful and specifies the - objects that failed to import. - - - NOTE: One object may result in multiple errors, which - requires separate steps to resolve. For instance, a - `missing_references` error and conflict error. - items: - type: object - type: array - success: - description: > - Indicates when the import was successfully completed. When - set to false, some objects may not have been created. For - additional information, refer to the `errors` and - `successResults` properties. - type: boolean - successCount: - description: Indicates the number of successfully imported records. - type: integer - successResults: - description: > - Indicates the objects that are successfully imported, with - any metadata if applicable. - - - NOTE: Objects are created only when all resolvable errors - are addressed, including conflicts and missing references. - If objects are created as new copies, each entry in the - `successResults` array includes a `destinationId` - attribute. + _meta: + type: object + properties: + install_source: + enum: + - registry + - upload + - bundled + type: string + items: items: type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type type: array - description: Indicates a successful call. + required: + - items + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request. - summary: Import saved objects + $ref: '#/components/responses/Fleet_error' + summary: Install package tags: - - saved objects - x-codeSamples: - - label: Import with createNewCopies - lang: cURL - source: | - curl \ - -X POST api/saved_objects/_import?createNewCopies=true - -H "kbn-xsrf: true" - --form file=@file.ndjson - /api/saved_objects/_resolve_import_errors: - post: - description: > - To resolve errors from the Import objects API, you can: - - - * Retry certain saved objects - - * Overwrite specific saved objects - - * Change references to different saved objects - - - This functionality is in technical preview and may be changed or removed - in a future release. Elastic will work to fix any issues, but features - in technical preview are not subject to the support SLA of official GA - features. - operationId: resolveImportErrors - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - description: > - Applies various adjustments to the saved objects that are being - imported to maintain compatibility between different Kibana - versions. When enabled during the initial import, also enable when - resolving import errors. This option cannot be used with the - `createNewCopies` option. - in: query - name: compatibilityMode - required: false - schema: - type: boolean - - description: > - Creates copies of the saved objects, regenerates each object ID, and - resets the origin. When enabled during the initial import, also - enable when resolving import errors. - in: query - name: createNewCopies - required: false - schema: - type: boolean + - Elastic Package Manager (EPM) + put: + description: '' + operationId: update-package requestBody: content: - multipart/form-data; Elastic-Api-Version=2023-10-31: - examples: - resolveImportErrorsRequest: - $ref: >- - #/components/examples/Saved_objects_resolve_missing_reference_request + application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - file: - description: The same file given to the import API. - format: binary - type: string - retries: - description: >- - The retry operations, which can specify how to resolve - different types of errors. - items: - type: object - properties: - destinationId: - description: >- - Specifies the destination ID that the imported object - should have, if different from the current ID. - type: string - id: - description: The saved object ID. - type: string - ignoreMissingReferences: - description: >- - When set to `true`, ignores missing reference errors. - When set to `false`, does nothing. - type: boolean - overwrite: - description: >- - When set to `true`, the source object overwrites the - conflicting destination object. When set to `false`, - does nothing. - type: boolean - replaceReferences: - description: >- - A list of `type`, `from`, and `to` used to change the - object references. - items: - type: object - properties: - from: - type: string - to: - type: string - type: - type: string - type: array - type: - description: The saved object type. - type: string - required: - - type - - id - type: array - required: - - retries - required: true + keepPoliciesUpToDate: + type: boolean responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: - examples: - resolveImportErrorsResponse: - $ref: >- - #/components/examples/Saved_objects_resolve_missing_reference_response schema: type: object properties: - errors: - description: > - Specifies the objects that failed to resolve. - - - NOTE: One object can result in multiple errors, which - requires separate steps to resolve. For instance, a - `missing_references` error and a `conflict` error. - items: - type: object - type: array - success: - description: > - Indicates a successful import. When set to `false`, some - objects may not have been created. For additional - information, refer to the `errors` and `successResults` - properties. - type: boolean - successCount: - description: | - Indicates the number of successfully resolved records. - type: number - successResults: - description: > - Indicates the objects that are successfully imported, with - any metadata if applicable. - - - NOTE: Objects are only created when all resolvable errors - are addressed, including conflict and missing references. + items: items: type: object + properties: + id: + type: string + type: + oneOf: + - $ref: >- + #/components/schemas/Fleet_kibana_saved_object_type + - $ref: >- + #/components/schemas/Fleet_elasticsearch_asset_type + required: + - id + - type type: array - description: Indicates a successful call. + required: + - items + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Update package settings + tags: + - Elastic Package Manager (EPM) + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}/{filePath}': + get: + operationId: packages-get-file + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request. - summary: Resolve import errors + type: object + properties: + body: + type: object + headers: + type: object + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package file tags: - - saved objects - '/api/saved_objects/{type}': + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - in: path + name: filePath + required: true + schema: + type: string + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': post: - deprecated: true - description: Create a Kibana saved object with a randomly generated identifier. - operationId: createSavedObject + description: '' + operationId: reauthorize-transforms parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' - - description: 'If true, overwrites the document with the same identifier.' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: >- + Whether to include prerelease packages in categories count (e.g. + beta, rc, preview) in: query - name: overwrite + name: prerelease schema: + default: false type: boolean requestBody: content: @@ -10386,225 +10603,253 @@ paths: schema: type: object properties: - attributes: - $ref: '#/components/schemas/Saved_objects_attributes' - initialNamespaces: - $ref: '#/components/schemas/Saved_objects_initial_namespaces' - references: - $ref: '#/components/schemas/Saved_objects_references' - required: - - attributes - required: true + transforms: + items: + type: object + properties: + transformId: + type: string + type: array responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. - '409': + properties: + items: + items: + type: object + properties: + error: + type: string + success: + type: boolean + transformId: + type: string + required: + - transformId + - error + type: array + required: + - items + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Authorize transforms + tags: + - Elastic Package Manager (EPM) + '/api/fleet/epm/packages/{pkgName}/stats': + get: + operationId: get-package-stats + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a conflict error. - summary: Create a saved object + properties: + response: + $ref: '#/components/schemas/Fleet_package_usage_stats' + required: + - response + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package stats tags: - - saved objects - '/api/saved_objects/{type}/{id}': + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + /api/fleet/epm/packages/limited: get: - deprecated: true - description: Retrieve a single Kibana saved object by identifier. - operationId: getSavedObject - parameters: - - $ref: '#/components/parameters/Saved_objects_saved_object_id' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' + operationId: list-limited-packages responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. + properties: + items: + items: + type: string + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get limited package list + tags: + - Elastic Package Manager (EPM) + parameters: [] + '/api/fleet/epm/templates/{pkgName}/{pkgVersion}/inputs': + get: + operationId: get-inputs-template + responses: + '200': + description: OK '400': + $ref: '#/components/responses/Fleet_error' + summary: Get inputs template + tags: + - Elastic Package Manager (EPM) + parameters: + - in: path + name: pkgName + required: true + schema: + type: string + - in: path + name: pkgVersion + required: true + schema: + type: string + - description: Format of response - json or yaml + in: query + name: format + schema: + enum: + - json + - yaml + - yml + type: string + - description: Specify if version is prerelease + in: query + name: prerelease + schema: + type: boolean + - description: Ignore if the package is fails signature verification + in: query + name: ignoreUnverified + schema: + type: boolean + /api/fleet/epm/verification_key_id: + get: + operationId: packages-get-verification-key-id + responses: + '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request. - summary: Get a saved object - tags: - - saved objects - post: - deprecated: true - description: >- - Create a Kibana saved object and specify its identifier instead of using - a randomly generated ID. - operationId: createSavedObjectId - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - $ref: '#/components/parameters/Saved_objects_saved_object_id' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' - - description: 'If true, overwrites the document with the same identifier.' - in: query - name: overwrite - schema: - type: boolean - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - attributes: - $ref: '#/components/schemas/Saved_objects_attributes' - initialNamespaces: - $ref: '#/components/schemas/Saved_objects_initial_namespaces' - references: - $ref: '#/components/schemas/Saved_objects_initial_namespaces' - required: - - attributes - required: true + type: object + properties: + body: + type: object + properties: + id: + description: >- + the key ID of the GPG key used to verify package + signatures + nullable: true + type: string + headers: + type: object + statusCode: + type: number + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get package signature verification key ID + tags: + - Elastic Package Manager (EPM) + parameters: [] + /api/fleet/fleet_server_hosts: + get: + operationId: get-fleet-server-hosts responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. - '409': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: Indicates a conflict error. - summary: Create a saved object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_fleet_server_host' + type: array + page: + type: integer + perPage: + type: integer + total: + type: integer + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: List Fleet Server hosts tags: - - saved objects - put: - deprecated: true - description: Update the attributes for Kibana saved objects. - operationId: updateSavedObject - parameters: - - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' - - $ref: '#/components/parameters/Saved_objects_saved_object_id' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' + - Fleet Server hosts + post: + operationId: post-fleet-server-hosts requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - required: true + properties: + host_urls: + items: + type: string + type: array + id: + type: string + is_default: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this fleet server host. See + the proxies API for more information. + type: string + required: + - name + - host_urls responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. - '404': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: Indicates the object was not found. - '409': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - description: Indicates a conflict error. - summary: Update a saved object + properties: + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create Fleet Server host tags: - - saved objects - '/api/saved_objects/resolve/{type}/{id}': - get: - deprecated: true - description: > - Retrieve a single Kibana saved object by identifier using any legacy URL - alias if it exists. Under certain circumstances, when Kibana is - upgraded, saved object migrations may necessitate regenerating some - object IDs to enable new features. When an object's ID is regenerated, a - legacy URL alias is created for that object, preserving its old ID. In - such a scenario, that object can be retrieved using either its new ID or - its old ID. - operationId: resolveSavedObject + - Fleet Server hosts + '/api/fleet/fleet_server_hosts/{itemId}': + delete: + operationId: delete-fleet-server-hosts parameters: - - $ref: '#/components/parameters/Saved_objects_saved_object_id' - - $ref: '#/components/parameters/Saved_objects_saved_object_type' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - description: Indicates a successful call. + properties: + id: + type: string + required: + - id + description: OK '400': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Saved_objects_400_response' - description: Bad request. - summary: Resolve a saved object - tags: - - saved objects - /api/status: - get: - operationId: '%2Fapi%2Fstatus#0' - parameters: - - description: The version of the API to use - in: header - name: elastic-api-version - schema: - default: '2023-10-31' - enum: - - '2023-10-31' - type: string - - description: Set to "true" to get the response in v7 format. - in: query - name: v7format - required: false - schema: - type: boolean - - description: Set to "true" to get the response in v8 format. - in: query - name: v8format - required: false - schema: - type: boolean - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - anyOf: - - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' - - $ref: >- - #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse - description: >- - Kibana's operational status. A minimal response is sent for - unauthorized users. - description: Overall status is OK and Kibana should be functioning normally. - '503': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - anyOf: - - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' - - $ref: >- - #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse - description: >- - Kibana's operational status. A minimal response is sent for - unauthorized users. - description: >- - Kibana or some of it's essential services are unavailable. Kibana - may be degraded or unavailable. - summary: Get Kibana's current status + $ref: '#/components/responses/Fleet_error' + summary: Delete Fleet Server host by ID tags: - - system - /data_streams: + - Fleet Server hosts get: - operationId: data-streams-list + operationId: get-one-fleet-server-hosts responses: '200': content: @@ -10612,24 +10857,48 @@ paths: schema: type: object properties: - data_streams: - items: - $ref: '#/components/schemas/Fleet_data_stream' - type: array + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' + required: + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List data streams + summary: Get Fleet Server host by ID tags: - - Data streams - parameters: [] - /enrollment_api_keys: - get: - operationId: get-enrollment-api-keys + - Fleet Server hosts + parameters: + - in: path + name: itemId + required: true + schema: + type: string + put: + operationId: update-fleet-server-hosts parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + host_urls: + items: + type: string + type: array + is_default: + type: boolean + is_internal: + type: boolean + name: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this fleet server host. See + the proxies API for more information. + nullable: true + type: string responses: '200': content: @@ -10637,34 +10906,19 @@ paths: schema: type: object properties: - items: - items: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - type: array - list: - deprecated: true - items: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - type: array - page: - type: number - perPage: - type: number - total: - type: number + item: + $ref: '#/components/schemas/Fleet_fleet_server_host' required: - - items - - page - - perPage - - total + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List enrollment API keys + summary: Update Fleet Server host by ID tags: - - Fleet enrollment API keys + - Fleet Server hosts + /api/fleet/health_check: post: - operationId: create-enrollment-api-keys + operationId: fleet-server-health-check parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: @@ -10673,16 +10927,14 @@ paths: schema: type: object properties: - name: - description: The name of the enrollment API key. Must be unique. + host: + deprecated: true type: string - policy_id: - description: >- - The ID of the agent policy the Elastic Agent will be - enrolled in. + id: type: string required: - - policy_id + - id + required: true responses: '200': content: @@ -10690,23 +10942,39 @@ paths: schema: type: object properties: - action: - enum: - - created + host: + deprecated: true + type: string + id: + description: Fleet Server host id + type: string + status: type: string - item: - $ref: '#/components/schemas/Fleet_enrollment_api_key' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Create enrollment API key + summary: Fleet Server health check tags: - - Fleet enrollment API keys - '/enrollment_api_keys/{keyId}': - delete: - operationId: delete-enrollment-api-key + - Fleet internals + /api/fleet/kubernetes: + get: + operationId: get-full-k8s-manifest parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - in: query + name: download + required: false + schema: + type: boolean + - in: query + name: fleetServer + required: false + schema: + type: string + - in: query + name: enrolToken + required: false + schema: + type: string responses: '200': content: @@ -10714,20 +10982,19 @@ paths: schema: type: object properties: - action: - enum: - - deleted + item: type: string - required: - - action description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Revoke enrollment API key by ID by marking it as inactive + summary: Get full K8s agent manifest tags: - - Fleet enrollment API keys - get: - operationId: get-enrollment-api-key + - Fleet Kubernetes + /api/fleet/logstash_api_keys: + post: + operationId: generate-logstash-api-key + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: @@ -10735,27 +11002,17 @@ paths: schema: type: object properties: - item: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - required: - - item + api_key: + type: string description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get enrollment API key by ID + summary: Generate Logstash API key tags: - - Fleet enrollment API keys - parameters: - - in: path - name: keyId - required: true - schema: - type: string - /enrollment-api-keys: + - Fleet outputs + /api/fleet/outputs: get: - deprecated: true - operationId: get-enrollment-api-keys-deprecated - parameters: [] + operationId: get-outputs responses: '200': content: @@ -10765,35 +11022,28 @@ paths: properties: items: items: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - type: array - list: - deprecated: true - items: - $ref: '#/components/schemas/Fleet_enrollment_api_key' + $ref: '#/components/schemas/Fleet_output_create_request' type: array page: - type: number + type: integer perPage: - type: number + type: integer total: - type: number - required: - - items - - page - - perPage - - total + type: integer description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List enrollment API keys + summary: List outputs tags: - - Fleet enrollment API keys + - Fleet outputs post: - deprecated: true - operationId: create-enrollment-api-keys-deprecated - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + operationId: post-outputs + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_output_create_request' + required: true responses: '200': content: @@ -10801,22 +11051,17 @@ paths: schema: type: object properties: - action: - enum: - - created - type: string item: - $ref: '#/components/schemas/Fleet_enrollment_api_key' + $ref: '#/components/schemas/Fleet_output_create_request' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Create enrollment API key + summary: Create output tags: - - Fleet enrollment API keys - '/enrollment-api-keys/{keyId}': + - Fleet outputs + '/api/fleet/outputs/{outputId}': delete: - deprecated: true - operationId: delete-enrollment-api-key-deprecated + operationId: delete-output parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: @@ -10826,21 +11071,18 @@ paths: schema: type: object properties: - action: - enum: - - deleted + id: type: string required: - - action + - id description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete enrollment API key by ID + summary: Delete output by ID tags: - - Fleet enrollment API keys + - Fleet outputs get: - deprecated: true - operationId: get-enrollment-api-key-deprecated + operationId: get-output responses: '200': content: @@ -10849,163 +11091,121 @@ paths: type: object properties: item: - $ref: '#/components/schemas/Fleet_enrollment_api_key' - required: - - item + $ref: '#/components/schemas/Fleet_output_create_request' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get enrollment API key by ID + summary: Get output by ID tags: - - Fleet enrollment API keys + - Fleet outputs parameters: - in: path - name: keyId + name: outputId required: true schema: type: string - /epm/bulk_assets: - post: - operationId: bulk-get-assets + put: + operationId: update-output + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - assetIds: - description: list of items necessary to fetch assets - items: - type: object - properties: - id: - type: string - type: - type: string - type: array - required: - - assetIds + $ref: '#/components/schemas/Fleet_output_update_request' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_get_bulk_assets_response' + type: object + properties: + item: + $ref: '#/components/schemas/Fleet_output_update_request' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Bulk get assets + summary: Update output by ID tags: - - Elastic Package Manager (EPM) - /epm/categories: + - Fleet outputs + '/api/fleet/outputs/{outputId}/health': get: - operationId: get-package-categories + operationId: get-output-health responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_get_categories_response' + type: object + properties: + message: + description: long message if unhealthy + type: string + state: + description: 'state of output, HEALTHY or DEGRADED' + type: string + timestamp: + description: timestamp of reported state + type: string description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List package categories + summary: Get latest output health tags: - - Elastic Package Manager (EPM) + - Fleet outputs parameters: - - description: >- - Whether to include prerelease packages in categories count (e.g. beta, - rc, preview) - in: query - name: prerelease - schema: - default: false - type: boolean - - deprecated: true - in: query - name: experimental - schema: - default: false - type: boolean - - in: query - name: include_policy_templates + - in: path + name: outputId + required: true schema: - default: false - type: boolean - /epm/packages: + type: string + /api/fleet/package_policies: get: - operationId: list-all-packages - parameters: - - description: >- - Whether to exclude the install status of each package. Enabling this - option will opt in to caching for the response via `cache-control` - headers. If you don't need up-to-date installation info for a - package, and are querying for a list of available packages, - providing this flag can improve performance substantially. - in: query - name: excludeInstallStatus - schema: - default: false - type: boolean - - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) - in: query - name: prerelease - schema: - default: false - type: boolean - - deprecated: true - in: query - name: experimental - schema: - default: false - type: boolean - - in: query - name: category - schema: - type: string + operationId: get-package-policies + parameters: + - $ref: '#/components/parameters/Fleet_page_size' + - $ref: '#/components/parameters/Fleet_page_index' + - $ref: '#/components/parameters/Fleet_kuery' + - $ref: '#/components/parameters/Fleet_format' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_get_packages_response' + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + page: + type: number + perPage: + type: number + total: + type: number + required: + - items description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List packages + summary: List package policies tags: - - Elastic Package Manager (EPM) + - Fleet package policies + parameters: [] post: - description: '' - operationId: install-package-by-upload + operationId: create-package-policy parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - description: avoid erroring out on unexpected mapping update errors - in: query - name: ignoreMappingUpdateErrors - schema: - default: false - type: boolean - - description: >- - Skip data stream rollover during index template mapping or settings - update - in: query - name: skipDataStreamRollover - schema: - default: false - type: boolean + - $ref: '#/components/parameters/Fleet_format' requestBody: content: - application/gzip; Elastic-Api-Version=2023-10-31: - schema: - format: binary - type: string - application/zip; Elastic-Api-Version=2023-10-31: + application/json; Elastic-Api-Version=2023-10-31: schema: - format: binary - type: string + $ref: '#/components/schemas/Fleet_package_policy_request' + description: >- + You should use inputs as an object and not use the deprecated inputs + array. responses: '200': content: @@ -11013,110 +11213,65 @@ paths: schema: type: object properties: - _meta: - type: object - properties: - install_source: - enum: - - upload - - registry - - bundled - type: string - items: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array + item: + $ref: '#/components/schemas/Fleet_package_policy' required: - - items + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - '429': + '409': $ref: '#/components/responses/Fleet_error' - summary: Install by package by direct upload + summary: Create package policy tags: - - Elastic Package Manager (EPM) - /epm/packages/_bulk: + - Fleet package policies + /api/fleet/package_policies/_bulk_get: post: - operationId: bulk-install-packages + operationId: bulk-get-package-policies parameters: - - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) - in: query - name: prerelease - schema: - default: false - type: boolean + - $ref: '#/components/parameters/Fleet_format' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - force: - description: force install to ignore package verification errors - type: boolean - packages: - description: list of packages to install + ids: + description: list of package policy ids items: - oneOf: - - description: package name - type: string - - type: object - properties: - name: - description: package name - type: string - version: - description: package version - type: string + type: string type: array + ignoreMissing: + type: boolean required: - - packages + - ids responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - $ref: '#/components/schemas/Fleet_bulk_install_packages_response' + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_package_policy' + type: array + required: + - items description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Bulk install packages + summary: Bulk get package policies tags: - - Elastic Package Manager (EPM) - '/epm/packages/{pkgkey}': + - Fleet package policies + '/api/fleet/package_policies/{packagePolicyId}': delete: - deprecated: true - operationId: delete-package-deprecated + operationId: delete-package-policy parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - in: path - name: pkgkey - required: true + - in: query + name: force schema: - type: string - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - force: - type: boolean + type: boolean responses: '200': content: @@ -11124,109 +11279,53 @@ paths: schema: type: object properties: - response: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array + id: + type: string required: - - response + - id description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete ackage + summary: Delete package policy by ID tags: - - Elastic Package Manager (EPM) + - Fleet package policies get: - deprecated: true - operationId: get-package-deprecated + operationId: get-package-policy parameters: - - in: path - name: pkgkey - required: true - schema: - type: string - - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) - in: query - name: prerelease - schema: - default: false - type: boolean + - $ref: '#/components/parameters/Fleet_format' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - allOf: - - properties: - response: - $ref: '#/components/schemas/Fleet_package_info' - - properties: - savedObject: - type: string - status: - enum: - - installed - - installing - - install_failed - - not_installed - type: string - required: - - status - - savedObject type: object + properties: + item: + $ref: '#/components/schemas/Fleet_package_policy' + required: + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package + summary: Get package policy by ID tags: - - Elastic Package Manager (EPM) - post: - deprecated: true - description: '' - operationId: install-package-deprecated - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - in: path - name: pkgkey - required: true - schema: - type: string - - description: avoid erroring out on unexpected mapping update errors - in: query - name: ignoreMappingUpdateErrors - schema: - default: false - type: boolean - - description: >- - Skip data stream rollover during index template mapping or settings - update - in: query - name: skipDataStreamRollover - schema: - default: false - type: boolean + - Fleet package policies + parameters: + - in: path + name: packagePolicyId + required: true + schema: + type: string + put: + operationId: update-package-policy + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Fleet_format' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - force: - type: boolean + $ref: '#/components/schemas/Fleet_package_policy_request' responses: '200': content: @@ -11234,231 +11333,194 @@ paths: schema: type: object properties: - response: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array + item: + $ref: '#/components/schemas/Fleet_package_policy' + sucess: + type: boolean required: - - response + - item + - sucess description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Install package + summary: Update package policy by ID tags: - - Elastic Package Manager (EPM) - '/epm/packages/{pkgName}/{pkgVersion}': - delete: - operationId: delete-package + - Fleet package policies + /api/fleet/package_policies/delete: + post: + operationId: post-delete-package-policy parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - description: delete package even if policies used by agents - in: query - name: force - schema: - type: boolean requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - deprecated: true type: object properties: force: type: boolean + packagePolicyIds: + items: + type: string + type: array + required: + - packagePolicyIds responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - items: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array - required: - - items + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + type: array description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Delete package + summary: Delete package policy tags: - - Elastic Package Manager (EPM) - get: - operationId: get-package + - Fleet package policies + /api/fleet/package_policies/upgrade: + post: + operationId: upgrade-package-policy + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + packagePolicyIds: + items: + type: string + type: array + required: + - packagePolicyIds responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - allOf: - - properties: - item: - $ref: '#/components/schemas/Fleet_package_info' - - properties: - keepPoliciesUpToDate: - type: boolean - latestVersion: - type: string - licensePath: - type: string - notice: - type: string - savedObject: - deprecated: true - type: object - status: - enum: - - installed - - installing - - install_failed - - not_installed - type: string - required: - - status - - savedObject - type: object + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + type: array description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package + '409': + $ref: '#/components/responses/Fleet_error' + summary: Upgrade package policy to a newer package version tags: - - Elastic Package Manager (EPM) - parameters: - - in: path - name: pkgName - required: true - schema: - type: string - - in: path - name: pkgVersion - required: true - schema: - type: string - - description: Ignore if the package is fails signature verification - in: query - name: ignoreUnverified - schema: - type: boolean - - description: >- - Return all fields from the package manifest, not just those supported - by the Elastic Package Registry - in: query - name: full - schema: - type: boolean - - description: >- - Whether to return prerelease versions of packages (e.g. beta, rc, - preview) - in: query - name: prerelease - schema: - default: false - type: boolean + - Fleet package policies + /api/fleet/package_policies/upgrade/dryrun: post: - description: '' - operationId: install-package - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - description: avoid erroring out on unexpected mapping update errors - in: query - name: ignoreMappingUpdateErrors - schema: - default: false - type: boolean - - description: >- - Skip data stream rollover during index template mapping or settings - update - in: query - name: skipDataStreamRollover - schema: - default: false - type: boolean + operationId: upgrade-package-policy-dry-run requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - force: - type: boolean - ignore_constraints: - type: boolean + packagePolicyIds: + items: + type: string + type: array + packageVersion: + type: string + required: + - packagePolicyIds responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - _meta: - type: object - properties: - install_source: - enum: - - registry - - upload - - bundled - type: string - items: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type + items: + type: object + properties: + agent_diff: + $ref: '#/components/schemas/Fleet_upgrade_agent_diff' + diff: + $ref: '#/components/schemas/Fleet_upgrade_diff' + hasErrors: + type: boolean + required: + - hasErrors + type: array + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Dry run package policy upgrade + tags: + - Fleet package policies + /api/fleet/proxies: + get: + operationId: get-fleet-proxies + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + items: + items: + $ref: '#/components/schemas/Fleet_proxies' type: array - required: - - items + page: + type: integer + perPage: + type: integer + total: + type: integer description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Install package + summary: List proxies tags: - - Elastic Package Manager (EPM) - put: - description: '' - operationId: update-package + - Fleet proxies + post: + operationId: post-fleet-proxies requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - keepPoliciesUpToDate: - type: boolean + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + id: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string + required: + - name + - url responses: '200': content: @@ -11466,33 +11528,38 @@ paths: schema: type: object properties: - items: - items: - type: object - properties: - id: - type: string - type: - oneOf: - - $ref: >- - #/components/schemas/Fleet_kibana_saved_object_type - - $ref: >- - #/components/schemas/Fleet_elasticsearch_asset_type - required: - - id - - type - type: array + item: + $ref: '#/components/schemas/Fleet_proxies' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create proxy + tags: + - Fleet proxies + '/api/fleet/proxies/{itemId}': + delete: + operationId: delete-fleet-proxies + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + id: + type: string required: - - items + - id description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Update package settings + summary: Delete proxy by ID tags: - - Elastic Package Manager (EPM) - '/epm/packages/{pkgName}/{pkgVersion}/{filePath}': + - Fleet proxies get: - operationId: packages-get-file + operationId: get-one-fleet-proxies responses: '200': content: @@ -11500,71 +11567,44 @@ paths: schema: type: object properties: - body: - type: object - headers: - type: object - statusCode: - type: number + item: + $ref: '#/components/schemas/Fleet_proxies' + required: + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package file + summary: Get proxy by ID tags: - - Elastic Package Manager (EPM) + - Fleet proxies parameters: - in: path - name: pkgName - required: true - schema: - type: string - - in: path - name: pkgVersion - required: true - schema: - type: string - - in: path - name: filePath + name: itemId required: true schema: type: string - '/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': - post: - description: '' - operationId: reauthorize-transforms + put: + operationId: update-fleet-proxies parameters: - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - in: path - name: pkgName - required: true - schema: - type: string - - in: path - name: pkgVersion - required: true - schema: - type: string - - description: >- - Whether to include prerelease packages in categories count (e.g. - beta, rc, preview) - in: query - name: prerelease - schema: - default: false - type: boolean requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - transforms: - items: - type: object - properties: - transformId: - type: string - type: array + certificate: + type: string + certificate_authorities: + type: string + certificate_key: + type: string + name: + type: string + proxy_headers: + type: object + url: + type: string responses: '200': content: @@ -11572,149 +11612,150 @@ paths: schema: type: object properties: - items: - items: - type: object - properties: - error: - type: string - success: - type: boolean - transformId: - type: string - required: - - transformId - - error - type: array + item: + $ref: '#/components/schemas/Fleet_proxies' required: - - items + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Authorize transforms + summary: Update proxy by ID tags: - - Elastic Package Manager (EPM) - '/epm/packages/{pkgName}/stats': + - Fleet proxies + /api/fleet/service_tokens: + post: + operationId: generate-service-token + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + value: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create service token + tags: + - Fleet service tokens + /api/fleet/service-tokens: + post: + deprecated: true + operationId: generate-service-token-deprecated + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + name: + type: string + value: + type: string + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Create service token + tags: + - Fleet service tokens + /api/fleet/settings: get: - operationId: get-package-stats + operationId: get-settings + responses: + '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Fleet_fleet_settings_response' + description: OK + '400': + $ref: '#/components/responses/Fleet_error' + summary: Get settings + tags: + - Fleet internals + put: + operationId: update-settings + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + properties: + additional_yaml_config: + type: string + fleet_server_hosts: + description: Protocol and path must be the same for each URL + items: + type: string + type: array + has_seen_add_data_notice: + type: boolean responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - response: - $ref: '#/components/schemas/Fleet_package_usage_stats' - required: - - response + $ref: '#/components/schemas/Fleet_fleet_settings_response' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get package stats + summary: Update settings tags: - - Elastic Package Manager (EPM) - parameters: - - in: path - name: pkgName - required: true - schema: - type: string - /epm/packages/limited: - get: - operationId: list-limited-packages + - Fleet internals + /api/fleet/setup: + post: + operationId: setup + parameters: + - $ref: '#/components/parameters/Fleet_kbn_xsrf' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - items: - items: - type: string - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get limited package list - tags: - - Elastic Package Manager (EPM) - parameters: [] - '/epm/templates/{pkgName}/{pkgVersion}/inputs': - get: - operationId: get-inputs-template - responses: - '200': + $ref: '#/components/schemas/Fleet_fleet_setup_response' description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Get inputs template - tags: - - Elastic Package Manager (EPM) - parameters: - - in: path - name: pkgName - required: true - schema: - type: string - - in: path - name: pkgVersion - required: true - schema: - type: string - - description: Format of response - json or yaml - in: query - name: format - schema: - enum: - - json - - yaml - - yml - type: string - - description: Specify if version is prerelease - in: query - name: prerelease - schema: - type: boolean - - description: Ignore if the package is fails signature verification - in: query - name: ignoreUnverified - schema: - type: boolean - /epm/verification_key_id: - get: - operationId: packages-get-verification-key-id - responses: - '200': + '500': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - body: - type: object - properties: - id: - description: >- - the key ID of the GPG key used to verify package - signatures - nullable: true - type: string - headers: - type: object - statusCode: - type: number - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get package signature verification key ID + message: + type: string + description: Internal Server Error + summary: Initiate Fleet setup tags: - - Elastic Package Manager (EPM) - parameters: [] - /fleet_server_hosts: + - Fleet internals + /api/fleet/uninstall_tokens: get: - operationId: get-fleet-server-hosts + operationId: get-uninstall-tokens + parameters: + - description: The number of items to return + in: query + name: perPage + required: false + schema: + default: 20 + minimum: 5 + type: integer + - $ref: '#/components/parameters/Fleet_page_index' + - description: Partial match filtering for policy IDs + in: query + name: policyId + required: false + schema: + type: string responses: '200': content: @@ -11724,48 +11765,45 @@ paths: properties: items: items: - $ref: '#/components/schemas/Fleet_fleet_server_host' + type: object + properties: + created_at: + type: string + id: + type: string + policy_id: + type: string + required: + - id + - policy_id + - created_at type: array page: - type: integer + type: number perPage: - type: integer + type: number total: - type: integer + type: number + required: + - items + - total + - page + - perPage description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: List Fleet Server hosts + summary: List metadata for latest uninstall tokens per agent policy tags: - - Fleet Server hosts - post: - operationId: post-fleet-server-hosts - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - host_urls: - items: - type: string - type: array - id: - type: string - is_default: - type: boolean - is_internal: - type: boolean - name: - type: string - proxy_id: - description: >- - The ID of the proxy to use for this fleet server host. See - the proxies API for more information. - type: string - required: - - name - - host_urls + - Fleet uninstall tokens + '/api/fleet/uninstall_tokens/{uninstallTokenId}': + get: + operationId: get-uninstall-token + parameters: + - in: path + name: uninstallTokenId + required: true + schema: + type: string responses: '200': content: @@ -11774,121 +11812,159 @@ paths: type: object properties: item: - $ref: '#/components/schemas/Fleet_fleet_server_host' + type: object + properties: + created_at: + type: string + id: + type: string + policy_id: + type: string + token: + type: string + required: + - id + - token + - policy_id + - created_at + required: + - item description: OK '400': $ref: '#/components/responses/Fleet_error' - summary: Create Fleet Server host + summary: Get one decrypted uninstall token by its ID tags: - - Fleet Server hosts - '/fleet_server_hosts/{itemId}': - delete: - operationId: delete-fleet-server-hosts + - Fleet uninstall tokens + /api/ml/saved_objects/sync: + get: + description: > + Synchronizes Kibana saved objects for machine learning jobs and trained + models in the default space. You must have `all` privileges for the + **Machine Learning** feature in the **Analytics** section of the Kibana + feature privileges. This API runs automatically when you start Kibana + and periodically thereafter. + operationId: mlSync parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Machine_learning_APIs_simulateParam' responses: '200': + content: + application/json; Elastic-Api-Version=2023-10-31: + examples: + syncExample: + $ref: '#/components/examples/Machine_learning_APIs_mlSyncExample' + schema: + $ref: '#/components/schemas/Machine_learning_APIs_mlSync200Response' + description: Indicates a successful call + '401': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - id: - type: string - required: - - id - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete Fleet Server host by ID + $ref: '#/components/schemas/Machine_learning_APIs_mlSync4xxResponse' + description: Authorization information is missing or invalid. + summary: Sync saved objects in the default space tags: - - Fleet Server hosts - get: - operationId: get-one-fleet-server-hosts + - ml + /api/saved_objects/_bulk_create: + post: + deprecated: true + operationId: bulkCreateSavedObjects + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: 'When true, overwrites the document with the same identifier.' + in: query + name: overwrite + schema: + type: boolean + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + type: array + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - item: - $ref: '#/components/schemas/Fleet_fleet_server_host' - required: - - item - description: OK + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - summary: Get Fleet Server host by ID + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Create saved objects tags: - - Fleet Server hosts - parameters: - - in: path - name: itemId - required: true - schema: - type: string - put: - operationId: update-fleet-server-hosts + - saved objects + /api/saved_objects/_bulk_delete: + post: + deprecated: true + description: | + WARNING: When you delete a saved object, it cannot be recovered. + operationId: bulkDeleteSavedObjects parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: > + When true, force delete objects that exist in multiple namespaces. + Note that the option applies to the whole request. Use the delete + object API to specify per-object deletion behavior. TIP: Use this if + you attempted to delete objects and received an HTTP 400 error with + the following message: "Unable to delete saved object that exists in + multiple namespaces, use the force option to delete it anyway". + WARNING: When you bulk delete objects that exist in multiple + namespaces, the API also deletes legacy url aliases that reference + the object. These requests are batched to minimise the impact but + they can place a heavy load on Kibana. Make sure you limit the + number of objects that exist in multiple namespaces in a single bulk + delete operation. + in: query + name: force + schema: + type: boolean requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - host_urls: - items: - type: string - type: array - is_default: - type: boolean - is_internal: - type: boolean - name: - type: string - proxy_id: - description: >- - The ID of the proxy to use for this fleet server host. See - the proxies API for more information. - nullable: true - type: string + items: + type: object + type: array + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - item: - $ref: '#/components/schemas/Fleet_fleet_server_host' - required: - - item - description: OK + description: > + Indicates a successful call. NOTE: This HTTP response code indicates + that the bulk operation succeeded. Errors pertaining to individual + objects will be returned in the response body. '400': - $ref: '#/components/responses/Fleet_error' - summary: Update Fleet Server host by ID + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Delete saved objects tags: - - Fleet Server hosts - /health_check: + - saved objects + /api/saved_objects/_bulk_get: post: - operationId: fleet-server-health-check + deprecated: true + operationId: bulkGetSavedObjects parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - host: - deprecated: true - type: string - id: - type: string - required: - - id + items: + type: object + type: array required: true responses: '200': @@ -11896,687 +11972,824 @@ paths: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - host: - deprecated: true - type: string - id: - description: Fleet Server host id - type: string - status: - type: string - description: OK + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - summary: Fleet Server health check + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Get saved objects tags: - - Fleet internals - /kubernetes: - get: - operationId: get-full-k8s-manifest + - saved objects + /api/saved_objects/_bulk_resolve: + post: + deprecated: true + description: > + Retrieve multiple Kibana saved objects by identifier using any legacy + URL aliases if they exist. Under certain circumstances when Kibana is + upgraded, saved object migrations may necessitate regenerating some + object IDs to enable new features. When an object's ID is regenerated, a + legacy URL alias is created for that object, preserving its old ID. In + such a scenario, that object can be retrieved by the bulk resolve API + using either its new ID or its old ID. + operationId: bulkResolveSavedObjects parameters: - - in: query - name: download - required: false - schema: - type: boolean - - in: query - name: fleetServer - required: false - schema: - type: string - - in: query - name: enrolToken - required: false - schema: - type: string + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + type: array + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - item: - type: string - description: OK + description: > + Indicates a successful call. NOTE: This HTTP response code indicates + that the bulk operation succeeded. Errors pertaining to individual + objects will be returned in the response body. '400': - $ref: '#/components/responses/Fleet_error' - summary: Get full K8s agent manifest + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Resolve saved objects tags: - - Fleet Kubernetes - /logstash_api_keys: + - saved objects + /api/saved_objects/_bulk_update: post: - operationId: generate-logstash-api-key + deprecated: true + description: Update the attributes for multiple Kibana saved objects. + operationId: bulkUpdateSavedObjects parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + requestBody: + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + items: + type: object + type: array + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - api_key: - type: string - description: OK + description: > + Indicates a successful call. NOTE: This HTTP response code indicates + that the bulk operation succeeded. Errors pertaining to individual + objects will be returned in the response body. '400': - $ref: '#/components/responses/Fleet_error' - summary: Generate Logstash API key - tags: - - Fleet outputs - /outputs: - get: - operationId: get-outputs - responses: - '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_output_create_request' - type: array - page: - type: integer - perPage: - type: integer - total: - type: integer - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List outputs + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Update saved objects tags: - - Fleet outputs + - saved objects + /api/saved_objects/_export: post: - operationId: post-outputs + description: > + Retrieve sets of saved objects that you want to import into Kibana. + + You must include `type` or `objects` in the request body. + + + Exported saved objects are not backwards compatible and cannot be + imported into an older version of Kibana. + + + NOTE: The `savedObjects.maxImportExportSize` configuration setting + limits the number of saved objects which may be exported. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: exportSavedObjectsDefault + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: + examples: + exportSavedObjectsRequest: + $ref: '#/components/examples/Saved_objects_export_objects_request' schema: - $ref: '#/components/schemas/Fleet_output_create_request' + type: object + properties: + excludeExportDetails: + default: false + description: Do not add export details entry at the end of the stream. + type: boolean + includeReferencesDeep: + description: >- + Includes all of the referenced objects in the exported + objects. + type: boolean + objects: + description: A list of objects to export. + items: + type: object + type: array + type: + description: >- + The saved object types to include in the export. Use `*` to + export all the types. + oneOf: + - type: string + - items: + type: string + type: array required: true responses: '200': content: - application/json; Elastic-Api-Version=2023-10-31: + application/x-ndjson; Elastic-Api-Version=2023-10-31: + examples: + exportSavedObjectsResponse: + $ref: '#/components/examples/Saved_objects_export_objects_response' schema: + additionalProperties: true type: object - properties: - item: - $ref: '#/components/schemas/Fleet_output_create_request' - description: OK + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - summary: Create output - tags: - - Fleet outputs - '/outputs/{outputId}': - delete: - operationId: delete-output - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - id: - type: string - required: - - id - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete output by ID + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Export saved objects tags: - - Fleet outputs + - saved objects + /api/saved_objects/_find: get: - operationId: get-output + deprecated: true + description: Retrieve a paginated set of Kibana saved objects. + operationId: findSavedObjects + parameters: + - description: > + An aggregation structure, serialized as a string. The field format + is similar to filter, meaning that to use a saved object type + attribute in the aggregation, the `savedObjectType.attributes.title: + "myTitle"` format must be used. For root fields, the syntax is + `savedObjectType.rootField`. NOTE: As objects change in Kibana, the + results on each page of the response also change. Use the find API + for traditional paginated results, but avoid using it to export + large amounts of data. + in: query + name: aggs + schema: + type: string + - description: The default operator to use for the `simple_query_string`. + in: query + name: default_search_operator + schema: + type: string + - description: The fields to return in the attributes key of the response. + in: query + name: fields + schema: + oneOf: + - type: string + - type: array + - description: > + The filter is a KQL string with the caveat that if you filter with + an attribute from your saved object type, it should look like that: + `savedObjectType.attributes.title: "myTitle"`. However, if you use a + root attribute of a saved object such as `updated_at`, you will have + to define your filter like that: `savedObjectType.updated_at > + 2018-12-22`. + in: query + name: filter + schema: + type: string + - description: >- + Filters to objects that do not have a relationship with the type and + identifier combination. + in: query + name: has_no_reference + schema: + type: object + - description: >- + The operator to use for the `has_no_reference` parameter. Either + `OR` or `AND`. Defaults to `OR`. + in: query + name: has_no_reference_operator + schema: + type: string + - description: >- + Filters to objects that have a relationship with the type and ID + combination. + in: query + name: has_reference + schema: + type: object + - description: >- + The operator to use for the `has_reference` parameter. Either `OR` + or `AND`. Defaults to `OR`. + in: query + name: has_reference_operator + schema: + type: string + - description: The page of objects to return. + in: query + name: page + schema: + type: integer + - description: The number of objects to return per page. + in: query + name: per_page + schema: + type: integer + - description: >- + An Elasticsearch `simple_query_string` query that filters the + objects in the response. + in: query + name: search + schema: + type: string + - description: >- + The fields to perform the `simple_query_string` parsed query + against. + in: query + name: search_fields + schema: + oneOf: + - type: string + - type: array + - description: > + Sorts the response. Includes "root" and "type" fields. "root" fields + exist for all saved objects, such as "updated_at". "type" fields are + specific to an object type, such as fields returned in the + attributes key of the response. When a single type is defined in the + type parameter, the "root" and "type" fields are allowed, and + validity checks are made in that order. When multiple types are + defined in the type parameter, only "root" fields are allowed. + in: query + name: sort_field + schema: + type: string + - description: The saved object types to include. + in: query + name: type + required: true + schema: + oneOf: + - type: string + - type: array responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - item: - $ref: '#/components/schemas/Fleet_output_create_request' - description: OK + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - summary: Get output by ID + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request + summary: Search for saved objects tags: - - Fleet outputs - parameters: - - in: path - name: outputId - required: true - schema: - type: string - put: - operationId: update-output + - saved objects + /api/saved_objects/_import: + post: + description: > + Create sets of Kibana saved objects from a file created by the export + API. + + Saved objects can be imported only into the same version, a newer minor + on the same major, or the next major. Exported saved objects are not + backwards compatible and cannot be imported into an older version of + Kibana. + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: importSavedObjectsDefault parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: > + Creates copies of saved objects, regenerates each object ID, and + resets the origin. When used, potential conflict errors are avoided. + NOTE: This option cannot be used with the `overwrite` and + `compatibilityMode` options. + in: query + name: createNewCopies + required: false + schema: + type: boolean + - description: > + Overwrites saved objects when they already exist. When used, + potential conflict errors are automatically resolved by overwriting + the destination object. NOTE: This option cannot be used with the + `createNewCopies` option. + in: query + name: overwrite + required: false + schema: + type: boolean + - description: > + Applies various adjustments to the saved objects that are being + imported to maintain compatibility between different Kibana + versions. Use this option only if you encounter issues with imported + saved objects. NOTE: This option cannot be used with the + `createNewCopies` option. + in: query + name: compatibilityMode + required: false + schema: + type: boolean requestBody: content: - application/json; Elastic-Api-Version=2023-10-31: + multipart/form-data; Elastic-Api-Version=2023-10-31: + examples: + importObjectsRequest: + $ref: '#/components/examples/Saved_objects_import_objects_request' schema: - $ref: '#/components/schemas/Fleet_output_update_request' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_output_update_request' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update output by ID - tags: - - Fleet outputs - '/outputs/{outputId}/health': - get: - operationId: get-output-health - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - message: - description: long message if unhealthy - type: string - state: - description: 'state of output, HEALTHY or DEGRADED' - type: string - timestamp: - description: timestamp of reported state - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get latest output health - tags: - - Fleet outputs - parameters: - - in: path - name: outputId + type: object + properties: + file: + description: > + A file exported using the export API. NOTE: The + `savedObjects.maxImportExportSize` configuration setting + limits the number of saved objects which may be included in + this file. Similarly, the + `savedObjects.maxImportPayloadBytes` setting limits the + overall size of the file that can be imported. required: true - schema: - type: string - /package_policies: - get: - operationId: get-package-policies - parameters: - - $ref: '#/components/parameters/Fleet_page_size' - - $ref: '#/components/parameters/Fleet_page_index' - - $ref: '#/components/parameters/Fleet_kuery' - - $ref: '#/components/parameters/Fleet_format' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + importObjectsResponse: + $ref: '#/components/examples/Saved_objects_import_objects_response' schema: type: object properties: - items: + errors: + description: > + Indicates the import was unsuccessful and specifies the + objects that failed to import. + + + NOTE: One object may result in multiple errors, which + requires separate steps to resolve. For instance, a + `missing_references` error and conflict error. items: - $ref: '#/components/schemas/Fleet_package_policy' + type: object type: array - page: - type: number - perPage: - type: number - total: - type: number - required: - - items - description: OK + success: + description: > + Indicates when the import was successfully completed. When + set to false, some objects may not have been created. For + additional information, refer to the `errors` and + `successResults` properties. + type: boolean + successCount: + description: Indicates the number of successfully imported records. + type: integer + successResults: + description: > + Indicates the objects that are successfully imported, with + any metadata if applicable. + + + NOTE: Objects are created only when all resolvable errors + are addressed, including conflicts and missing references. + If objects are created as new copies, each entry in the + `successResults` array includes a `destinationId` + attribute. + items: + type: object + type: array + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - summary: List package policies + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Import saved objects tags: - - Fleet package policies - parameters: [] + - saved objects + x-codeSamples: + - label: Import with createNewCopies + lang: cURL + source: | + curl \ + -X POST api/saved_objects/_import?createNewCopies=true + -H "kbn-xsrf: true" + --form file=@file.ndjson + /api/saved_objects/_resolve_import_errors: post: - operationId: create-package-policy + description: > + To resolve errors from the Import objects API, you can: + + + * Retry certain saved objects + + * Overwrite specific saved objects + + * Change references to different saved objects + + + This functionality is in technical preview and may be changed or removed + in a future release. Elastic will work to fix any issues, but features + in technical preview are not subject to the support SLA of official GA + features. + operationId: resolveImportErrors parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - $ref: '#/components/parameters/Fleet_format' + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - description: > + Applies various adjustments to the saved objects that are being + imported to maintain compatibility between different Kibana + versions. When enabled during the initial import, also enable when + resolving import errors. This option cannot be used with the + `createNewCopies` option. + in: query + name: compatibilityMode + required: false + schema: + type: boolean + - description: > + Creates copies of the saved objects, regenerates each object ID, and + resets the origin. When enabled during the initial import, also + enable when resolving import errors. + in: query + name: createNewCopies + required: false + schema: + type: boolean requestBody: content: - application/json; Elastic-Api-Version=2023-10-31: + multipart/form-data; Elastic-Api-Version=2023-10-31: + examples: + resolveImportErrorsRequest: + $ref: >- + #/components/examples/Saved_objects_resolve_missing_reference_request schema: - $ref: '#/components/schemas/Fleet_package_policy_request' - description: >- - You should use inputs as an object and not use the deprecated inputs - array. + type: object + properties: + file: + description: The same file given to the import API. + format: binary + type: string + retries: + description: >- + The retry operations, which can specify how to resolve + different types of errors. + items: + type: object + properties: + destinationId: + description: >- + Specifies the destination ID that the imported object + should have, if different from the current ID. + type: string + id: + description: The saved object ID. + type: string + ignoreMissingReferences: + description: >- + When set to `true`, ignores missing reference errors. + When set to `false`, does nothing. + type: boolean + overwrite: + description: >- + When set to `true`, the source object overwrites the + conflicting destination object. When set to `false`, + does nothing. + type: boolean + replaceReferences: + description: >- + A list of `type`, `from`, and `to` used to change the + object references. + items: + type: object + properties: + from: + type: string + to: + type: string + type: + type: string + type: array + type: + description: The saved object type. + type: string + required: + - type + - id + type: array + required: + - retries + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: + examples: + resolveImportErrorsResponse: + $ref: >- + #/components/examples/Saved_objects_resolve_missing_reference_response schema: type: object properties: - item: - $ref: '#/components/schemas/Fleet_package_policy' - required: - - item - description: OK + errors: + description: > + Specifies the objects that failed to resolve. + + + NOTE: One object can result in multiple errors, which + requires separate steps to resolve. For instance, a + `missing_references` error and a `conflict` error. + items: + type: object + type: array + success: + description: > + Indicates a successful import. When set to `false`, some + objects may not have been created. For additional + information, refer to the `errors` and `successResults` + properties. + type: boolean + successCount: + description: | + Indicates the number of successfully resolved records. + type: number + successResults: + description: > + Indicates the objects that are successfully imported, with + any metadata if applicable. + + + NOTE: Objects are only created when all resolvable errors + are addressed, including conflict and missing references. + items: + type: object + type: array + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - '409': - $ref: '#/components/responses/Fleet_error' - summary: Create package policy + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Resolve import errors tags: - - Fleet package policies - /package_policies/_bulk_get: + - saved objects + '/api/saved_objects/{type}': post: - operationId: bulk-get-package-policies + deprecated: true + description: Create a Kibana saved object with a randomly generated identifier. + operationId: createSavedObject parameters: - - $ref: '#/components/parameters/Fleet_format' + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' + - description: 'If true, overwrites the document with the same identifier.' + in: query + name: overwrite + schema: + type: boolean requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - ids: - description: list of package policy ids - items: - type: string - type: array - ignoreMissing: - type: boolean + attributes: + $ref: '#/components/schemas/Saved_objects_attributes' + initialNamespaces: + $ref: '#/components/schemas/Saved_objects_initial_namespaces' + references: + $ref: '#/components/schemas/Saved_objects_references' required: - - ids + - attributes + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_package_policy' - type: array - required: - - items - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Bulk get package policies - tags: - - Fleet package policies - '/package_policies/{packagePolicyId}': - delete: - operationId: delete-package-policy - parameters: - - in: query - name: force - schema: - type: boolean - responses: - '200': + description: Indicates a successful call. + '409': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - id: - type: string - required: - - id - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete package policy by ID + description: Indicates a conflict error. + summary: Create a saved object tags: - - Fleet package policies + - saved objects + '/api/saved_objects/{type}/{id}': get: - operationId: get-package-policy - parameters: - - $ref: '#/components/parameters/Fleet_format' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_package_policy' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get package policy by ID - tags: - - Fleet package policies - parameters: - - in: path - name: packagePolicyId - required: true - schema: - type: string - put: - operationId: update-package-policy + deprecated: true + description: Retrieve a single Kibana saved object by identifier. + operationId: getSavedObject parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - - $ref: '#/components/parameters/Fleet_format' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_package_policy_request' + - $ref: '#/components/parameters/Saved_objects_saved_object_id' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - item: - $ref: '#/components/schemas/Fleet_package_policy' - sucess: - type: boolean - required: - - item - - sucess - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update package policy by ID - tags: - - Fleet package policies - /package_policies/delete: - post: - operationId: post-delete-package-policy - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - force: - type: boolean - packagePolicyIds: - items: - type: string - type: array - required: - - packagePolicyIds - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - items: - type: object - properties: - id: - type: string - name: - type: string - success: - type: boolean - required: - - id - - success - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete package policy - tags: - - Fleet package policies - /package_policies/upgrade: - post: - operationId: upgrade-package-policy - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - packagePolicyIds: - items: - type: string - type: array - required: - - packagePolicyIds - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - items: - type: object - properties: - id: - type: string - name: - type: string - success: - type: boolean - required: - - id - - success - type: array - description: OK + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - '409': - $ref: '#/components/responses/Fleet_error' - summary: Upgrade package policy to a newer package version + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Get a saved object tags: - - Fleet package policies - /package_policies/upgrade/dryrun: + - saved objects post: - operationId: upgrade-package-policy-dry-run + deprecated: true + description: >- + Create a Kibana saved object and specify its identifier instead of using + a randomly generated ID. + operationId: createSavedObjectId + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_saved_object_id' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' + - description: 'If true, overwrites the document with the same identifier.' + in: query + name: overwrite + schema: + type: boolean requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object properties: - packagePolicyIds: - items: - type: string - type: array - packageVersion: - type: string + attributes: + $ref: '#/components/schemas/Saved_objects_attributes' + initialNamespaces: + $ref: '#/components/schemas/Saved_objects_initial_namespaces' + references: + $ref: '#/components/schemas/Saved_objects_initial_namespaces' required: - - packagePolicyIds + - attributes + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - items: - type: object - properties: - agent_diff: - $ref: '#/components/schemas/Fleet_upgrade_agent_diff' - diff: - $ref: '#/components/schemas/Fleet_upgrade_diff' - hasErrors: - type: boolean - required: - - hasErrors - type: array - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Dry run package policy upgrade - tags: - - Fleet package policies - /proxies: - get: - operationId: get-fleet-proxies - responses: - '200': + type: object + description: Indicates a successful call. + '409': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - items: - items: - $ref: '#/components/schemas/Fleet_proxies' - type: array - page: - type: integer - perPage: - type: integer - total: - type: integer - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List proxies + description: Indicates a conflict error. + summary: Create a saved object tags: - - Fleet proxies - post: - operationId: post-fleet-proxies + - saved objects + put: + deprecated: true + description: Update the attributes for Kibana saved objects. + operationId: updateSavedObject + parameters: + - $ref: '#/components/parameters/Saved_objects_kbn_xsrf' + - $ref: '#/components/parameters/Saved_objects_saved_object_id' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' requestBody: content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - certificate: - type: string - certificate_authorities: - type: string - certificate_key: - type: string - id: - type: string - name: - type: string - proxy_headers: - type: object - url: - type: string - required: - - name - - url + required: true responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - item: - $ref: '#/components/schemas/Fleet_proxies' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create proxy - tags: - - Fleet proxies - '/proxies/{itemId}': - delete: - operationId: delete-fleet-proxies - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': + description: Indicates a successful call. + '404': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - id: - type: string - required: - - id - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Delete proxy by ID + description: Indicates the object was not found. + '409': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + type: object + description: Indicates a conflict error. + summary: Update a saved object tags: - - Fleet proxies + - saved objects + '/api/saved_objects/resolve/{type}/{id}': get: - operationId: get-one-fleet-proxies + deprecated: true + description: > + Retrieve a single Kibana saved object by identifier using any legacy URL + alias if it exists. Under certain circumstances, when Kibana is + upgraded, saved object migrations may necessitate regenerating some + object IDs to enable new features. When an object's ID is regenerated, a + legacy URL alias is created for that object, preserving its old ID. In + such a scenario, that object can be retrieved using either its new ID or + its old ID. + operationId: resolveSavedObject + parameters: + - $ref: '#/components/parameters/Saved_objects_saved_object_id' + - $ref: '#/components/parameters/Saved_objects_saved_object_type' responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: type: object - properties: - item: - $ref: '#/components/schemas/Fleet_proxies' - required: - - item - description: OK + description: Indicates a successful call. '400': - $ref: '#/components/responses/Fleet_error' - summary: Get proxy by ID + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + $ref: '#/components/schemas/Saved_objects_400_response' + description: Bad request. + summary: Resolve a saved object tags: - - Fleet proxies - parameters: - - in: path - name: itemId - required: true - schema: - type: string - put: - operationId: update-fleet-proxies + - saved objects + /api/status: + get: + operationId: '%2Fapi%2Fstatus#0' parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - certificate: - type: string - certificate_authorities: - type: string - certificate_key: - type: string - name: - type: string - proxy_headers: - type: object - url: - type: string + - description: The version of the API to use + in: header + name: elastic-api-version + schema: + default: '2023-10-31' + enum: + - '2023-10-31' + type: string + - description: Set to "true" to get the response in v7 format. + in: query + name: v7format + required: false + schema: + type: boolean + - description: Set to "true" to get the response in v8 format. + in: query + name: v8format + required: false + schema: + type: boolean responses: '200': content: application/json; Elastic-Api-Version=2023-10-31: schema: - type: object - properties: - item: - $ref: '#/components/schemas/Fleet_proxies' - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update proxy by ID + anyOf: + - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' + - $ref: >- + #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse + description: >- + Kibana's operational status. A minimal response is sent for + unauthorized users. + description: Overall status is OK and Kibana should be functioning normally. + '503': + content: + application/json; Elastic-Api-Version=2023-10-31: + schema: + anyOf: + - $ref: '#/components/schemas/Kibana_HTTP_APIs_core_status_response' + - $ref: >- + #/components/schemas/Kibana_HTTP_APIs_core_status_redactedResponse + description: >- + Kibana's operational status. A minimal response is sent for + unauthorized users. + description: >- + Kibana or some of it's essential services are unavailable. Kibana + may be degraded or unavailable. + summary: Get Kibana's current status tags: - - Fleet proxies + - system '/s/{spaceId}/api/observability/slos': get: description: > @@ -13020,244 +13233,6 @@ paths: summary: Enable an SLO tags: - slo - /service_tokens: - post: - operationId: generate-service-token - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - name: - type: string - value: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create service token - tags: - - Fleet service tokens - /service-tokens: - post: - deprecated: true - operationId: generate-service-token-deprecated - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - name: - type: string - value: - type: string - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Create service token - tags: - - Fleet service tokens - /settings: - get: - operationId: get-settings - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_settings_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get settings - tags: - - Fleet internals - put: - operationId: update-settings - requestBody: - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - additional_yaml_config: - type: string - fleet_server_hosts: - description: Protocol and path must be the same for each URL - items: - type: string - type: array - has_seen_add_data_notice: - type: boolean - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_settings_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Update settings - tags: - - Fleet internals - /settings/enrollment: - get: - operationId: get-enrollment-settings - parameters: - - description: >- - An agent policy ID to scope the enrollment settings to. For example, - that policy's Fleet Server host, its proxy, download location, etc. - If not provided, the default Fleet Server policy is used (if any). - in: query - name: agentPolicyId - required: false - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_settings_enrollment_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get enrollment settings - tags: - - Fleet internals - /setup: - post: - operationId: setup - parameters: - - $ref: '#/components/parameters/Fleet_kbn_xsrf' - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - $ref: '#/components/schemas/Fleet_fleet_setup_response' - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - '500': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - message: - type: string - description: Internal Server Error - summary: Initiate Fleet setup - tags: - - Fleet internals - /uninstall_tokens: - get: - operationId: get-uninstall-tokens - parameters: - - description: The number of items to return - in: query - name: perPage - required: false - schema: - default: 20 - minimum: 5 - type: integer - - $ref: '#/components/parameters/Fleet_page_index' - - description: Partial match filtering for policy IDs - in: query - name: policyId - required: false - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - items: - items: - type: object - properties: - created_at: - type: string - id: - type: string - policy_id: - type: string - required: - - id - - policy_id - - created_at - type: array - page: - type: number - perPage: - type: number - total: - type: number - required: - - items - - total - - page - - perPage - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: List metadata for latest uninstall tokens per agent policy - tags: - - Fleet uninstall tokens - '/uninstall_tokens/{uninstallTokenId}': - get: - operationId: get-uninstall-token - parameters: - - in: path - name: uninstallTokenId - required: true - schema: - type: string - responses: - '200': - content: - application/json; Elastic-Api-Version=2023-10-31: - schema: - type: object - properties: - item: - type: object - properties: - created_at: - type: string - id: - type: string - policy_id: - type: string - token: - type: string - required: - - id - - token - - policy_id - - created_at - required: - - item - description: OK - '400': - $ref: '#/components/responses/Fleet_error' - summary: Get one decrypted uninstall token by its ID - tags: - - Fleet uninstall tokens components: examples: Alerting_get_health_response: @@ -19594,49 +19569,6 @@ components: - is_default - is_preconfigured - host_urls - Fleet_fleet_settings_enrollment_response: - title: Fleet settings response - type: object - properties: - download_source: - $ref: '#/components/schemas/Fleet_download_sources' - fleet_server: - type: object - properties: - has_active: - type: boolean - host: - $ref: '#/components/schemas/Fleet_fleet_server_host' - host_proxy: - $ref: '#/components/schemas/Fleet_proxies' - policies: - items: - type: object - properties: - download_source_id: - type: string - fleet_server_host_id: - type: string - has_fleet_server: - type: boolean - id: - type: string - is_default_fleet_server: - type: boolean - is_managed: - type: boolean - name: - type: string - required: - - id - - name - - is_managed - type: array - required: - - agent_policies - - has_active - required: - - fleet_server Fleet_fleet_settings_response: title: Fleet settings response type: object diff --git a/oas_docs/overlays/connectors.overlays.yaml b/oas_docs/overlays/connectors.overlays.yaml index 7cb2f79be3a1e..022946e893be2 100644 --- a/oas_docs/overlays/connectors.overlays.yaml +++ b/oas_docs/overlays/connectors.overlays.yaml @@ -142,7 +142,8 @@ actions: oneOf: # Bedrock (.bedrock) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_config.yaml' - # Crowdstrike (.crowdstrike) TBD + # Crowdstrike (.crowdstrike) + - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_config.yaml' # D3 Security (.d3security) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/d3security_config.yaml' # Email (.email) @@ -159,7 +160,7 @@ actions: # Observability AI Assistant (.observability-ai-assistant) TBD # Azure OpenAI (.gen-ai) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/genai_azure_config.yaml' - # OpenAI (.gen-ai) + # OpenAI (.gen-ai) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/genai_openai_config.yaml' # Opsgenie (.opsgenie) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/opsgenie_config.yaml' @@ -177,6 +178,8 @@ actions: - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/slack_api_config.yaml' # Swimlane (.swimlane) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/swimlane_config.yaml' + # TheHive (.thehive) + - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/thehive_config.yaml' # Tines (.tines) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/tines_config.yaml' # Torq (.torq) @@ -193,7 +196,8 @@ actions: oneOf: # Bedrock (.bedrock) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_secrets.yaml' - # Crowdstrike (.crowdstrike) TBD + # Crowdstrike (.crowdstrike) + - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_secrets.yaml' # D3 Security (.d3security) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/d3security_secrets.yaml' # Email (.email) @@ -224,6 +228,8 @@ actions: - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/slack_api_secrets.yaml' # Swimlane (.swimlane) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/swimlane_secrets.yaml' + # TheHive (.thehive) + - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/thehive_secrets.yaml' # Tines (.tines) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/tines_secrets.yaml' # Torq (.torq) @@ -249,7 +255,8 @@ actions: oneOf: # Bedrock (.bedrock) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_config.yaml' - # Crowdstrike (.crowdstrike) TBD + # Crowdstrike (.crowdstrike) + - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_config.yaml' # D3 Security (.d3security) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/d3security_config.yaml' # Email (.email) @@ -284,6 +291,8 @@ actions: - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/slack_api_config.yaml' # Swimlane (.swimlane) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/swimlane_config.yaml' + # TheHive (.thehive) + - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/thehive_config.yaml' # Tines (.tines) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/tines_config.yaml' # Torq (.torq) @@ -300,7 +309,8 @@ actions: oneOf: # Bedrock (.bedrock) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_secrets.yaml' - # Crowdstrike (.crowdstrike) TBD + # Crowdstrike (.crowdstrike) + - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_secrets.yaml' # D3 Security (.d3security) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/d3security_secrets.yaml' # Email (.email) @@ -331,6 +341,8 @@ actions: - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/slack_api_secrets.yaml' # Swimlane (.swimlane) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/swimlane_secrets.yaml' + # TheHive (.thehive) + - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/thehive_secrets.yaml' # Tines (.tines) - $ref: '../../x-pack/plugins/actions/docs/openapi/components/schemas/tines_secrets.yaml' # Torq (.torq) diff --git a/package.json b/package.json index d8a83da6a8755..5aec5cd34dde8 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "dashboarding" ], "private": true, - "version": "8.16.0", + "version": "9.0.0", "branch": "main", "types": "./kibana.d.ts", "tsdocMetadata": "./build/tsdoc-metadata.json", @@ -552,8 +552,8 @@ "@kbn/iframe-embedded-plugin": "link:x-pack/test/functional_embedded/plugins/iframe_embedded", "@kbn/image-embeddable-plugin": "link:src/plugins/image_embeddable", "@kbn/index-lifecycle-management-plugin": "link:x-pack/plugins/index_lifecycle_management", - "@kbn/index-management": "link:x-pack/packages/index-management", "@kbn/index-management-plugin": "link:x-pack/plugins/index_management", + "@kbn/index-management-shared-types": "link:x-pack/packages/index-management/index_management_shared_types", "@kbn/index-patterns-test-plugin": "link:test/plugin_functional/plugins/index_patterns", "@kbn/inference-plugin": "link:x-pack/plugins/inference", "@kbn/inference_integration_flyout": "link:x-pack/packages/ml/inference_integration_flyout", @@ -566,6 +566,7 @@ "@kbn/interactive-setup-plugin": "link:src/plugins/interactive_setup", "@kbn/interactive-setup-test-endpoints-plugin": "link:test/interactive_setup_api_integration/plugins/test_endpoints", "@kbn/interpreter": "link:packages/kbn-interpreter", + "@kbn/inventory-plugin": "link:x-pack/plugins/observability_solution/inventory", "@kbn/investigate-app-plugin": "link:x-pack/plugins/observability_solution/investigate_app", "@kbn/investigate-plugin": "link:x-pack/plugins/observability_solution/investigate", "@kbn/investigation-shared": "link:packages/kbn-investigation-shared", @@ -888,6 +889,9 @@ "@kbn/sort-predicates": "link:packages/kbn-sort-predicates", "@kbn/spaces-plugin": "link:x-pack/plugins/spaces", "@kbn/spaces-test-plugin": "link:x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin", + "@kbn/sse-utils": "link:packages/kbn-sse-utils", + "@kbn/sse-utils-client": "link:packages/kbn-sse-utils-client", + "@kbn/sse-utils-server": "link:packages/kbn-sse-utils-server", "@kbn/stack-alerts-plugin": "link:x-pack/plugins/stack_alerts", "@kbn/stack-connectors-plugin": "link:x-pack/plugins/stack_connectors", "@kbn/stack-management-usage-test-plugin": "link:x-pack/test/usage_collection/plugins/stack_management_usage_test", @@ -1149,7 +1153,7 @@ "node-diff3": "^3.1.2", "node-fetch": "^2.6.7", "node-forge": "^1.3.1", - "nodemailer": "^6.9.14", + "nodemailer": "^6.9.15", "normalize-path": "^3.0.0", "nunjucks": "^3.2.4", "object-hash": "^1.3.1", @@ -1294,7 +1298,7 @@ "@cypress/webpack-preprocessor": "^6.0.1", "@elastic/eslint-plugin-eui": "0.0.2", "@elastic/makelogs": "^6.1.1", - "@elastic/synthetics": "^1.5.0", + "@elastic/synthetics": "^1.12.1", "@emotion/babel-preset-css-prop": "^11.11.0", "@emotion/jest": "^11.11.0", "@formatjs/cli": "^6.2.8", @@ -1776,7 +1780,7 @@ "regenerate": "^1.4.0", "resolve": "^1.22.0", "rxjs-marbles": "^7.0.1", - "sass-embedded": "^1.77.8", + "sass-embedded": "^1.78.0", "sass-loader": "^10.5.1", "selenium-webdriver": "^4.24.0", "sharp": "0.32.6", diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.test.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.test.ts index 8ba9f8aae6549..ae938603bd1da 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.test.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.test.ts @@ -936,6 +936,43 @@ describe('ClusterClient', () => { ); }); + it('uses the authorization header from the request when using a `KibanaFakeRequest`', () => { + const config = createConfig({ + requestHeadersWhitelist: ['authorization', 'foo'], + }); + authHeaders.get.mockReturnValue({ + [AUTHORIZATION_HEADER]: 'will_not_be_used', + }); + + const clusterClient = new ClusterClient({ + config, + logger, + type: 'custom-type', + authHeaders, + agentFactoryProvider, + kibanaVersion, + }); + + const request = httpServerMock.createFakeKibanaRequest({ + headers: { + authorization: 'fake_request_auth', + }, + }); + + const scopedClusterClient = clusterClient.asScoped(request); + // trigger client instantiation via getter + client = scopedClusterClient.asSecondaryAuthUser; + + expect(internalClient.child).toHaveBeenCalledTimes(1); + expect(internalClient.child).toHaveBeenCalledWith( + expect.objectContaining({ + headers: expect.objectContaining({ + [ES_SECONDARY_AUTH_HEADER]: request.headers.authorization, + }), + }) + ); + }); + it('throws when used with a `FakeRequest` without authorization header', () => { const config = createConfig({ requestHeadersWhitelist: ['authorization', 'foo'], diff --git a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.ts b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.ts index 54db27b618635..141c564ee5538 100644 --- a/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.ts +++ b/packages/core/elasticsearch/core-elasticsearch-client-server-internal/src/cluster_client.ts @@ -164,9 +164,10 @@ export class ClusterClient implements ICustomClusterClient { } private getSecondaryAuthHeaders(request: ScopeableRequest): Headers { - const headerSource = isRealRequest(request) - ? this.authHeaders?.get(request) ?? {} - : request.headers; + const headerSource = + isRealRequest(request) && !request.isFakeRequest + ? this.authHeaders?.get(request) ?? {} + : request.headers; const authorizationHeader = Object.entries(headerSource).find(([key, value]) => { return key.toLowerCase() === AUTHORIZATION_HEADER && value !== undefined; }); 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 98656d262c3de..18589d5d39d52 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 @@ -49,6 +49,7 @@ describe('Router', () => { validate: { body: validation, query: validation, params: validation }, options: { deprecated: true, + discontinued: 'post test discontinued', summary: 'post test summary', description: 'post test description', }, @@ -66,6 +67,7 @@ describe('Router', () => { isVersioned: false, options: { deprecated: true, + discontinued: 'post test discontinued', summary: 'post test summary', description: 'post test description', }, diff --git a/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.test.ts b/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.test.ts index 1ebb49ac630fe..d56de36ba9a29 100644 --- a/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.test.ts +++ b/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.test.ts @@ -33,7 +33,12 @@ describe('Versioned router', () => { it('provides the expected metadata', () => { const versionedRouter = CoreVersionedRouter.from({ router }); - versionedRouter.get({ path: '/test/{id}', access: 'internal', deprecated: true }); + versionedRouter.get({ + path: '/test/{id}', + access: 'internal', + deprecated: true, + discontinued: 'x.y.z', + }); versionedRouter.post({ path: '/test', access: 'internal', @@ -49,6 +54,7 @@ describe('Versioned router', () => { "options": Object { "access": "internal", "deprecated": true, + "discontinued": "x.y.z", }, "path": "/test/{id}", }, 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 f208bc1765008..858c0753eeb2d 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 @@ -118,6 +118,19 @@ function createKibanaRequestMock

({ ); } +function createFakeKibanaRequestMock({ + headers = { accept: 'something/html' }, +}: { + headers?: Record; +}): KibanaRequest { + const fakeRequest = { + headers, + path: '/', + }; + + return CoreKibanaRequest.from(fakeRequest); +} + const createResponseFactoryMock = (): jest.Mocked => ({ ok: jest.fn(), created: jest.fn(), @@ -140,5 +153,6 @@ const createResponseFactoryMock = (): jest.Mocked => ({ export const mockRouter = { create: createRouterMock, createKibanaRequest: createKibanaRequestMock, + createFakeKibanaRequest: createFakeKibanaRequestMock, createResponseFactory: createResponseFactoryMock, }; 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 34cdcd15db7df..6cad6f9686a6d 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 @@ -88,6 +88,7 @@ Object { "allowFromAnyIp": false, "ipAllowlist": Array [], }, + "restrictInternalApis": false, "rewriteBasePath": false, "securityResponseHeaders": Object { "crossOriginOpenerPolicy": "same-origin", diff --git a/packages/core/http/core-http-server-internal/src/http_config.test.ts b/packages/core/http/core-http-server-internal/src/http_config.test.ts index 70002994445f6..bf9ea2fe53875 100644 --- a/packages/core/http/core-http-server-internal/src/http_config.test.ts +++ b/packages/core/http/core-http-server-internal/src/http_config.test.ts @@ -525,23 +525,27 @@ describe('versioned', () => { }); describe('restrictInternalApis', () => { - it('is only allowed on serverless', () => { - expect(() => config.schema.validate({ restrictInternalApis: false }, {})).toThrow( - /a value wasn't expected/ - ); - expect(() => config.schema.validate({ restrictInternalApis: true }, {})).toThrow( - /a value wasn't expected/ - ); + it('is allowed on serverless and traditional', () => { + expect(() => config.schema.validate({ restrictInternalApis: false }, {})).not.toThrow(); + expect(() => config.schema.validate({ restrictInternalApis: true }, {})).not.toThrow(); expect( config.schema.validate({ restrictInternalApis: true }, { serverless: true }) ).toMatchObject({ restrictInternalApis: true, }); + expect( + config.schema.validate({ restrictInternalApis: true }, { traditional: true }) + ).toMatchObject({ + restrictInternalApis: true, + }); }); it('defaults to false', () => { expect( config.schema.validate({ restrictInternalApis: undefined }, { serverless: true }) ).toMatchObject({ restrictInternalApis: false }); + expect( + config.schema.validate({ restrictInternalApis: undefined }, { traditional: true }) + ).toMatchObject({ restrictInternalApis: false }); }); }); 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 05f88bf8fb34f..d4560febb6f26 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 @@ -208,6 +208,7 @@ const configSchema = schema.object( // allow access to internal routes by default to prevent breaking changes in current offerings restrictInternalApis: offeringBasedSchema({ serverless: schema.boolean({ defaultValue: false }), + traditional: schema.boolean({ defaultValue: false }), }), versioned: schema.object({ diff --git a/packages/core/http/core-http-server-mocks/src/http_server.mocks.ts b/packages/core/http/core-http-server-mocks/src/http_server.mocks.ts index 7910006323ca1..760090b39714a 100644 --- a/packages/core/http/core-http-server-mocks/src/http_server.mocks.ts +++ b/packages/core/http/core-http-server-mocks/src/http_server.mocks.ts @@ -39,6 +39,7 @@ const createToolkitMock = (): ToolkitMock => { export const httpServerMock = { createKibanaRequest: mockRouter.createKibanaRequest, + createFakeKibanaRequest: mockRouter.createFakeKibanaRequest, createRawRequest: hapiMocks.createRequest, createResponseFactory: mockRouter.createResponseFactory, createLifecycleResponseFactory: createLifecycleResponseFactoryMock, diff --git a/packages/core/http/core-http-server/src/router/route.ts b/packages/core/http/core-http-server/src/router/route.ts index f313d14a7710a..c47688b60d3cd 100644 --- a/packages/core/http/core-http-server/src/router/route.ts +++ b/packages/core/http/core-http-server/src/router/route.ts @@ -107,7 +107,7 @@ export interface RouteConfigOptionsBody { * Public routes are stable and intended for external access and are subject to * stricter change management and have long term maintenance windows. * - * @remark On serverless access to internal routes is restricted. + * @remark as of 9.0, access to internal routes is restricted by default. See https://github.com/elastic/kibana/issues/163654. */ export type RouteAccess = 'public' | 'internal'; @@ -207,6 +207,15 @@ export interface RouteConfigOptions { * @remarks This will be surfaced in OAS documentation. */ deprecated?: boolean; + + /** + * Release version or date that this route will be removed + * Use with `deprecated: true` + * + * @remarks This will be surfaced in OAS documentation. + * @example 9.0.0 + */ + discontinued?: string; } /** diff --git a/packages/core/http/core-http-server/src/versioning/types.ts b/packages/core/http/core-http-server/src/versioning/types.ts index 6b465a2be74d0..c552abd251a1f 100644 --- a/packages/core/http/core-http-server/src/versioning/types.ts +++ b/packages/core/http/core-http-server/src/versioning/types.ts @@ -33,7 +33,10 @@ export type VersionedRouteConfig = Omit< RouteConfig, 'validate' | 'options' > & { - options?: Omit, 'access' | 'description' | 'deprecated'>; + options?: Omit< + RouteConfigOptions, + 'access' | 'description' | 'deprecated' | 'discontinued' + >; /** See {@link RouteConfigOptions['access']} */ access: Exclude['access'], undefined>; /** @@ -91,6 +94,14 @@ export type VersionedRouteConfig = Omit< * @default false */ deprecated?: boolean; + + /** + * Release version or date that this route will be removed + * Use with `deprecated: true` + * + * @default undefined + */ + discontinued?: string; }; /** diff --git a/packages/deeplinks/ml/deep_links.ts b/packages/deeplinks/ml/deep_links.ts index e8c65b39249a7..6fc29c6eaa918 100644 --- a/packages/deeplinks/ml/deep_links.ts +++ b/packages/deeplinks/ml/deep_links.ts @@ -36,6 +36,7 @@ export type LinkId = | 'calendarSettings' | 'calendarSettings' | 'filterListsSettings' - | 'notifications'; + | 'notifications' + | 'suppliedConfigurations'; export type DeepLinkId = AppId | `${AppId}:${LinkId}`; diff --git a/packages/deeplinks/observability/constants.ts b/packages/deeplinks/observability/constants.ts index 13d165b25d711..45868fa3a16b2 100644 --- a/packages/deeplinks/observability/constants.ts +++ b/packages/deeplinks/observability/constants.ts @@ -30,3 +30,5 @@ export const INVESTIGATE_APP_ID = 'investigate'; export const OBLT_UX_APP_ID = 'ux'; export const OBLT_PROFILING_APP_ID = 'profiling'; + +export const INVENTORY_APP_ID = 'inventory'; diff --git a/packages/deeplinks/observability/deep_links.ts b/packages/deeplinks/observability/deep_links.ts index fab434aedc5c1..088b9c866c03d 100644 --- a/packages/deeplinks/observability/deep_links.ts +++ b/packages/deeplinks/observability/deep_links.ts @@ -19,6 +19,7 @@ import { AI_ASSISTANT_APP_ID, OBLT_UX_APP_ID, OBLT_PROFILING_APP_ID, + INVENTORY_APP_ID, } from './constants'; type LogsApp = typeof LOGS_APP_ID; @@ -32,6 +33,7 @@ type SloApp = typeof SLO_APP_ID; type AiAssistantApp = typeof AI_ASSISTANT_APP_ID; type ObltUxApp = typeof OBLT_UX_APP_ID; type ObltProfilingApp = typeof OBLT_PROFILING_APP_ID; +type InventoryApp = typeof INVENTORY_APP_ID; export type AppId = | LogsApp @@ -44,10 +46,13 @@ export type AppId = | SloApp | AiAssistantApp | ObltUxApp - | ObltProfilingApp; + | ObltProfilingApp + | InventoryApp; export type LogsLinkId = 'log-categories' | 'settings' | 'anomalies' | 'stream'; +export type InventoryLinkId = 'datastreams'; + export type ObservabilityOverviewLinkId = | 'alerts' | 'cases' @@ -90,4 +95,5 @@ export type DeepLinkId = | `${MetricsApp}:${MetricsLinkId}` | `${ApmApp}:${ApmLinkId}` | `${SyntheticsApp}:${SyntheticsLinkId}` - | `${ObltProfilingApp}:${ProfilingLinkId}`; + | `${ObltProfilingApp}:${ProfilingLinkId}` + | `${InventoryApp}:${InventoryLinkId}`; diff --git a/packages/deeplinks/observability/kibana.jsonc b/packages/deeplinks/observability/kibana.jsonc index bc014b05aa407..da2c0505737a5 100644 --- a/packages/deeplinks/observability/kibana.jsonc +++ b/packages/deeplinks/observability/kibana.jsonc @@ -1,5 +1,5 @@ { "type": "shared-common", "id": "@kbn/deeplinks-observability", - "owner": "@elastic/obs-ux-logs-team" + "owner": "@elastic/obs-ux-management-team" } diff --git a/packages/default-nav/ml/default_navigation.ts b/packages/default-nav/ml/default_navigation.ts index f0e577007ca0b..d2d015a68333c 100644 --- a/packages/default-nav/ml/default_navigation.ts +++ b/packages/default-nav/ml/default_navigation.ts @@ -58,6 +58,9 @@ export const defaultNavigation: MlNodeDefinition = { { link: 'ml:singleMetricViewer', }, + { + link: 'ml:suppliedConfigurations', + }, { link: 'ml:settings', }, diff --git a/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_mock_data.ts b/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_mock_data.ts index 5a6e1251bd897..e974528f16a80 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_mock_data.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/helpers/logs_mock_data.ts @@ -8,6 +8,7 @@ */ import { generateShortId } from '@kbn/apm-synthtrace-client'; +import { ELASTIC_AGENT_NAMES } from '@kbn/elastic-agent-utils'; import { faker } from '@faker-js/faker'; import { randomInt } from 'crypto'; import moment from 'moment'; @@ -65,6 +66,8 @@ export const getGeoCoordinate = (index?: number) => getAtIndexOrRandom(GEO_COORD export const getCloudProvider = (index?: number) => getAtIndexOrRandom(CLOUD_PROVIDERS, index); export const getCloudRegion = (index?: number) => getAtIndexOrRandom(CLOUD_REGION, index); export const getServiceName = (index?: number) => getAtIndexOrRandom(SERVICE_NAMES, index); +export const getAgentName = (index?: number) => getAtIndexOrRandom(ELASTIC_AGENT_NAMES, index); + export const getJavaLog = () => `${moment().format('YYYY-MM-DD HH:mm:ss,SSS')} ${getAtIndexOrRandom( LOG_LEVELS diff --git a/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts b/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts index 9373560f26329..3c1fdc5131395 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts @@ -19,6 +19,7 @@ import { getCluster, getCloudProvider, getCloudRegion, + getAgentName, } from './helpers/logs_mock_data'; import { parseLogsScenarioOpts } from './helpers/logs_scenario_opts_parser'; @@ -44,7 +45,7 @@ const scenario: Scenario = async (runOptions) => { const commonLongEntryFields: LogDocument = { 'trace.id': generateShortId(), - 'agent.name': 'nodejs', + 'agent.name': getAgentName(), 'orchestrator.cluster.name': clusterName, 'orchestrator.cluster.id': clusterId, 'orchestrator.namespace': namespace, @@ -82,7 +83,6 @@ const scenario: Scenario = async (runOptions) => { .fill(0) .map(() => { const { - serviceName, logMessage: { level, message }, commonLongEntryFields, } = constructLogsCommonData(); @@ -91,7 +91,6 @@ const scenario: Scenario = async (runOptions) => { .create({ isLogsDb }) .message(message.replace('', generateShortId())) .logLevel(level) - .service(serviceName) .setGeoLocation(getGeoCoordinate()) .setHostIp(getIpAddress()) .defaults(commonLongEntryFields) diff --git a/packages/kbn-apm-synthtrace/tsconfig.json b/packages/kbn-apm-synthtrace/tsconfig.json index e5ca7beabd45c..d0f5c5801597a 100644 --- a/packages/kbn-apm-synthtrace/tsconfig.json +++ b/packages/kbn-apm-synthtrace/tsconfig.json @@ -9,6 +9,7 @@ "@kbn/datemath", "@kbn/apm-synthtrace-client", "@kbn/dev-utils", + "@kbn/elastic-agent-utils", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-ci-stats-reporter/src/ci_stats_reporter.ts b/packages/kbn-ci-stats-reporter/src/ci_stats_reporter.ts index c03fd7f54dea5..696f5a10f4819 100644 --- a/packages/kbn-ci-stats-reporter/src/ci_stats_reporter.ts +++ b/packages/kbn-ci-stats-reporter/src/ci_stats_reporter.ts @@ -170,7 +170,7 @@ export class CiStatsReporter { const { stdout } = await execa('git', ['config', 'user.email']); email = stdout; } catch (e) { - this.log.debug(e.message); + // no-op - we're ok with email being undefined } try { @@ -181,7 +181,7 @@ export class CiStatsReporter { } const memUsage = process.memoryUsage(); - const isElasticCommitter = email && email.endsWith('@elastic.co') ? true : false; + const isElasticCommitter = email && email.endsWith('@elastic.co'); const defaultMeta = { kibanaUuid, @@ -200,14 +200,16 @@ export class CiStatsReporter { memoryUsageHeapUsed: memUsage.heapUsed, memoryUsageExternal: memUsage.external, memoryUsageArrayBuffers: memUsage.arrayBuffers, - nestedTiming: process.env.CI_STATS_NESTED_TIMING ? true : false, + nestedTiming: !!process.env.CI_STATS_NESTED_TIMING, osArch: Os.arch(), osPlatform: Os.platform(), osRelease: Os.release(), totalMem: Os.totalmem(), }; - this.log.debug('CIStatsReporter committerHash: %s', defaultMeta.committerHash); + if (defaultMeta.committerHash) { + this.log.debug('CIStatsReporter committerHash: %s', defaultMeta.committerHash); + } return !!(await this.req({ auth: !!buildId, diff --git a/packages/kbn-config-schema/index.ts b/packages/kbn-config-schema/index.ts index 031e1ceb90465..b41f7d65a82c8 100644 --- a/packages/kbn-config-schema/index.ts +++ b/packages/kbn-config-schema/index.ts @@ -435,6 +435,7 @@ export const schema = { export type Schema = typeof schema; import { + META_FIELD_X_OAS_DISCONTINUED, META_FIELD_X_OAS_ANY, META_FIELD_X_OAS_OPTIONAL, META_FIELD_X_OAS_DEPRECATED, @@ -444,6 +445,7 @@ import { } from './src/oas_meta_fields'; export const metaFields = Object.freeze({ + META_FIELD_X_OAS_DISCONTINUED, META_FIELD_X_OAS_ANY, META_FIELD_X_OAS_OPTIONAL, META_FIELD_X_OAS_DEPRECATED, diff --git a/packages/kbn-config-schema/src/oas_meta_fields.ts b/packages/kbn-config-schema/src/oas_meta_fields.ts index 1eac5ea0b7216..b9368f6b80b50 100644 --- a/packages/kbn-config-schema/src/oas_meta_fields.ts +++ b/packages/kbn-config-schema/src/oas_meta_fields.ts @@ -18,3 +18,4 @@ export const META_FIELD_X_OAS_GET_ADDITIONAL_PROPERTIES = 'x-oas-get-additional-properties' as const; export const META_FIELD_X_OAS_DEPRECATED = 'x-oas-deprecated' as const; export const META_FIELD_X_OAS_ANY = 'x-oas-any-type' as const; +export const META_FIELD_X_OAS_DISCONTINUED = 'x-oas-discontinued' as const; diff --git a/packages/kbn-config-schema/src/types/type.test.ts b/packages/kbn-config-schema/src/types/type.test.ts index ee69e38cf3acc..5bb151c345f74 100644 --- a/packages/kbn-config-schema/src/types/type.test.ts +++ b/packages/kbn-config-schema/src/types/type.test.ts @@ -10,7 +10,7 @@ import { get } from 'lodash'; import { internals } from '../internals'; import { Type, TypeOptions } from './type'; -import { META_FIELD_X_OAS_DEPRECATED } from '../oas_meta_fields'; +import { META_FIELD_X_OAS_DEPRECATED, META_FIELD_X_OAS_DISCONTINUED } from '../oas_meta_fields'; class MyType extends Type { constructor(opts: TypeOptions = {}) { @@ -26,6 +26,19 @@ describe('meta', () => { const meta = type.getSchema().describe(); expect(get(meta, 'flags.description')).toBe('my description'); expect(get(meta, `metas[0].${META_FIELD_X_OAS_DEPRECATED}`)).toBe(true); + expect(get(meta, `metas[1].${META_FIELD_X_OAS_DISCONTINUED}`)).toBeUndefined(); + }); + + it('sets meta with all fields provided', () => { + const type = new MyType({ + meta: { description: 'my description', deprecated: true, 'x-discontinued': '9.0.0' }, + }); + const meta = type.getSchema().describe(); + expect(get(meta, 'flags.description')).toBe('my description'); + + expect(get(meta, `metas[0].${META_FIELD_X_OAS_DEPRECATED}`)).toBe(true); + + expect(get(meta, `metas[1].${META_FIELD_X_OAS_DISCONTINUED}`)).toBe('9.0.0'); }); it('does not set meta when no provided', () => { diff --git a/packages/kbn-config-schema/src/types/type.ts b/packages/kbn-config-schema/src/types/type.ts index 52333cd7d0b79..1b70dd83e11e6 100644 --- a/packages/kbn-config-schema/src/types/type.ts +++ b/packages/kbn-config-schema/src/types/type.ts @@ -16,7 +16,7 @@ import { type WhenOptions, CustomHelpers, } from 'joi'; -import { META_FIELD_X_OAS_DEPRECATED } from '../oas_meta_fields'; +import { META_FIELD_X_OAS_DEPRECATED, META_FIELD_X_OAS_DISCONTINUED } from '../oas_meta_fields'; import { SchemaTypeError, ValidationError } from '../errors'; import { Reference } from '../references'; @@ -33,6 +33,11 @@ export interface TypeMeta { * Whether this field is deprecated. */ deprecated?: boolean; + /** + * Release version or date that this route will be removed + * @example 9.0.0 + */ + 'x-discontinued'?: string; } export interface TypeOptions { @@ -129,6 +134,8 @@ export abstract class Type { if (options.meta.deprecated) { schema = schema.meta({ [META_FIELD_X_OAS_DEPRECATED]: true }); } + if (options.meta.deprecated && options.meta['x-discontinued']) + schema = schema.meta({ [META_FIELD_X_OAS_DISCONTINUED]: options.meta['x-discontinued'] }); } // Attach generic error handler only if it hasn't been attached yet since diff --git a/packages/kbn-data-service/index.ts b/packages/kbn-data-service/index.ts index d12d69b865b63..9b06ae68009e2 100644 --- a/packages/kbn-data-service/index.ts +++ b/packages/kbn-data-service/index.ts @@ -10,4 +10,9 @@ export type { GetConfigFn } from './src/types'; export { UI_SETTINGS } from './src/constants'; export { getEsQueryConfig } from './src/es_query'; -export { tabifyDocs, flattenHit } from './src/search/tabify'; +export { + tabifyDocs, + flattenHit, + getFlattenedFieldsComparator, + type FlattenedFieldsComparator, +} from './src/search/tabify'; diff --git a/packages/kbn-data-service/src/search/tabify/index.ts b/packages/kbn-data-service/src/search/tabify/index.ts index 5613f38b277be..710d29370b3a7 100644 --- a/packages/kbn-data-service/src/search/tabify/index.ts +++ b/packages/kbn-data-service/src/search/tabify/index.ts @@ -7,4 +7,9 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -export { tabifyDocs, flattenHit } from './tabify_docs'; +export { + tabifyDocs, + flattenHit, + getFlattenedFieldsComparator, + type FlattenedFieldsComparator, +} from './tabify_docs'; diff --git a/packages/kbn-data-service/src/search/tabify/tabify_docs.ts b/packages/kbn-data-service/src/search/tabify/tabify_docs.ts index b3207663196ca..8c877f02d4700 100644 --- a/packages/kbn-data-service/src/search/tabify/tabify_docs.ts +++ b/packages/kbn-data-service/src/search/tabify/tabify_docs.ts @@ -98,7 +98,11 @@ function flattenAccum( * @param indexPattern The index pattern for the requested index if available. * @param params Parameters how to flatten the hit */ -export function flattenHit(hit: Hit, indexPattern?: DataView, params?: TabifyDocsOptions) { +export function flattenHit( + hit: Hit, + indexPattern?: DataView, + params?: TabifyDocsOptions & { flattenedFieldsComparator?: FlattenedFieldsComparator } +) { const flat = {} as Record; flattenAccum(flat, hit.fields || {}, '', indexPattern, params); @@ -147,15 +151,37 @@ export function flattenHit(hit: Hit, indexPattern?: DataView, params?: TabifyDoc // Use a proxy to make sure that keys are always returned in a specific order, // so we have a guarantee on the flattened order of keys. - return makeProxy(flat, indexPattern); + return makeProxy(flat, indexPattern, params?.flattenedFieldsComparator); } -function makeProxy(flat: Record, indexPattern?: DataView) { - function comparator(a: string | symbol, b: string | symbol) { - const aIsMeta = indexPattern?.metaFields?.includes(String(a)); - const bIsMeta = indexPattern?.metaFields?.includes(String(b)); +export const getFlattenedFieldsComparator = (indexPattern?: DataView) => { + const metaFields = new Set(indexPattern?.metaFields); + const lowerMap = new Map(); + let aLower: string | undefined; + let bLower: string | undefined; + + const compareLower = (a: string, b: string) => { + aLower = lowerMap.get(a); + if (aLower === undefined) { + aLower = a.toLowerCase(); + lowerMap.set(a, aLower); + } + bLower = lowerMap.get(b); + if (bLower === undefined) { + bLower = b.toLowerCase(); + lowerMap.set(b, bLower); + } + return aLower < bLower ? -1 : aLower > bLower ? 1 : 0; + }; + + return (a: string | symbol, b: string | symbol) => { + if (typeof a === 'symbol' || typeof b === 'symbol') { + return 0; + } + const aIsMeta = metaFields.has(a); + const bIsMeta = metaFields.has(b); if (aIsMeta && bIsMeta) { - return String(a).localeCompare(String(b)); + return compareLower(a, b); } if (aIsMeta) { return 1; @@ -163,12 +189,35 @@ function makeProxy(flat: Record, indexPattern?: DataView) { if (bIsMeta) { return -1; } - return String(a).localeCompare(String(b)); - } + return compareLower(a, b); + }; +}; + +export type FlattenedFieldsComparator = ReturnType; + +function makeProxy( + flat: Record, + indexPattern?: DataView, + flattenedFieldsComparator?: FlattenedFieldsComparator +) { + let cachedKeys: Array | undefined; return new Proxy(flat, { + defineProperty: (...args) => { + cachedKeys = undefined; + return Reflect.defineProperty(...args); + }, + deleteProperty: (...args) => { + cachedKeys = undefined; + return Reflect.deleteProperty(...args); + }, ownKeys: (target) => { - return Reflect.ownKeys(target).sort(comparator); + if (!cachedKeys) { + cachedKeys = Reflect.ownKeys(target).sort( + flattenedFieldsComparator ?? getFlattenedFieldsComparator(indexPattern) + ); + } + return cachedKeys; }, }); } diff --git a/packages/kbn-discover-utils/index.ts b/packages/kbn-discover-utils/index.ts index 7119ac31d5baf..ba7e832b8f1c6 100644 --- a/packages/kbn-discover-utils/index.ts +++ b/packages/kbn-discover-utils/index.ts @@ -34,6 +34,8 @@ export { buildDataTableRecord, buildDataTableRecordList, createLogsContextService, + createDegradedDocsControl, + createStacktraceControl, fieldConstants, formatFieldValue, formatHit, @@ -52,6 +54,8 @@ export { LogLevelCoalescedValue, LogLevelBadge, getFieldValue, + getVisibleColumns, + canPrependTimeFieldColumn, } from './src'; export type { LogsContextService } from './src'; diff --git a/packages/kbn-discover-utils/src/__mocks__/data_view.ts b/packages/kbn-discover-utils/src/__mocks__/data_view.ts index 5034ed9dc008e..daa8835e817c4 100644 --- a/packages/kbn-discover-utils/src/__mocks__/data_view.ts +++ b/packages/kbn-discover-utils/src/__mocks__/data_view.ts @@ -140,3 +140,9 @@ export const dataViewMock = buildDataViewMock({ name: 'the-data-view', fields: shallowMockedFields, }); + +export const dataViewMockWithTimeField = buildDataViewMock({ + name: 'the-data-view', + fields: shallowMockedFields, + timeFieldName: '@timestamp', +}); diff --git a/packages/kbn-discover-utils/src/components/custom_control_columns/degraded_docs_control.tsx b/packages/kbn-discover-utils/src/components/custom_control_columns/degraded_docs_control.tsx new file mode 100644 index 0000000000000..be4dbe3027214 --- /dev/null +++ b/packages/kbn-discover-utils/src/components/custom_control_columns/degraded_docs_control.tsx @@ -0,0 +1,121 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { EuiCode, EuiSpacer } from '@elastic/eui'; +import { + RowControlColumn, + RowControlComponent, + RowControlProps, + RowControlRowProps, +} from './types'; +import { DEGRADED_DOCS_FIELDS } from '../../field_constants'; + +interface DegradedDocsControlProps extends Partial { + enabled?: boolean; +} + +/** + * Degraded docs control factory function. + * @param props Optional props for the generated Control component, useful to override onClick, etc + */ +export const createDegradedDocsControl = (props?: DegradedDocsControlProps): RowControlColumn => ({ + id: 'connectedDegradedDocs', + headerAriaLabel: actionsHeaderAriaLabelDegradedAction, + renderControl: (Control, rowProps) => { + return ; + }, +}); + +const actionsHeaderAriaLabelDegradedAction = i18n.translate( + 'discover.customControl.degradedDocArialLabel', + { defaultMessage: 'Access to degraded docs' } +); + +const degradedDocButtonLabelWhenPresent = i18n.translate( + 'discover.customControl.degradedDocPresent', + { + defaultMessage: + "This document couldn't be parsed correctly. Not all fields are properly populated", + } +); + +const degradedDocButtonLabelWhenNotPresent = i18n.translate( + 'discover.customControl.degradedDocNotPresent', + { defaultMessage: 'All fields in this document were parsed correctly' } +); + +const degradedDocButtonLabelWhenDisabled = i18n.translate( + 'discover.customControl.degradedDocDisabled', + { + defaultMessage: + 'Degraded document field detection is currently disabled for this search. To enable it, include the METADATA directive for the `_ignored` field in your ES|QL query. For example:', + } +); + +const DegradedDocs = ({ + Control, + enabled = true, + rowProps: { record }, + ...props +}: { + Control: RowControlComponent; + rowProps: RowControlRowProps; +} & DegradedDocsControlProps) => { + const isDegradedDocumentExists = DEGRADED_DOCS_FIELDS.some( + (field) => field in record.raw && record.raw[field] !== null + ); + + if (!enabled) { + const codeSample = 'FROM logs-* METADATA _ignored'; + + const tooltipContent = ( +

+ {degradedDocButtonLabelWhenDisabled} + + {codeSample} +
+ ); + + return ( + + ); + } + + return isDegradedDocumentExists ? ( + + ) : ( + + ); +}; diff --git a/packages/kbn-discover-utils/src/components/custom_control_columns/index.ts b/packages/kbn-discover-utils/src/components/custom_control_columns/index.ts new file mode 100644 index 0000000000000..339c1047e69a4 --- /dev/null +++ b/packages/kbn-discover-utils/src/components/custom_control_columns/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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +export { createDegradedDocsControl } from './degraded_docs_control'; +export { createStacktraceControl } from './stacktrace_control'; diff --git a/packages/kbn-discover-utils/src/components/custom_control_columns/stacktrace_control.tsx b/packages/kbn-discover-utils/src/components/custom_control_columns/stacktrace_control.tsx new file mode 100644 index 0000000000000..48703e0ab269d --- /dev/null +++ b/packages/kbn-discover-utils/src/components/custom_control_columns/stacktrace_control.tsx @@ -0,0 +1,79 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { + RowControlColumn, + RowControlComponent, + RowControlProps, + RowControlRowProps, +} from './types'; +import { LogDocument } from '../../data_types'; +import { getStacktraceFields } from '../../utils/get_stack_trace_fields'; + +/** + * Stacktrace control factory function. + * @param props Optional props for the generated Control component, useful to override onClick, etc + */ +export const createStacktraceControl = (props?: Partial): RowControlColumn => ({ + id: 'connectedStacktraceDocs', + headerAriaLabel: actionsHeaderAriaLabelStacktraceAction, + renderControl: (Control, rowProps) => { + return ; + }, +}); + +const actionsHeaderAriaLabelStacktraceAction = i18n.translate( + 'discover.customControl.stacktraceArialLabel', + { defaultMessage: 'Access to available stacktraces' } +); + +const stacktraceAvailableControlButton = i18n.translate( + 'discover.customControl.stacktrace.available', + { defaultMessage: 'Stacktraces available' } +); + +const stacktraceNotAvailableControlButton = i18n.translate( + 'discover.customControl.stacktrace.notAvailable', + { defaultMessage: 'Stacktraces not available' } +); + +const Stacktrace = ({ + Control, + rowProps: { record }, + ...props +}: { + Control: RowControlComponent; + rowProps: RowControlRowProps; +} & Partial) => { + const stacktrace = getStacktraceFields(record as LogDocument); + const hasValue = Object.values(stacktrace).some(Boolean); + + return hasValue ? ( + + ) : ( + + ); +}; diff --git a/packages/kbn-discover-utils/src/components/custom_control_columns/types.ts b/packages/kbn-discover-utils/src/components/custom_control_columns/types.ts new file mode 100644 index 0000000000000..601cd9ebdcfc0 --- /dev/null +++ b/packages/kbn-discover-utils/src/components/custom_control_columns/types.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { EuiButtonIconProps, EuiDataGridControlColumn, IconType } from '@elastic/eui'; +import React, { FC, ReactElement } from 'react'; +import { DataTableRecord } from '../../types'; + +export interface RowControlRowProps { + rowIndex: number; + record: DataTableRecord; +} + +export interface RowControlProps { + 'data-test-subj'?: string; + color?: EuiButtonIconProps['color']; + disabled?: boolean; + label: string; + iconType: IconType; + onClick: ((props: RowControlRowProps) => void) | undefined; + tooltipContent?: React.ReactNode; +} + +export type RowControlComponent = FC; + +export interface RowControlColumn { + id: string; + headerAriaLabel: string; + headerCellRender?: EuiDataGridControlColumn['headerCellRender']; + renderControl: (Control: RowControlComponent, props: RowControlRowProps) => ReactElement; +} diff --git a/packages/kbn-discover-utils/src/data_types/logs/components/log_level_badge.tsx b/packages/kbn-discover-utils/src/data_types/logs/components/log_level_badge.tsx index 49c81fc256c0f..58f601338621f 100644 --- a/packages/kbn-discover-utils/src/data_types/logs/components/log_level_badge.tsx +++ b/packages/kbn-discover-utils/src/data_types/logs/components/log_level_badge.tsx @@ -41,7 +41,7 @@ export const LogLevelBadge = ({ data-test-subj={`${dataTestSubj}-unknown`} css={badgeCss} > - {logLevel} + {logLevel as React.ReactNode} ); } @@ -53,7 +53,7 @@ export const LogLevelBadge = ({ data-test-subj={`${dataTestSubj}-${coalescedValue}`} css={badgeCss} > - {logLevel} + {logLevel as React.ReactNode} ); }; diff --git a/packages/kbn-discover-utils/src/field_constants.ts b/packages/kbn-discover-utils/src/field_constants.ts index 5dcbb36db3dc0..cbc9a0d112b07 100644 --- a/packages/kbn-discover-utils/src/field_constants.ts +++ b/packages/kbn-discover-utils/src/field_constants.ts @@ -35,7 +35,7 @@ export const CONTAINER_NAME_FIELD = 'container.name'; export const CONTAINER_ID_FIELD = 'container.id'; // Degraded Docs -export const DEGRADED_DOCS_FIELD = 'ignored_field_values'; +export const DEGRADED_DOCS_FIELDS = ['ignored_field_values', '_ignored'] as const; // Error Stacktrace export const ERROR_STACK_TRACE = 'error.stack_trace'; diff --git a/packages/kbn-discover-utils/src/index.ts b/packages/kbn-discover-utils/src/index.ts index 615136770cf6e..8fe9a9418c9fe 100644 --- a/packages/kbn-discover-utils/src/index.ts +++ b/packages/kbn-discover-utils/src/index.ts @@ -12,3 +12,5 @@ export * as fieldConstants from './field_constants'; export * from './hooks'; export * from './utils'; export * from './data_types'; + +export * from './components/custom_control_columns'; diff --git a/packages/kbn-discover-utils/src/types.ts b/packages/kbn-discover-utils/src/types.ts index a2afe245308bb..63297edfe7643 100644 --- a/packages/kbn-discover-utils/src/types.ts +++ b/packages/kbn-discover-utils/src/types.ts @@ -8,8 +8,15 @@ */ import type { SearchHit } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { DatatableColumnMeta } from '@kbn/expressions-plugin/common'; export type { IgnoredReason, ShouldShowFieldInTableHandler } from './utils'; +export type { + RowControlColumn, + RowControlComponent, + RowControlProps, + RowControlRowProps, +} from './components/custom_control_columns/types'; type DiscoverSearchHit = SearchHit>; @@ -41,6 +48,17 @@ export interface DataTableRecord { isAnchor?: boolean; } +/** + * Custom column types per column name + */ +export type DataTableColumnsMeta = Record< + string, + { + type: DatatableColumnMeta['type']; + esType?: DatatableColumnMeta['esType']; + } +>; + type FormattedHitPair = readonly [ fieldDisplayName: string, formattedValue: string, diff --git a/packages/kbn-discover-utils/src/utils/build_data_record.ts b/packages/kbn-discover-utils/src/utils/build_data_record.ts index a97a5eb6db370..2bfc9554754af 100644 --- a/packages/kbn-discover-utils/src/utils/build_data_record.ts +++ b/packages/kbn-discover-utils/src/utils/build_data_record.ts @@ -8,7 +8,11 @@ */ import type { DataView } from '@kbn/data-views-plugin/common'; -import { flattenHit } from '@kbn/data-service'; +import { + type FlattenedFieldsComparator, + flattenHit, + getFlattenedFieldsComparator, +} from '@kbn/data-service'; import type { DataTableRecord, EsHitRecord } from '../types'; import { getDocId } from './get_doc_id'; @@ -21,12 +25,16 @@ import { getDocId } from './get_doc_id'; export function buildDataTableRecord( doc: EsHitRecord, dataView?: DataView, - isAnchor?: boolean + isAnchor?: boolean, + options?: { flattenedFieldsComparator?: FlattenedFieldsComparator } ): DataTableRecord { return { id: getDocId(doc), raw: doc, - flattened: flattenHit(doc, dataView, { includeIgnoredValues: true }), + flattened: flattenHit(doc, dataView, { + includeIgnoredValues: true, + flattenedFieldsComparator: options?.flattenedFieldsComparator, + }), isAnchor, }; } @@ -45,8 +53,9 @@ export function buildDataTableRecordList T; }): DataTableRecord[] { + const buildRecordOptions = { flattenedFieldsComparator: getFlattenedFieldsComparator(dataView) }; return records.map((doc) => { - const record = buildDataTableRecord(doc, dataView); + const record = buildDataTableRecord(doc, dataView, undefined, buildRecordOptions); return processRecord ? processRecord(record) : record; }); } diff --git a/packages/kbn-discover-utils/src/utils/format_hit.ts b/packages/kbn-discover-utils/src/utils/format_hit.ts index 9eae9e957bb90..99913e32cb78c 100644 --- a/packages/kbn-discover-utils/src/utils/format_hit.ts +++ b/packages/kbn-discover-utils/src/utils/format_hit.ts @@ -18,6 +18,15 @@ import type { } from '../types'; import { formatFieldValue } from './format_value'; +// We use a special type here allowing formattedValue to be undefined because +// we want to avoid formatting values which will not be shown to users since +// it can be costly, and instead only format the ones which will be rendered +type PartialHitPair = [ + fieldDisplayName: string, + formattedValue: string | undefined, + fieldName: string | null +]; + const formattedHitCache = new WeakMap< EsHitRecord, { formattedHit: FormattedHit; maxEntries: number } @@ -41,54 +50,78 @@ export function formatHit( fieldFormats: FieldFormatsStart ): FormattedHit { const cached = formattedHitCache.get(hit.raw); + if (cached && cached.maxEntries === maxEntries) { return cached.formattedHit; } const highlights = hit.raw.highlight ?? {}; - // Flatten the object using the flattenHit implementation we use across Discover for flattening documents. const flattened = hit.flattened; + const renderedPairs: PartialHitPair[] = []; + const otherPairs: PartialHitPair[] = []; - const highlightPairs: FormattedHit = []; - const sourcePairs: FormattedHit = []; - - // Add each flattened field into the corresponding array for highlighted or other fields, - // depending on whether the original hit had a highlight for it. That way we can later - // put highlighted fields first in the document summary. - Object.entries(flattened).forEach(([key, val]) => { + // Add each flattened field into the corresponding array for rendered or other pairs, + // depending on whether the original hit had a highlight for it. That way we can ensure + // highlighted fields are shown first in the document summary. + for (const key of Object.keys(flattened)) { // Retrieve the (display) name of the fields, if it's a mapped field on the data view const field = dataView.fields.getByName(key); const displayKey = field?.displayName; - const pairs = highlights[key] ? highlightPairs : sourcePairs; - // Format the raw value using the regular field formatters for that field - const formattedValue = formatFieldValue(val, hit.raw, fieldFormats, dataView, field); - // If the field was a mapped field, we validate it against the fieldsToShow list, if not - // we always include it into the result. + const pairs = highlights[key] ? renderedPairs : otherPairs; + + // If the field is a mapped field, we first check if it should be shown, + // if not we always include it into the result. if (displayKey) { if (shouldShowFieldHandler(key)) { - pairs.push([displayKey, formattedValue, key]); + pairs.push([displayKey, undefined, key]); } } else { - pairs.push([key, formattedValue, key]); + pairs.push([key, undefined, key]); } - }); - const pairs = [...highlightPairs, ...sourcePairs]; - const formatted = - // If document has more formatted fields than configured via MAX_DOC_FIELDS_DISPLAYED we cut - // off additional fields and instead show a summary how many more field exists. - pairs.length <= maxEntries - ? pairs - : [ - ...pairs.slice(0, maxEntries), - [ - i18n.translate('discover.formatHit.moreFields', { - defaultMessage: 'and {count} more {count, plural, one {field} other {fields}}', - values: { count: pairs.length - maxEntries }, - }), - '', - null, - ] as const, - ]; - formattedHitCache.set(hit.raw, { formattedHit: formatted, maxEntries }); - return formatted; + } + + const totalLength = renderedPairs.length + otherPairs.length; + + // Truncate the renderedPairs if it exceeds the maxEntries, + // otherwise fill it up with otherPairs until it reaches maxEntries + if (renderedPairs.length > maxEntries) { + renderedPairs.length = maxEntries; + } else if (renderedPairs.length < maxEntries && otherPairs.length) { + for (let i = 0; i < otherPairs.length && renderedPairs.length < maxEntries; i++) { + renderedPairs.push(otherPairs[i]); + } + } + + // Now format only the values which will be shown to the user + for (const pair of renderedPairs) { + const key = pair[2]!; + + // Format the raw value using the regular field formatters for that field + pair[1] = formatFieldValue( + flattened[key], + hit.raw, + fieldFormats, + dataView, + dataView.getFieldByName(key) + ); + } + + // If document has more formatted fields than configured via MAX_DOC_FIELDS_DISPLAYED we cut + // off additional fields and instead show a summary how many more field exists. + if (totalLength > maxEntries) { + renderedPairs.push([ + i18n.translate('discover.formatHit.moreFields', { + defaultMessage: 'and {count} more {count, plural, one {field} other {fields}}', + values: { count: totalLength - maxEntries }, + }), + '', + null, + ]); + } + + const formattedHit = renderedPairs as FormattedHit; + + formattedHitCache.set(hit.raw, { formattedHit, maxEntries }); + + return formattedHit; } diff --git a/packages/kbn-discover-utils/src/utils/get_stack_trace_fields.ts b/packages/kbn-discover-utils/src/utils/get_stack_trace_fields.ts new file mode 100644 index 0000000000000..15a2b345be615 --- /dev/null +++ b/packages/kbn-discover-utils/src/utils/get_stack_trace_fields.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { getFieldFromDoc, LogDocument, StackTraceFields } from '..'; +import { + ERROR_EXCEPTION_STACKTRACE, + ERROR_LOG_STACKTRACE, + ERROR_STACK_TRACE, +} from '../field_constants'; + +export const getStacktraceFields = (doc: LogDocument): StackTraceFields => { + const errorStackTrace = getFieldFromDoc(doc, ERROR_STACK_TRACE); + const errorExceptionStackTrace = getFieldFromDoc(doc, ERROR_EXCEPTION_STACKTRACE); + const errorLogStackTrace = getFieldFromDoc(doc, ERROR_LOG_STACKTRACE); + + return { + [ERROR_STACK_TRACE]: errorStackTrace, + [ERROR_EXCEPTION_STACKTRACE]: errorExceptionStackTrace, + [ERROR_LOG_STACKTRACE]: errorLogStackTrace, + }; +}; diff --git a/packages/kbn-discover-utils/src/utils/get_visible_columns.test.tsx b/packages/kbn-discover-utils/src/utils/get_visible_columns.test.tsx new file mode 100644 index 0000000000000..88877209d0528 --- /dev/null +++ b/packages/kbn-discover-utils/src/utils/get_visible_columns.test.tsx @@ -0,0 +1,195 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import type { DataView } from '@kbn/data-views-plugin/public'; +import type { DatatableColumnType } from '@kbn/expressions-plugin/common'; +import { + dataViewMock as dataViewMockWithoutTimeField, + dataViewMockWithTimeField, +} from '../__mocks__'; +import { getVisibleColumns, canPrependTimeFieldColumn } from './get_visible_columns'; + +describe('getVisibleColumns utils', function () { + describe('getVisibleColumns', () => { + it('returns grid columns without time column when data view has no timestamp field', () => { + const actual = getVisibleColumns( + ['extension', 'message'], + dataViewMockWithoutTimeField, + true + ) as string[]; + expect(actual).toEqual(['extension', 'message']); + }); + + it('returns grid columns without time column when showTimeCol is falsy', () => { + const actual = getVisibleColumns( + ['extension', 'message'], + dataViewMockWithTimeField, + false + ) as string[]; + expect(actual).toEqual(['extension', 'message']); + }); + + it('returns grid columns with time column when data view has timestamp field', () => { + const actual = getVisibleColumns( + ['extension', 'message'], + dataViewMockWithTimeField, + true + ) as string[]; + expect(actual).toEqual(['@timestamp', 'extension', 'message']); + }); + }); + + describe('canPrependTimeFieldColumn', () => { + function buildColumnTypes(dataView: DataView) { + const columnsMeta: Record< + string, + { type: DatatableColumnType; esType?: string | undefined } + > = {}; + for (const field of dataView.fields) { + columnsMeta[field.name] = { type: field.type as DatatableColumnType }; + } + return columnsMeta; + } + + describe('dataView with timeField', () => { + it('should forward showTimeCol if no _source columns is passed', () => { + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['extension', 'message'], + dataViewMockWithTimeField.timeFieldName, + buildColumnTypes(dataViewMockWithTimeField), + showTimeCol, + false + ) + ).toBe(showTimeCol); + } + }); + + it('should return false if no _source columns is passed, text-based datasource', () => { + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['extension', 'message'], + dataViewMockWithTimeField.timeFieldName, + buildColumnTypes(dataViewMockWithTimeField), + showTimeCol, + true + ) + ).toBe(false); + } + }); + + it('should forward showTimeCol if _source column is passed', () => { + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['_source'], + dataViewMockWithTimeField.timeFieldName, + buildColumnTypes(dataViewMockWithTimeField), + showTimeCol, + false + ) + ).toBe(showTimeCol); + } + }); + + it('should forward showTimeCol if _source column is passed, text-based datasource', () => { + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['_source'], + dataViewMockWithTimeField.timeFieldName, + buildColumnTypes(dataViewMockWithTimeField), + showTimeCol, + true + ) + ).toBe(showTimeCol); + } + }); + + it('should return false if _source column is passed but time field is not returned, text-based datasource', () => { + // ... | DROP @timestamp test case + const columnsMeta = buildColumnTypes(dataViewMockWithTimeField); + if (dataViewMockWithTimeField.timeFieldName) { + delete columnsMeta[dataViewMockWithTimeField.timeFieldName]; + } + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['_source'], + dataViewMockWithTimeField.timeFieldName, + columnsMeta, + showTimeCol, + true + ) + ).toBe(false); + } + }); + }); + + describe('dataView without timeField', () => { + it('should return false if no _source columns is passed', () => { + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['extension', 'message'], + dataViewMockWithoutTimeField.timeFieldName, + buildColumnTypes(dataViewMockWithoutTimeField), + showTimeCol, + false + ) + ).toBe(false); + } + }); + + it('should return false if no _source columns is passed, text-based datasource', () => { + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['extension', 'message'], + dataViewMockWithoutTimeField.timeFieldName, + buildColumnTypes(dataViewMockWithoutTimeField), + showTimeCol, + true + ) + ).toBe(false); + } + }); + + it('should return false if _source column is passed', () => { + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['_source'], + dataViewMockWithoutTimeField.timeFieldName, + buildColumnTypes(dataViewMockWithoutTimeField), + showTimeCol, + false + ) + ).toBe(false); + } + }); + + it('should return false if _source column is passed, text-based datasource', () => { + for (const showTimeCol of [true, false]) { + expect( + canPrependTimeFieldColumn( + ['_source'], + dataViewMockWithoutTimeField.timeFieldName, + buildColumnTypes(dataViewMockWithoutTimeField), + showTimeCol, + true + ) + ).toBe(false); + } + }); + }); + }); +}); diff --git a/packages/kbn-discover-utils/src/utils/get_visible_columns.ts b/packages/kbn-discover-utils/src/utils/get_visible_columns.ts new file mode 100644 index 0000000000000..69c4390d61e08 --- /dev/null +++ b/packages/kbn-discover-utils/src/utils/get_visible_columns.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import type { DataView } from '@kbn/data-views-plugin/common'; +import type { DataTableColumnsMeta } from '../types'; + +export function canPrependTimeFieldColumn( + columns: string[] | undefined, + timeFieldName: string | undefined, + columnsMeta: DataTableColumnsMeta | undefined, + showTimeCol: boolean, // based on Advanced Settings `doc_table:hideTimeColumn` + isESQLMode: boolean +) { + if (!showTimeCol || !timeFieldName) { + return false; + } + + if (isESQLMode) { + return ( + !!columns && !!columnsMeta && timeFieldName in columnsMeta && columns.includes('_source') + ); + } + + return true; +} + +export function getVisibleColumns( + columns: string[], + dataView: DataView, + shouldPrependTimeFieldColumn: boolean +) { + const timeFieldName = dataView.timeFieldName; + + if ( + shouldPrependTimeFieldColumn && + timeFieldName && + !columns.find((col) => col === timeFieldName) + ) { + return [timeFieldName, ...columns]; + } + + return columns; +} diff --git a/packages/kbn-discover-utils/src/utils/index.ts b/packages/kbn-discover-utils/src/utils/index.ts index 4066ce34bdb01..201cd10fb4dee 100644 --- a/packages/kbn-discover-utils/src/utils/index.ts +++ b/packages/kbn-discover-utils/src/utils/index.ts @@ -8,6 +8,7 @@ */ export * from './build_data_record'; +export * from './calc_field_counts'; export * from './format_hit'; export * from './format_value'; export * from './get_doc_id'; @@ -15,7 +16,9 @@ export * from './get_ignored_reason'; export * from './get_log_document_overview'; export * from './get_message_field_with_fallbacks'; export * from './get_should_show_field_handler'; +export * from './get_stack_trace_fields'; export * from './nested_fields'; export * from './get_field_value'; export * from './calc_field_counts'; +export * from './get_visible_columns'; export { isLegacyTableEnabled } from './is_legacy_table_enabled'; diff --git a/packages/kbn-discover-utils/tsconfig.json b/packages/kbn-discover-utils/tsconfig.json index de0b747eda555..ef9ccaa7ab9b7 100644 --- a/packages/kbn-discover-utils/tsconfig.json +++ b/packages/kbn-discover-utils/tsconfig.json @@ -11,7 +11,7 @@ }, "include": [ "**/*.ts", - "**/*.tsx", + "**/*.tsx" ], "exclude": [ "target/**/*" @@ -25,6 +25,7 @@ "@kbn/field-types", "@kbn/i18n", "@kbn/core-ui-settings-browser", - "@kbn/ui-theme" + "@kbn/ui-theme", + "@kbn/expressions-plugin" ] } diff --git a/packages/kbn-discover-utils/types.ts b/packages/kbn-discover-utils/types.ts index 436d9617614ff..dfbb54f1f09ca 100644 --- a/packages/kbn-discover-utils/types.ts +++ b/packages/kbn-discover-utils/types.ts @@ -9,6 +9,7 @@ export type { DataTableRecord, + DataTableColumnsMeta, EsHitRecord, IgnoredReason, ShouldShowFieldInTableHandler, diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 9b696dbda265e..d2ac9c6678797 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -51,6 +51,7 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D elasticStackGetStarted: isServerless ? `${SERVERLESS_DOCS}` : `${ELASTIC_WEBSITE_URL}guide/en/index.html`, + apiReference: `${ELASTIC_WEBSITE_URL}guide/en/starting-with-the-elasticsearch-platform-and-its-solutions/current/api-reference.html`, upgrade: { upgradingStackOnPrem: `${ELASTIC_WEBSITE_URL}guide/en/elastic-stack/current/upgrading-elastic-stack-on-prem.html`, upgradingStackOnCloud: `${ELASTIC_WEBSITE_URL}guide/en/elastic-stack/current/upgrade-elastic-stack-for-elastic-cloud.html`, @@ -563,6 +564,8 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D setUpgradeMode: `${ELASTICSEARCH_DOCS}ml-set-upgrade-mode.html`, trainedModels: `${MACHINE_LEARNING_DOCS}ml-trained-models.html`, startTrainedModelsDeployment: `${MACHINE_LEARNING_DOCS}ml-nlp-deploy-model.html`, + logsAnomalyDetectionConfigs: `${MACHINE_LEARNING_DOCS}ootb-ml-jobs-logs-ui.html`, + metricsAnomalyDetectionConfigs: `${MACHINE_LEARNING_DOCS}ootb-ml-jobs-metrics-ui.html`, nlpElser: `${MACHINE_LEARNING_DOCS}ml-nlp-elser.html`, nlpE5: `${MACHINE_LEARNING_DOCS}ml-nlp-e5.html`, nlpImportModel: `${MACHINE_LEARNING_DOCS}ml-nlp-import-model.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 4a5aee07d68c2..ae6e56a9ac385 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -25,6 +25,7 @@ export interface DocLinksMeta { export interface DocLinks { readonly settings: string; readonly elasticStackGetStarted: string; + readonly apiReference: string; readonly upgrade: { readonly upgradingStackOnPrem: string; readonly upgradingStackOnCloud: string; diff --git a/packages/kbn-es-types/src/search.ts b/packages/kbn-es-types/src/search.ts index f26ed8613b27c..553401b19b986 100644 --- a/packages/kbn-es-types/src/search.ts +++ b/packages/kbn-es-types/src/search.ts @@ -89,7 +89,7 @@ export type SearchHit< ? { fields: Partial, unknown[]>>; } - : {}) & + : { fields?: Record }) & (TDocValueFields extends DocValueFields ? { fields: Partial, unknown[]>>; diff --git a/packages/kbn-esql-ast/src/types.ts b/packages/kbn-esql-ast/src/types.ts index 681a93386fefd..da42ec24bd69b 100644 --- a/packages/kbn-esql-ast/src/types.ts +++ b/packages/kbn-esql-ast/src/types.ts @@ -114,6 +114,17 @@ export interface ESQLFunction< args: ESQLAstItem[]; } +const isESQLAstBaseItem = (node: unknown): node is ESQLAstBaseItem => + typeof node === 'object' && + node !== null && + Object.hasOwn(node, 'name') && + Object.hasOwn(node, 'text'); + +export const isESQLFunction = (node: unknown): node is ESQLFunction => + isESQLAstBaseItem(node) && + Object.hasOwn(node, 'type') && + (node as ESQLFunction).type === 'function'; + export interface ESQLFunctionCallExpression extends ESQLFunction<'variadic-call'> { subtype: 'variadic-call'; args: ESQLAstItem[]; @@ -293,6 +304,10 @@ export interface ESQLNamedParamLiteral extends ESQLParamLiteral<'named'> { value: string; } +export const isESQLNamedParamLiteral = (node: ESQLAstItem): node is ESQLNamedParamLiteral => + isESQLAstBaseItem(node) && + (node as ESQLNamedParamLiteral).literalType === 'param' && + (node as ESQLNamedParamLiteral).paramType === 'named'; /** * *Positional* parameter is a question mark followed by a number "?1". * diff --git a/packages/kbn-esql-utils/README.md b/packages/kbn-esql-utils/README.md index 9b688555ea210..e12e015b2f334 100644 --- a/packages/kbn-esql-utils/README.md +++ b/packages/kbn-esql-utils/README.md @@ -8,4 +8,4 @@ This package contains utilities for ES|QL. - *removeDropCommandsFromESQLQuery*: Use this function to remove all the occurences of the `drop` command from the query. - *appendToESQLQuery*: Use this function to append more pipes in an existing ES|QL query. It adds the additional commands in a new line. - *appendWhereClauseToESQLQuery*: Use this function to append where clause in an existing query. -- *retieveMetadataColumns*: Use this function to get if there is a metadata option in the from command, and retrieve the columns if so +- *retrieveMetadataColumns*: Use this function to get if there is a metadata option in the from command, and retrieve the columns if so diff --git a/packages/kbn-esql-utils/index.ts b/packages/kbn-esql-utils/index.ts index dce93150f0fac..4221bced60d04 100644 --- a/packages/kbn-esql-utils/index.ts +++ b/packages/kbn-esql-utils/index.ts @@ -27,7 +27,7 @@ export { hasStartEndParams, prettifyQuery, isQueryWrappedByPipes, - retieveMetadataColumns, + retrieveMetadataColumns, TextBasedLanguages, } from './src'; diff --git a/packages/kbn-esql-utils/src/index.ts b/packages/kbn-esql-utils/src/index.ts index c214574099e46..95332bbd10328 100644 --- a/packages/kbn-esql-utils/src/index.ts +++ b/packages/kbn-esql-utils/src/index.ts @@ -19,7 +19,7 @@ export { getTimeFieldFromESQLQuery, prettifyQuery, isQueryWrappedByPipes, - retieveMetadataColumns, + retrieveMetadataColumns, } from './utils/query_parsing_helpers'; export { appendToESQLQuery, appendWhereClauseToESQLQuery } from './utils/append_to_query'; export { diff --git a/packages/kbn-esql-utils/src/utils/query_parsing_helpers.test.ts b/packages/kbn-esql-utils/src/utils/query_parsing_helpers.test.ts index 3c56856d1abf6..47096f3421d76 100644 --- a/packages/kbn-esql-utils/src/utils/query_parsing_helpers.test.ts +++ b/packages/kbn-esql-utils/src/utils/query_parsing_helpers.test.ts @@ -15,7 +15,7 @@ import { getTimeFieldFromESQLQuery, prettifyQuery, isQueryWrappedByPipes, - retieveMetadataColumns, + retrieveMetadataColumns, } from './query_parsing_helpers'; describe('esql query helpers', () => { @@ -217,16 +217,16 @@ describe('esql query helpers', () => { }); }); - describe('retieveMetadataColumns', () => { + describe('retrieveMetadataColumns', () => { it('should return metadata columns if they exist', () => { - expect(retieveMetadataColumns('from a metadata _id, _ignored | eval b = 1')).toStrictEqual([ + expect(retrieveMetadataColumns('from a metadata _id, _ignored | eval b = 1')).toStrictEqual([ '_id', '_ignored', ]); }); it('should return empty columns if metadata doesnt exist', () => { - expect(retieveMetadataColumns('from a | eval b = 1')).toStrictEqual([]); + expect(retrieveMetadataColumns('from a | eval b = 1')).toStrictEqual([]); }); }); }); diff --git a/packages/kbn-esql-utils/src/utils/query_parsing_helpers.ts b/packages/kbn-esql-utils/src/utils/query_parsing_helpers.ts index e0c67db41864b..734acac70fd7d 100644 --- a/packages/kbn-esql-utils/src/utils/query_parsing_helpers.ts +++ b/packages/kbn-esql-utils/src/utils/query_parsing_helpers.ts @@ -126,7 +126,7 @@ export const prettifyQuery = (query: string, isWrapped: boolean): string => { return BasicPrettyPrinter.print(ast, { multiline: !isWrapped }); }; -export const retieveMetadataColumns = (esql: string): string[] => { +export const retrieveMetadataColumns = (esql: string): string[] => { const { ast } = getAstAndSyntaxErrors(esql); const options: ESQLCommandOption[] = []; diff --git a/packages/kbn-esql-validation-autocomplete/scripts/generate_function_definitions.ts b/packages/kbn-esql-validation-autocomplete/scripts/generate_function_definitions.ts index 8515a249f7686..144ba21f51ecb 100644 --- a/packages/kbn-esql-validation-autocomplete/scripts/generate_function_definitions.ts +++ b/packages/kbn-esql-validation-autocomplete/scripts/generate_function_definitions.ts @@ -25,11 +25,15 @@ const aliasTable: Record = { }; const aliases = new Set(Object.values(aliasTable).flat()); -const evalSupportedCommandsAndOptions = { +const scalarSupportedCommandsAndOptions = { supportedCommands: ['stats', 'inlinestats', 'metrics', 'eval', 'where', 'row', 'sort'], supportedOptions: ['by'], }; +const aggregationSupportedCommandsAndOptions = { + supportedCommands: ['stats', 'inlinestats', 'metrics'], +}; + // coalesce can be removed when a test is added for version type // (https://github.com/elastic/elasticsearch/pull/109032#issuecomment-2150033350) const excludedFunctions = new Set(['bucket', 'case']); @@ -40,7 +44,7 @@ const extraFunctions: FunctionDefinition[] = [ name: 'case', description: 'Accepts pairs of conditions and values. The function returns the value that belongs to the first condition that evaluates to `true`. If the number of arguments is odd, the last argument is the default value which is returned when no condition matches.', - ...evalSupportedCommandsAndOptions, + ...scalarSupportedCommandsAndOptions, signatures: [ { params: [ @@ -215,9 +219,22 @@ const functionEnrichments: Record> }, mv_sort: { signatures: new Array(9).fill({ - params: [{}, { literalOptions: ['asc', 'desc'] }], + params: [{}, { acceptedValues: ['asc', 'desc'] }], + }), + }, + percentile: { + signatures: new Array(9).fill({ + params: [{}, { constantOnly: true }], + }), + }, + top: { + signatures: new Array(6).fill({ + params: [{}, { constantOnly: true }, { constantOnly: true, acceptedValues: ['asc', 'desc'] }], }), }, + count: { + signatures: [{ params: [{ supportsWildcard: true }] }], + }, }; const convertDateTime = (s: string) => (s === 'datetime' ? 'date' : s); @@ -233,8 +250,8 @@ function getFunctionDefinition(ESFunctionDefinition: Record): Funct type: ESFunctionDefinition.type, name: ESFunctionDefinition.name, ...(ESFunctionDefinition.type === 'eval' - ? evalSupportedCommandsAndOptions - : { supportedCommands: ['stats'] }), + ? scalarSupportedCommandsAndOptions + : aggregationSupportedCommandsAndOptions), description: ESFunctionDefinition.description, alias: aliasTable[ESFunctionDefinition.name], signatures: _.uniqBy( @@ -263,7 +280,10 @@ function getFunctionDefinition(ESFunctionDefinition: Record): Funct return ret as FunctionDefinition; } -function printGeneratedFunctionsFile(functionDefinitions: FunctionDefinition[]) { +function printGeneratedFunctionsFile( + functionDefinitions: FunctionDefinition[], + functionsType: 'aggregation' | 'scalar' +) { /** * Deals with asciidoc internal cross-references in the function descriptions * @@ -341,10 +361,14 @@ function printGeneratedFunctionsFile(functionDefinitions: FunctionDefinition[]) * */ -import type { ESQLFunction } from '@kbn/esql-ast'; import { i18n } from '@kbn/i18n'; -import { isLiteralItem } from '../shared/helpers'; -import type { FunctionDefinition } from './types'; +import type { FunctionDefinition } from '../types'; +${ + functionsType === 'scalar' + ? `import type { ESQLFunction } from '@kbn/esql-ast'; +import { isLiteralItem } from '../../shared/helpers';` + : '' +} `; @@ -359,7 +383,7 @@ import type { FunctionDefinition } from './types'; .join('\n\n'); const fileContents = `${fileHeader}${functionDefinitionsString} - export const evalFunctionDefinitions = [${functionDefinitions + export const ${functionsType}FunctionDefinitions = [${functionDefinitions .map(({ name }) => getDefinitionName(name)) .join(',\n')}];`; @@ -379,25 +403,30 @@ import type { FunctionDefinition } from './types'; JSON.parse(readFileSync(`${ESFunctionDefinitionsDirectory}/${file}`, 'utf-8')) ); - const evalFunctionDefinitions: FunctionDefinition[] = []; + const scalarFunctionDefinitions: FunctionDefinition[] = []; + const aggFunctionDefinitions: FunctionDefinition[] = []; for (const ESDefinition of ESFunctionDefinitions) { - if ( - aliases.has(ESDefinition.name) || - excludedFunctions.has(ESDefinition.name) || - ESDefinition.type !== 'eval' - ) { + if (aliases.has(ESDefinition.name) || excludedFunctions.has(ESDefinition.name)) { continue; } const functionDefinition = getFunctionDefinition(ESDefinition); - evalFunctionDefinitions.push(functionDefinition); + if (functionDefinition.type === 'eval') { + scalarFunctionDefinitions.push(functionDefinition); + } else if (functionDefinition.type === 'agg') { + aggFunctionDefinitions.push(functionDefinition); + } } - evalFunctionDefinitions.push(...extraFunctions); + scalarFunctionDefinitions.push(...extraFunctions); await writeFile( - join(__dirname, '../src/definitions/functions.ts'), - printGeneratedFunctionsFile(evalFunctionDefinitions) + join(__dirname, '../src/definitions/generated/scalar_functions.ts'), + printGeneratedFunctionsFile(scalarFunctionDefinitions, 'scalar') + ); + await writeFile( + join(__dirname, '../src/definitions/generated/aggregation_functions.ts'), + printGeneratedFunctionsFile(aggFunctionDefinitions, 'aggregation') ); })(); diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.command.stats.test.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.command.stats.test.ts index 0a9cbb35d9a75..452a3b2754644 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.command.stats.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.command.stats.test.ts @@ -7,10 +7,17 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ +import { FieldType, FunctionReturnType } from '../../definitions/types'; import { ESQL_COMMON_NUMERIC_TYPES, ESQL_NUMBER_TYPES } from '../../shared/esql_types'; +import { allStarConstant } from '../complete_items'; import { getAddDateHistogramSnippet } from '../factories'; import { roundParameterTypes } from './constants'; -import { setup, getFunctionSignaturesByReturnType, getFieldNamesByType } from './helpers'; +import { + setup, + getFunctionSignaturesByReturnType, + getFieldNamesByType, + getLiteralsByType, +} from './helpers'; const allAggFunctions = getFunctionSignaturesByReturnType('stats', 'any', { agg: true, @@ -39,6 +46,9 @@ const allGroupingFunctions = getFunctionSignaturesByReturnType( 'by' ); +// types accepted by the AVG function +const avgTypes: Array = ['double', 'integer', 'long']; + describe('autocomplete.suggest', () => { describe('STATS [ BY ]', () => { describe('STATS ...', () => {}); @@ -121,18 +131,16 @@ describe('autocomplete.suggest', () => { ), ]); await assertSuggestions('from a | stats avg(/', [ - ...getFieldNamesByType(ESQL_NUMBER_TYPES), - ...getFunctionSignaturesByReturnType('eval', ESQL_NUMBER_TYPES, { scalar: true }), + ...getFieldNamesByType(avgTypes), + ...getFunctionSignaturesByReturnType('eval', avgTypes, { + scalar: true, + }), ]); await assertSuggestions('from a | stats round(avg(/', [ - ...getFieldNamesByType(ESQL_NUMBER_TYPES), - ...getFunctionSignaturesByReturnType( - 'eval', - ESQL_NUMBER_TYPES, - { scalar: true }, - undefined, - ['round'] - ), + ...getFieldNamesByType(avgTypes), + ...getFunctionSignaturesByReturnType('eval', avgTypes, { scalar: true }, undefined, [ + 'round', + ]), ]); }); @@ -150,16 +158,7 @@ describe('autocomplete.suggest', () => { ]), ...getFunctionSignaturesByReturnType( 'stats', - [ - ...ESQL_COMMON_NUMERIC_TYPES, - 'date', - 'date_period', - 'boolean', - 'ip', - 'version', - 'text', - 'keyword', - ], + [...ESQL_COMMON_NUMERIC_TYPES, 'date', 'boolean', 'ip', 'version', 'text', 'keyword'], { scalar: true, } @@ -175,14 +174,10 @@ describe('autocomplete.suggest', () => { const { assertSuggestions } = await setup(); await assertSuggestions('from a | stats avg(b/) by stringField', [ - ...getFieldNamesByType(ESQL_NUMBER_TYPES), - ...getFunctionSignaturesByReturnType( - 'eval', - ['double', 'integer', 'long', 'unsigned_long'], - { - scalar: true, - } - ), + ...getFieldNamesByType(avgTypes), + ...getFunctionSignaturesByReturnType('eval', avgTypes, { + scalar: true, + }), ]); }); @@ -295,17 +290,38 @@ describe('autocomplete.suggest', () => { [',', '| ', '+ $0', '- $0'] ); }); - - test('count(/) to suggest * for all', async () => { + test('on space within bucket()', async () => { const { assertSuggestions } = await setup(); + await assertSuggestions('from a | stats avg(b) by BUCKET(/, 50, ?t_start, ?t_end)', [ + // Note there's no space or comma in the suggested field names + ...getFieldNamesByType(['date', ...ESQL_COMMON_NUMERIC_TYPES]), + ...getFunctionSignaturesByReturnType('eval', ['date', ...ESQL_COMMON_NUMERIC_TYPES], { + scalar: true, + }), + ]); + await assertSuggestions('from a | stats avg(b) by BUCKET( / , 50, ?t_start, ?t_end)', [ + // Note there's no space or comma in the suggested field names + ...getFieldNamesByType(['date', ...ESQL_COMMON_NUMERIC_TYPES]), + ...getFunctionSignaturesByReturnType('eval', ['date', ...ESQL_COMMON_NUMERIC_TYPES], { + scalar: true, + }), + ]); - const expected = [ - '*', - ...getFieldNamesByType(['any']).map((field) => `${field}`), - ...allEvaFunctions, - ]; - await assertSuggestions('from a | stats count(/)', expected); - await assertSuggestions('from a | stats var0 = count(/)', expected); + await assertSuggestions( + 'from a | stats avg(b) by BUCKET(dateField, /50, ?t_start, ?t_end)', + [ + ...getLiteralsByType('time_literal'), + ...getFunctionSignaturesByReturnType('eval', ['integer', 'date_period'], { + scalar: true, + }), + ] + ); + }); + + test('count(/) to suggest * for all', async () => { + const { suggest } = await setup(); + const suggestions = await suggest('from a | stats count(/)'); + expect(suggestions).toContain(allStarConstant); }); }); }); diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.suggest.eval.test.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.suggest.eval.test.ts index 356761966994a..c07b065b23ce8 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.suggest.eval.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/autocomplete.suggest.eval.test.ts @@ -17,7 +17,7 @@ import { getDateLiteralsByFieldType, } from './helpers'; import { ESQL_COMMON_NUMERIC_TYPES } from '../../shared/esql_types'; -import { evalFunctionDefinitions } from '../../definitions/functions'; +import { scalarFunctionDefinitions } from '../../definitions/generated/scalar_functions'; import { timeUnitsToSuggest } from '../../definitions/literals'; import { getCompatibleTypesToSuggestNext, @@ -361,7 +361,7 @@ describe('autocomplete.suggest', () => { describe('eval functions', () => { // // Test suggestions for each possible param, within each signature variation, for each function - for (const fn of evalFunctionDefinitions) { + for (const fn of scalarFunctionDefinitions) { // skip this fn for the moment as it's quite hard to test // if (!['bucket', 'date_extract', 'date_diff', 'case'].includes(fn.name)) { if (!['bucket', 'date_extract', 'date_diff', 'case'].includes(fn.name)) { @@ -541,7 +541,12 @@ describe('autocomplete.suggest', () => { ); await assertSuggestions( 'from a | eval var0=date_trunc(/)', - getLiteralsByType('time_literal').map((t) => `${t}, `), + [ + ...getLiteralsByType('time_literal').map((t) => `${t}, `), + ...getFunctionSignaturesByReturnType('eval', 'time_duration', { scalar: true }).map( + (t) => `${t.text},` + ), + ], { triggerCharacter: '(' } ); await assertSuggestions( diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/helpers.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/helpers.ts index 989eca0240c9c..70b1d717f6e4e 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/helpers.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/__tests__/helpers.ts @@ -9,9 +9,9 @@ import { camelCase } from 'lodash'; import { getAstAndSyntaxErrors } from '@kbn/esql-ast'; -import { evalFunctionDefinitions } from '../../definitions/functions'; +import { scalarFunctionDefinitions } from '../../definitions/generated/scalar_functions'; import { builtinFunctions } from '../../definitions/builtin'; -import { statsAggregationFunctionDefinitions } from '../../definitions/aggs'; +import { aggregationFunctionDefinitions } from '../../definitions/generated/aggregation_functions'; import { timeUnitsToSuggest } from '../../definitions/literals'; import { groupingFunctionDefinitions } from '../../definitions/grouping'; import * as autocomplete from '../autocomplete'; @@ -149,7 +149,7 @@ export function getFunctionSignaturesByReturnType( const list = []; if (agg) { - list.push(...statsAggregationFunctionDefinitions); + list.push(...aggregationFunctionDefinitions); // right now all grouping functions are agg functions too list.push(...groupingFunctionDefinitions); } @@ -158,7 +158,7 @@ export function getFunctionSignaturesByReturnType( } // eval functions (eval is a special keyword in JS) if (scalar) { - list.push(...evalFunctionDefinitions); + list.push(...scalarFunctionDefinitions); } if (builtin) { list.push(...builtinFunctions.filter(({ name }) => (skipAssign ? name !== '=' : true))); diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts index 2c5f4bda941ba..80ff7148f8623 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.test.ts @@ -8,7 +8,7 @@ */ import { suggest } from './autocomplete'; -import { evalFunctionDefinitions } from '../definitions/functions'; +import { scalarFunctionDefinitions } from '../definitions/generated/scalar_functions'; import { timeUnitsToSuggest } from '../definitions/literals'; import { commandDefinitions as unmodifiedCommandDefinitions } from '../definitions/commands'; import { @@ -747,8 +747,8 @@ describe('autocomplete', () => { describe('function arguments', () => { // literalSuggestions parameter const dateDiffFirstParamSuggestions = - evalFunctionDefinitions.find(({ name }) => name === 'date_diff')?.signatures[0].params?.[0] - .literalSuggestions ?? []; + scalarFunctionDefinitions.find(({ name }) => name === 'date_diff')?.signatures[0] + .params?.[0].literalSuggestions ?? []; testSuggestions( 'FROM a | EVAL DATE_DIFF(/)', dateDiffFirstParamSuggestions.map((s) => `"${s}", `).map(attachTriggerCommand) diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts index 89e1a71c8e36e..f80ebf862c0cf 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/autocomplete.ts @@ -30,11 +30,9 @@ import { isAssignment, isAssignmentComplete, isColumnItem, - isComma, isFunctionItem, isIncompleteItem, isLiteralItem, - isMathFunction, isOptionItem, isRestartingExpression, isSourceCommand, @@ -47,6 +45,7 @@ import { getColumnExists, findPreviousWord, noCaseCompare, + correctQuerySyntax, getColumnByName, } from '../shared/helpers'; import { collectVariables, excludeVariablesFromCurrentCommand } from '../shared/variables'; @@ -98,11 +97,8 @@ import { getSourcesFromCommands, getSupportedTypesForBinaryOperators, isAggFunctionUsedAlready, - getCompatibleTypesToSuggestNext, removeQuoteForSuggestedSources, - getValidFunctionSignaturesForPreviousArgs, - strictlyGetParamAtPosition, - isLiteralDateItem, + getValidSignaturesAndTypesToSuggestNext, } from './helper'; import { FunctionParameter, @@ -158,76 +154,6 @@ function getFinalSuggestions({ comma }: { comma?: boolean } = { comma: true }) { return finalSuggestions; } -/** - * This function count the number of unclosed brackets in order to - * locally fix the queryString to generate a valid AST - * A known limitation of this is that is not aware of commas "," or pipes "|" - * so it is not yet helpful on a multiple commands errors (a workaround it to pass each command here...) - * @param bracketType - * @param text - * @returns - */ -function countBracketsUnclosed(bracketType: '(' | '[' | '"' | '"""', text: string) { - const stack = []; - const closingBrackets = { '(': ')', '[': ']', '"': '"', '"""': '"""' }; - for (let i = 0; i < text.length; i++) { - const substr = text.substring(i, i + bracketType.length); - if (substr === closingBrackets[bracketType] && stack.length) { - stack.pop(); - } else if (substr === bracketType) { - stack.push(bracketType); - } - } - return stack.length; -} - -/** - * This function attempts to correct the syntax of a partial query to make it valid. - * - * This is important because a syntactically-invalid query will not generate a good AST. - * - * @param _query - * @param context - * @returns - */ -function correctQuerySyntax(_query: string, context: EditorContext) { - let query = _query; - // check if all brackets are closed, otherwise close them - const unclosedRoundBrackets = countBracketsUnclosed('(', query); - const unclosedSquaredBrackets = countBracketsUnclosed('[', query); - const unclosedQuotes = countBracketsUnclosed('"', query); - const unclosedTripleQuotes = countBracketsUnclosed('"""', query); - // 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 - const charThatNeedMarkers = [',', ':']; - if ( - (context.triggerCharacter && charThatNeedMarkers.includes(context.triggerCharacter)) || - // monaco.editor.CompletionTriggerKind['Invoke'] === 0 - (context.triggerKind === 0 && unclosedRoundBrackets === 0) || - (context.triggerCharacter === ' ' && isMathFunction(query, query.length)) || - isComma(query.trimEnd()[query.trimEnd().length - 1]) - ) { - query += EDITOR_MARKER; - } - - // if there are unclosed brackets, close them - if (unclosedRoundBrackets || unclosedSquaredBrackets || unclosedQuotes) { - for (const [char, count] of [ - ['"""', unclosedTripleQuotes], - ['"', unclosedQuotes], - [')', unclosedRoundBrackets], - [']', unclosedSquaredBrackets], - ]) { - if (count) { - // inject the closing brackets - query += Array(count).fill(char).join(''); - } - } - } - - return query; -} - export async function suggest( fullText: string, offset: number, @@ -332,7 +258,7 @@ export async function suggest( return []; } -function getFieldsByTypeRetriever( +export function getFieldsByTypeRetriever( queryString: string, resourceRetriever?: ESQLCallbacks ): { getFieldsByType: GetFieldsByTypeFn; getFieldsMap: GetFieldsMapFn } { @@ -1290,18 +1216,6 @@ async function getFunctionArgsSuggestions( fields: fieldsMap, variables: anyVariables, }; - - const enrichedArgs = node.args.map((nodeArg) => { - let dataType = extractTypeFromASTArg(nodeArg, references); - - // For named system time parameters ?start and ?end, make sure it's compatiable - if (isLiteralDateItem(nodeArg)) { - dataType = 'date'; - } - - return { ...nodeArg, dataType } as ESQLAstItem & { dataType: string }; - }); - const variablesExcludingCurrentCommandOnes = excludeVariablesFromCurrentCommand( commands, command, @@ -1309,33 +1223,15 @@ async function getFunctionArgsSuggestions( innerText ); - // pick the type of the next arg - const shouldGetNextArgument = node.text.includes(EDITOR_MARKER); - let argIndex = Math.max(node.args.length, 0); - if (!shouldGetNextArgument && argIndex) { - argIndex -= 1; - } - + const { typesToSuggestNext, hasMoreMandatoryArgs, enrichedArgs, argIndex } = + getValidSignaturesAndTypesToSuggestNext(node, references, fnDefinition, fullText, offset); const arg: ESQLAstItem = enrichedArgs[argIndex]; - const validSignatures = getValidFunctionSignaturesForPreviousArgs( - fnDefinition, - enrichedArgs, - argIndex - ); - // Retrieve unique of types that are compatiable for the current arg - const typesToSuggestNext = getCompatibleTypesToSuggestNext(fnDefinition, enrichedArgs, argIndex); - const hasMoreMandatoryArgs = !validSignatures - // Types available to suggest next after this argument is completed - .map((signature) => strictlyGetParamAtPosition(signature, argIndex + 1)) - // when a param is null, it means param is optional - // If there's at least one param that is optional, then - // no need to suggest comma - .some((p) => p === null || p?.optional === true); - // Whether to prepend comma to suggestion string // E.g. if true, "fieldName" -> "fieldName, " - const alreadyHasComma = fullText ? fullText[offset] === ',' : false; + const isCursorFollowedByComma = fullText + ? fullText.slice(offset, fullText.length).trimStart().startsWith(',') + : false; const canBeBooleanCondition = // For `CASE()`, there can be multiple conditions, so keep suggesting fields and functions if possible fnDefinition.name === 'case' || @@ -1345,9 +1241,10 @@ async function getFunctionArgsSuggestions( const shouldAddComma = hasMoreMandatoryArgs && fnDefinition.type !== 'builtin' && - !alreadyHasComma && + !isCursorFollowedByComma && !canBeBooleanCondition; - const shouldAdvanceCursor = hasMoreMandatoryArgs && fnDefinition.type !== 'builtin'; + const shouldAdvanceCursor = + hasMoreMandatoryArgs && fnDefinition.type !== 'builtin' && !isCursorFollowedByComma; const suggestedConstants = uniq( typesToSuggestNext diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts index 3b5cb1e58e2e2..d085588c934e7 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/factories.ts @@ -10,8 +10,8 @@ import { i18n } from '@kbn/i18n'; import { SuggestionRawDefinition } from './types'; import { groupingFunctionDefinitions } from '../definitions/grouping'; -import { statsAggregationFunctionDefinitions } from '../definitions/aggs'; -import { evalFunctionDefinitions } from '../definitions/functions'; +import { aggregationFunctionDefinitions } from '../definitions/generated/aggregation_functions'; +import { scalarFunctionDefinitions } from '../definitions/generated/scalar_functions'; import { getFunctionSignatures, getCommandSignature } from '../definitions/helpers'; import { timeUnitsToSuggest } from '../definitions/literals'; import { @@ -26,8 +26,8 @@ import { DOUBLE_BACKTICK, SINGLE_TICK_REGEX } from '../shared/constants'; import { ESQLRealField } from '../validation/types'; import { isNumericType } from '../shared/esql_types'; -const allFunctions = statsAggregationFunctionDefinitions - .concat(evalFunctionDefinitions) +const allFunctions = aggregationFunctionDefinitions + .concat(scalarFunctionDefinitions) .concat(groupingFunctionDefinitions); export const TIME_SYSTEM_PARAMS = ['?t_start', '?t_end']; @@ -438,6 +438,20 @@ export function getCompatibleLiterals( return suggestions; } +export const TIME_SYSTEM_DESCRIPTIONS = { + '?t_start': i18n.translate( + 'kbn-esql-validation-autocomplete.esql.autocomplete.timeSystemParamStart', + { + defaultMessage: 'The start time from the date picker', + } + ), + '?t_end': i18n.translate( + 'kbn-esql-validation-autocomplete.esql.autocomplete.timeSystemParamEnd', + { + defaultMessage: 'The end time from the date picker', + } + ), +}; export function getDateLiterals(options?: { advanceCursorAndOpenSuggestions?: boolean; addComma?: boolean; diff --git a/packages/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts b/packages/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts index db7ff9875e29d..deba0b045563d 100644 --- a/packages/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts +++ b/packages/kbn-esql-validation-autocomplete/src/autocomplete/helper.ts @@ -19,6 +19,9 @@ import { import type { SuggestionRawDefinition } from './types'; import { compareTypesWithLiterals } from '../shared/esql_types'; import { TIME_SYSTEM_PARAMS } from './factories'; +import { EDITOR_MARKER } from '../shared/constants'; +import { extractTypeFromASTArg } from './autocomplete'; +import { ESQLRealField, ESQLVariable } from '../validation/types'; function extractFunctionArgs(args: ESQLAstItem[]): ESQLFunction[] { return args.flatMap((arg) => (isAssignment(arg) ? arg.args[1] : arg)).filter(isFunctionItem); @@ -212,7 +215,8 @@ export function getOverlapRange( }; } -function isValidDateString(dateString: string): boolean { +function isValidDateString(dateString: unknown): boolean { + if (typeof dateString !== 'string') return false; const timestamp = Date.parse(dateString.replace(/\"/g, '')); return !isNaN(timestamp); } @@ -229,6 +233,63 @@ export function isLiteralDateItem(nodeArg: ESQLAstItem): boolean { // If text is ?start or ?end, it's a system time parameter (TIME_SYSTEM_PARAMS.includes(nodeArg.text) || // Or if it's a string generated by date picker - isValidDateString(nodeArg.text)) + isValidDateString(nodeArg.value)) ); } + +export function getValidSignaturesAndTypesToSuggestNext( + node: ESQLFunction, + references: { fields: Map; variables: Map }, + fnDefinition: FunctionDefinition, + fullText: string, + offset: number +) { + const enrichedArgs = node.args.map((nodeArg) => { + let dataType = extractTypeFromASTArg(nodeArg, references); + + // For named system time parameters ?start and ?end, make sure it's compatiable + if (isLiteralDateItem(nodeArg)) { + dataType = 'date'; + } + + return { ...nodeArg, dataType } as ESQLAstItem & { dataType: string }; + }); + + // pick the type of the next arg + const shouldGetNextArgument = node.text.includes(EDITOR_MARKER); + let argIndex = Math.max(node.args.length, 0); + if (!shouldGetNextArgument && argIndex) { + argIndex -= 1; + } + + const validSignatures = getValidFunctionSignaturesForPreviousArgs( + fnDefinition, + enrichedArgs, + argIndex + ); + // Retrieve unique of types that are compatiable for the current arg + const typesToSuggestNext = getCompatibleTypesToSuggestNext(fnDefinition, enrichedArgs, argIndex); + const hasMoreMandatoryArgs = !validSignatures + // Types available to suggest next after this argument is completed + .map((signature) => strictlyGetParamAtPosition(signature, argIndex + 1)) + // when a param is null, it means param is optional + // If there's at least one param that is optional, then + // no need to suggest comma + .some((p) => p === null || p?.optional === true); + + // Whether to prepend comma to suggestion string + // E.g. if true, "fieldName" -> "fieldName, " + const alreadyHasComma = fullText ? fullText[offset] === ',' : false; + const shouldAddComma = + hasMoreMandatoryArgs && fnDefinition.type !== 'builtin' && !alreadyHasComma; + const currentArg = enrichedArgs[argIndex]; + return { + shouldAddComma, + typesToSuggestNext, + validSignatures, + hasMoreMandatoryArgs, + enrichedArgs, + argIndex, + currentArg, + }; +} diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/aggs.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/aggs.ts deleted file mode 100644 index 912dbd401fe71..0000000000000 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/aggs.ts +++ /dev/null @@ -1,393 +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", the "GNU Affero General Public License v3.0 only", and the "Server Side - * Public License v 1"; you may not use this file except in compliance with, at - * your election, the "Elastic License 2.0", the "GNU Affero General Public - * License v3.0 only", or the "Server Side Public License, v 1". - */ - -import { i18n } from '@kbn/i18n'; -import { ESQL_COMMON_NUMERIC_TYPES, ESQL_NUMBER_TYPES } from '../shared/esql_types'; -import type { FunctionDefinition, FunctionParameterType, FunctionReturnType } from './types'; - -function createNumericAggDefinition({ - name, - description, - returnType, - args = [], -}: { - name: string; - description: string; - returnType?: (numericType: FunctionParameterType) => FunctionReturnType; - args?: Array<{ - name: string; - type: FunctionParameterType; - value: string; - constantOnly?: boolean; - }>; -}): FunctionDefinition { - const extraParamsExample = args.length ? `, ${args.map(({ value }) => value).join(',')}` : ''; - return { - name, - type: 'agg', - description, - supportedCommands: ['stats', 'inlinestats', 'metrics'], - signatures: [ - ...ESQL_NUMBER_TYPES.map((numericType) => ({ - params: [ - { name: 'column', type: numericType, noNestingFunctions: true }, - ...args.map(({ name: paramName, type, constantOnly }) => ({ - name: paramName, - type, - noNestingFunctions: true, - constantOnly, - })), - ], - returnType: returnType ? returnType(numericType) : numericType, - })), - ], - examples: [ - `from index | stats result = ${name}(field${extraParamsExample})`, - `from index | stats ${name}(field${extraParamsExample})`, - ], - }; -} - -export const statsAggregationFunctionDefinitions: FunctionDefinition[] = [ - { - name: 'avg', - description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.avgDoc', { - defaultMessage: 'Returns the average of the values in a field', - }), - returnType: () => 'double' as FunctionReturnType, - }, - { - name: 'sum', - description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.sumDoc', { - defaultMessage: 'Returns the sum of the values in a field.', - }), - returnType: (numericType: FunctionParameterType): FunctionReturnType => { - switch (numericType) { - case 'double': - return 'double'; - default: - return 'long'; - } - }, - }, - { - name: 'median', - description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.medianDoc', { - defaultMessage: 'Returns the 50% percentile.', - }), - returnType: () => 'double' as FunctionReturnType, - }, - { - name: 'median_absolute_deviation', - description: i18n.translate( - 'kbn-esql-validation-autocomplete.esql.definitions.medianDeviationDoc', - { - defaultMessage: - 'Returns the median of each data point’s deviation from the median of the entire sample.', - } - ), - returnType: () => 'double' as FunctionReturnType, - }, -] - .map(createNumericAggDefinition) - .concat([ - { - name: 'percentile', - description: i18n.translate( - 'kbn-esql-validation-autocomplete.esql.definitions.percentiletDoc', - { - defaultMessage: 'Returns the n percentile of a field.', - } - ), - type: 'agg', - supportedCommands: ['stats', 'inlinestats', 'metrics'], - signatures: [ - ...ESQL_COMMON_NUMERIC_TYPES.map((numericType: FunctionParameterType) => { - return ESQL_COMMON_NUMERIC_TYPES.map((weightType: FunctionParameterType) => ({ - params: [ - { - name: 'column', - type: numericType, - noNestingFunctions: true, - }, - { - name: 'percentile', - type: weightType, - noNestingFunctions: true, - constantOnly: true, - }, - ], - returnType: 'double' as FunctionReturnType, - })); - }).flat(), - ], - }, - { - name: 'max', - description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.maxDoc', { - defaultMessage: 'Returns the maximum value in a field.', - }), - type: 'agg', - supportedCommands: ['stats', 'inlinestats', 'metrics'], - signatures: [ - ...ESQL_COMMON_NUMERIC_TYPES.map((type) => ({ - params: [{ name: 'column', type, noNestingFunctions: true }], - returnType: type, - })), - { - params: [{ name: 'column', type: 'date', noNestingFunctions: true }], - returnType: 'date', - }, - { - params: [{ name: 'column', type: 'date_period', noNestingFunctions: true }], - returnType: 'date_period', - }, - { - params: [{ name: 'column', type: 'boolean', noNestingFunctions: true }], - returnType: 'boolean', - }, - { - params: [{ name: 'column', type: 'ip', noNestingFunctions: true }], - returnType: 'ip', - }, - { - params: [{ name: 'column', type: 'version', noNestingFunctions: true }], - returnType: 'version', - }, - { - params: [{ name: 'column', type: 'keyword', noNestingFunctions: true }], - returnType: 'keyword', - }, - { - params: [{ name: 'column', type: 'text', noNestingFunctions: true }], - returnType: 'text', - }, - ], - examples: [`from index | stats result = max(field)`, `from index | stats max(field)`], - }, - { - name: 'min', - description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.minDoc', { - defaultMessage: 'Returns the minimum value in a field.', - }), - type: 'agg', - supportedCommands: ['stats', 'inlinestats', 'metrics'], - signatures: [ - ...ESQL_COMMON_NUMERIC_TYPES.map((type) => ({ - params: [{ name: 'column', type, noNestingFunctions: true }], - returnType: type, - })), - { - params: [{ name: 'column', type: 'date', noNestingFunctions: true }], - returnType: 'date', - }, - { - params: [{ name: 'column', type: 'date_period', noNestingFunctions: true }], - returnType: 'date_period', - }, - { - params: [{ name: 'column', type: 'boolean', noNestingFunctions: true }], - returnType: 'boolean', - }, - { - params: [{ name: 'column', type: 'ip', noNestingFunctions: true }], - returnType: 'ip', - }, - { - params: [{ name: 'column', type: 'version', noNestingFunctions: true }], - returnType: 'version', - }, - { - params: [{ name: 'column', type: 'keyword', noNestingFunctions: true }], - returnType: 'keyword', - }, - { - params: [{ name: 'column', type: 'text', noNestingFunctions: true }], - returnType: 'text', - }, - ], - examples: [`from index | stats result = min(field)`, `from index | stats min(field)`], - }, - ]) - .concat([ - { - name: 'count', - type: 'agg', - description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.countDoc', { - defaultMessage: 'Returns the count of the values in a field.', - }), - supportedCommands: ['stats', 'inlinestats', 'metrics'], - signatures: [ - { - params: [ - { - name: 'column', - type: 'any', - noNestingFunctions: true, - supportsWildcard: true, - optional: true, - }, - ], - returnType: 'long', - }, - ], - examples: [`from index | stats result = count(field)`, `from index | stats count(field)`], - }, - { - name: 'count_distinct', - type: 'agg', - description: i18n.translate( - 'kbn-esql-validation-autocomplete.esql.definitions.countDistinctDoc', - { - defaultMessage: 'Returns the count of distinct values in a field.', - } - ), - supportedCommands: ['stats', 'inlinestats', 'metrics'], - signatures: [ - { - params: [ - { name: 'column', type: 'any', noNestingFunctions: true }, - ...ESQL_NUMBER_TYPES.map((type) => ({ - name: 'precision', - type, - noNestingFunctions: true, - optional: true, - })), - ], - returnType: 'long', - }, - ], - examples: [ - `from index | stats result = count_distinct(field)`, - `from index | stats count_distinct(field)`, - ], - }, - { - name: 'st_centroid_agg', - type: 'agg', - description: i18n.translate( - 'kbn-esql-validation-autocomplete.esql.definitions.stCentroidDoc', - { - defaultMessage: 'Returns the count of distinct values in a field.', - } - ), - supportedCommands: ['stats', 'inlinestats', 'metrics'], - signatures: [ - { - params: [{ name: 'column', type: 'cartesian_point', noNestingFunctions: true }], - returnType: 'cartesian_point', - }, - { - params: [{ name: 'column', type: 'geo_point', noNestingFunctions: true }], - returnType: 'geo_point', - }, - ], - examples: [ - `from index | stats result = st_centroid_agg(cartesian_field)`, - `from index | stats st_centroid_agg(cartesian_field)`, - `from index | stats result = st_centroid_agg(geo_field)`, - `from index | stats st_centroid_agg(geo_field)`, - ], - }, - { - name: 'values', - type: 'agg', - description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.values', { - defaultMessage: 'Returns all values in a group as an array.', - }), - supportedCommands: ['stats', 'metrics'], - signatures: [ - { - params: [{ name: 'expression', type: 'any', noNestingFunctions: true }], - returnType: 'any', - }, - ], - examples: [ - 'from index | stats all_agents=values(agents.keyword)', - 'from index | stats all_sorted_agents=mv_sort(values(agents.keyword))', - ], - }, - { - name: 'top', - type: 'agg', - description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.topListDoc', { - defaultMessage: 'Collects top N values per bucket.', - }), - supportedCommands: ['stats', 'metrics'], - signatures: [ - { - params: [ - { - name: 'field', - type: 'any', - noNestingFunctions: true, - optional: false, - }, - { - name: 'limit', - type: 'integer', - noNestingFunctions: true, - optional: false, - constantOnly: true, - }, - { - name: 'order', - type: 'keyword', - noNestingFunctions: true, - optional: false, - constantOnly: true, - acceptedValues: ['asc', 'desc'], - }, - ], - returnType: 'any', - }, - ], - examples: [ - `from employees | stats top_salaries = top(salary, 10, "desc")`, - `from employees | stats date = top(hire_date, 2, "asc"), double = top(salary_change, 2, "asc"),`, - ], - }, - { - name: 'weighted_avg', - type: 'agg', - description: i18n.translate( - 'kbn-esql-validation-autocomplete.esql.definitions.weightedAvgDoc', - { - defaultMessage: - 'An aggregation that computes the weighted average of numeric values that are extracted from the aggregated documents.', - } - ), - supportedCommands: ['stats', 'inlinestats', 'metrics'], - signatures: [ - ...ESQL_COMMON_NUMERIC_TYPES.map((numericType: FunctionParameterType) => { - return ESQL_COMMON_NUMERIC_TYPES.map((weightType: FunctionParameterType) => ({ - params: [ - { - name: 'number', - type: numericType, - noNestingFunctions: true, - optional: false, - }, - { - name: 'weight', - type: weightType, - noNestingFunctions: true, - optional: false, - }, - ], - returnType: 'double' as FunctionReturnType, - })); - }).flat(), - ], - examples: [ - `from employees | stats w_avg = weighted_avg(salary, height) by languages | eval w_avg = round(w_avg)`, - `from employees | stats w_avg_1 = weighted_avg(salary, 1), avg = avg(salary), w_avg_2 = weighted_avg(salary, height)`, - ], - }, - ]); diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/generated/aggregation_functions.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/generated/aggregation_functions.ts new file mode 100644 index 0000000000000..210eec36811de --- /dev/null +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/generated/aggregation_functions.ts @@ -0,0 +1,1740 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +/** + * __AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.__ + * + * @note This file is generated by the `generate_function_definitions.ts` + * script. Do not edit it manually. + * + * + * + * + * + * + * + * + * + * + * + * + */ + +import { i18n } from '@kbn/i18n'; +import type { FunctionDefinition } from '../types'; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const avgDefinition: FunctionDefinition = { + type: 'agg', + name: 'avg', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.avg', { + defaultMessage: 'The average of a numeric field.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + ], + returnType: 'double', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS AVG(height)', + 'FROM employees\n| STATS avg_salary_change = ROUND(AVG(MV_AVG(salary_change)), 10)', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const countDefinition: FunctionDefinition = { + type: 'agg', + name: 'count', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.count', { + defaultMessage: 'Returns the total number (count) of input values.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'boolean', + optional: true, + supportsWildcard: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'cartesian_point', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'geo_point', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'version', + optional: true, + }, + ], + returnType: 'long', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS COUNT(height)', + 'FROM employees \n| STATS count = COUNT(*) BY languages \n| SORT languages DESC', + 'ROW words="foo;bar;baz;qux;quux;foo"\n| STATS word_count = COUNT(SPLIT(words, ";"))', + 'ROW n=1\n| WHERE n < 0\n| STATS COUNT(n)', + 'ROW n=1\n| STATS COUNT(n > 0 OR NULL), COUNT(n < 0 OR NULL)', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const countDistinctDefinition: FunctionDefinition = { + type: 'agg', + name: 'count_distinct', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.count_distinct', { + defaultMessage: 'Returns the approximate number of distinct values.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'boolean', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'boolean', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'boolean', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'boolean', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'version', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'version', + optional: false, + }, + { + name: 'precision', + type: 'integer', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'version', + optional: false, + }, + { + name: 'precision', + type: 'long', + optional: true, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'version', + optional: false, + }, + { + name: 'precision', + type: 'unsigned_long', + optional: true, + }, + ], + returnType: 'long', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM hosts\n| STATS COUNT_DISTINCT(ip0), COUNT_DISTINCT(ip1)', + 'FROM hosts\n| STATS COUNT_DISTINCT(ip0, 80000), COUNT_DISTINCT(ip1, 5)', + 'ROW words="foo;bar;baz;qux;quux;foo"\n| STATS distinct_word_count = COUNT_DISTINCT(SPLIT(words, ";"))', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const maxDefinition: FunctionDefinition = { + type: 'agg', + name: 'max', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.max', { + defaultMessage: 'The maximum value of a field.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'boolean', + optional: false, + }, + ], + returnType: 'boolean', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: false, + }, + ], + returnType: 'date', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: false, + }, + ], + returnType: 'integer', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: false, + }, + ], + returnType: 'ip', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + ], + returnType: 'keyword', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + ], + returnType: 'text', + }, + { + params: [ + { + name: 'field', + type: 'version', + optional: false, + }, + ], + returnType: 'version', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS MAX(languages)', + 'FROM employees\n| STATS max_avg_salary_change = MAX(MV_AVG(salary_change))', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const medianDefinition: FunctionDefinition = { + type: 'agg', + name: 'median', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.median', { + defaultMessage: + 'The value that is greater than half of all values and less than half of all values, also known as the 50% `PERCENTILE`.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + ], + returnType: 'double', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS MEDIAN(salary), PERCENTILE(salary, 50)', + 'FROM employees\n| STATS median_max_salary_change = MEDIAN(MV_MAX(salary_change))', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const medianAbsoluteDeviationDefinition: FunctionDefinition = { + type: 'agg', + name: 'median_absolute_deviation', + description: i18n.translate( + 'kbn-esql-validation-autocomplete.esql.definitions.median_absolute_deviation', + { + defaultMessage: + "Returns the median absolute deviation, a measure of variability. It is a robust statistic, meaning that it is useful for describing data that may have outliers, or may not be normally distributed. For such data it can be more descriptive than standard deviation.\n\nIt is calculated as the median of each data point's deviation from the median of the entire sample. That is, for a random variable `X`, the median absolute deviation is `median(|median(X) - X|)`.", + } + ), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + ], + returnType: 'double', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS MEDIAN(salary), MEDIAN_ABSOLUTE_DEVIATION(salary)', + 'FROM employees\n| STATS m_a_d_max_salary_change = MEDIAN_ABSOLUTE_DEVIATION(MV_MAX(salary_change))', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const minDefinition: FunctionDefinition = { + type: 'agg', + name: 'min', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.min', { + defaultMessage: 'The minimum value of a field.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'boolean', + optional: false, + }, + ], + returnType: 'boolean', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: false, + }, + ], + returnType: 'date', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: false, + }, + ], + returnType: 'integer', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: false, + }, + ], + returnType: 'ip', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + ], + returnType: 'keyword', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + ], + returnType: 'text', + }, + { + params: [ + { + name: 'field', + type: 'version', + optional: false, + }, + ], + returnType: 'version', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS MIN(languages)', + 'FROM employees\n| STATS min_avg_salary_change = MIN(MV_AVG(salary_change))', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const percentileDefinition: FunctionDefinition = { + type: 'agg', + name: 'percentile', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.percentile', { + defaultMessage: + 'Returns the value at which a certain percentage of observed values occur. For example, the 95th percentile is the value which is greater than 95% of the observed values and the 50th percentile is the `MEDIAN`.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'percentile', + type: 'double', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'percentile', + type: 'integer', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'percentile', + type: 'long', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'percentile', + type: 'double', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'percentile', + type: 'integer', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'percentile', + type: 'long', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'percentile', + type: 'double', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'percentile', + type: 'integer', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'percentile', + type: 'long', + optional: false, + constantOnly: true, + }, + ], + returnType: 'double', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS p0 = PERCENTILE(salary, 0)\n , p50 = PERCENTILE(salary, 50)\n , p99 = PERCENTILE(salary, 99)', + 'FROM employees\n| STATS p80_max_salary_change = PERCENTILE(MV_MAX(salary_change), 80)', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const stCentroidAggDefinition: FunctionDefinition = { + type: 'agg', + name: 'st_centroid_agg', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.st_centroid_agg', { + defaultMessage: 'Calculate the spatial centroid over a field with spatial point geometry type.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'cartesian_point', + optional: false, + }, + ], + returnType: 'cartesian_point', + }, + { + params: [ + { + name: 'field', + type: 'geo_point', + optional: false, + }, + ], + returnType: 'geo_point', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: ['FROM airports\n| STATS centroid=ST_CENTROID_AGG(location)'], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const sumDefinition: FunctionDefinition = { + type: 'agg', + name: 'sum', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.sum', { + defaultMessage: 'The sum of a numeric expression.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + ], + returnType: 'long', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS SUM(languages)', + 'FROM employees\n| STATS total_salary_changes = SUM(MV_MAX(salary_change))', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const topDefinition: FunctionDefinition = { + type: 'agg', + name: 'top', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.top', { + defaultMessage: 'Collects the top values for a field. Includes repeated values.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'boolean', + optional: false, + }, + { + name: 'limit', + type: 'integer', + optional: false, + constantOnly: true, + }, + { + name: 'order', + type: 'keyword', + optional: false, + constantOnly: true, + acceptedValues: ['asc', 'desc'], + }, + ], + returnType: 'boolean', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: false, + }, + { + name: 'limit', + type: 'integer', + optional: false, + constantOnly: true, + }, + { + name: 'order', + type: 'keyword', + optional: false, + constantOnly: true, + acceptedValues: ['asc', 'desc'], + }, + ], + returnType: 'date', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: false, + }, + { + name: 'limit', + type: 'integer', + optional: false, + constantOnly: true, + }, + { + name: 'order', + type: 'keyword', + optional: false, + constantOnly: true, + acceptedValues: ['asc', 'desc'], + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: false, + }, + { + name: 'limit', + type: 'integer', + optional: false, + constantOnly: true, + }, + { + name: 'order', + type: 'keyword', + optional: false, + constantOnly: true, + acceptedValues: ['asc', 'desc'], + }, + ], + returnType: 'integer', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: false, + }, + { + name: 'limit', + type: 'integer', + optional: false, + constantOnly: true, + }, + { + name: 'order', + type: 'keyword', + optional: false, + constantOnly: true, + acceptedValues: ['asc', 'desc'], + }, + ], + returnType: 'ip', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: false, + }, + { + name: 'limit', + type: 'integer', + optional: false, + constantOnly: true, + }, + { + name: 'order', + type: 'keyword', + optional: false, + constantOnly: true, + acceptedValues: ['asc', 'desc'], + }, + ], + returnType: 'long', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS top_salaries = TOP(salary, 3, "desc"), top_salary = MAX(salary)', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const valuesDefinition: FunctionDefinition = { + type: 'agg', + name: 'values', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.values', { + defaultMessage: + "Returns all values in a group as a multivalued field. The order of the returned values isn't guaranteed. If you need the values returned in order use esql-mv_sort.", + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'boolean', + optional: false, + }, + ], + returnType: 'boolean', + }, + { + params: [ + { + name: 'field', + type: 'date', + optional: false, + }, + ], + returnType: 'date', + }, + { + params: [ + { + name: 'field', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'field', + type: 'integer', + optional: false, + }, + ], + returnType: 'integer', + }, + { + params: [ + { + name: 'field', + type: 'ip', + optional: false, + }, + ], + returnType: 'ip', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + ], + returnType: 'keyword', + }, + { + params: [ + { + name: 'field', + type: 'long', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + ], + returnType: 'text', + }, + { + params: [ + { + name: 'field', + type: 'version', + optional: false, + }, + ], + returnType: 'version', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + ' FROM employees\n| EVAL first_letter = SUBSTRING(first_name, 0, 1)\n| STATS first_name=MV_SORT(VALUES(first_name)) BY first_letter\n| SORT first_letter', + ], +}; + +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const weightedAvgDefinition: FunctionDefinition = { + type: 'agg', + name: 'weighted_avg', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.weighted_avg', { + defaultMessage: 'The weighted average of a numeric expression.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'weight', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'weight', + type: 'integer', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + { + name: 'weight', + type: 'long', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'weight', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'weight', + type: 'integer', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + { + name: 'weight', + type: 'long', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'weight', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'weight', + type: 'integer', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + { + name: 'weight', + type: 'long', + optional: false, + }, + ], + returnType: 'double', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics'], + supportedOptions: undefined, + validate: undefined, + examples: [ + 'FROM employees\n| STATS w_avg = WEIGHTED_AVG(salary, height) by languages\n| EVAL w_avg = ROUND(w_avg)\n| KEEP w_avg, languages\n| SORT languages', + ], +}; +export const aggregationFunctionDefinitions = [ + avgDefinition, + countDefinition, + countDistinctDefinition, + maxDefinition, + medianDefinition, + medianAbsoluteDeviationDefinition, + minDefinition, + percentileDefinition, + stCentroidAggDefinition, + sumDefinition, + topDefinition, + valuesDefinition, + weightedAvgDefinition, +]; diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/functions.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/generated/scalar_functions.ts similarity index 97% rename from packages/kbn-esql-validation-autocomplete/src/definitions/functions.ts rename to packages/kbn-esql-validation-autocomplete/src/definitions/generated/scalar_functions.ts index 9cf2245fc2fad..3f5718b5417ba 100644 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/functions.ts +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/generated/scalar_functions.ts @@ -26,10 +26,10 @@ * */ -import type { ESQLFunction } from '@kbn/esql-ast'; import { i18n } from '@kbn/i18n'; -import { isLiteralItem } from '../shared/helpers'; -import type { FunctionDefinition } from './types'; +import type { ESQLFunction } from '@kbn/esql-ast'; +import type { FunctionDefinition } from '../types'; +import { isLiteralItem } from '../../shared/helpers'; // Do not edit this manually... generated by scripts/generate_function_definitions.ts const absDefinition: FunctionDefinition = { @@ -1088,14 +1088,14 @@ const coshDefinition: FunctionDefinition = { type: 'eval', name: 'cosh', description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.cosh', { - defaultMessage: 'Returns the hyperbolic cosine of an angle.', + defaultMessage: 'Returns the hyperbolic cosine of a number.', }), alias: undefined, signatures: [ { params: [ { - name: 'angle', + name: 'number', type: 'double', optional: false, }, @@ -1105,7 +1105,7 @@ const coshDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'integer', optional: false, }, @@ -1115,7 +1115,7 @@ const coshDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'long', optional: false, }, @@ -1125,7 +1125,7 @@ const coshDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'unsigned_long', optional: false, }, @@ -4026,6 +4026,68 @@ const mvMedianDefinition: FunctionDefinition = { ], }; +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const mvMedianAbsoluteDeviationDefinition: FunctionDefinition = { + type: 'eval', + name: 'mv_median_absolute_deviation', + description: i18n.translate( + 'kbn-esql-validation-autocomplete.esql.definitions.mv_median_absolute_deviation', + { + defaultMessage: + "Converts a multivalued field into a single valued field containing the median absolute deviation.\n\nIt is calculated as the median of each data point's deviation from the median of the entire sample. That is, for a random variable `X`, the median absolute deviation is `median(|median(X) - X|)`.", + } + ), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'double', + optional: false, + }, + ], + returnType: 'double', + }, + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + ], + returnType: 'integer', + }, + { + params: [ + { + name: 'number', + type: 'long', + optional: false, + }, + ], + returnType: 'long', + }, + { + params: [ + { + name: 'number', + type: 'unsigned_long', + optional: false, + }, + ], + returnType: 'unsigned_long', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics', 'eval', 'where', 'row', 'sort'], + supportedOptions: ['by'], + validate: undefined, + examples: [ + 'ROW values = [0, 2, 5, 6]\n| EVAL median_absolute_deviation = MV_MEDIAN_ABSOLUTE_DEVIATION(values), median = MV_MEDIAN(values)', + ], +}; + // Do not edit this manually... generated by scripts/generate_function_definitions.ts const mvMinDefinition: FunctionDefinition = { type: 'eval', @@ -5849,7 +5911,7 @@ const sinDefinition: FunctionDefinition = { type: 'eval', name: 'sin', description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.sin', { - defaultMessage: 'Returns ths Sine trigonometric function of an angle.', + defaultMessage: 'Returns the sine of an angle.', }), alias: undefined, signatures: [ @@ -5905,14 +5967,14 @@ const sinhDefinition: FunctionDefinition = { type: 'eval', name: 'sinh', description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.sinh', { - defaultMessage: 'Returns the hyperbolic sine of an angle.', + defaultMessage: 'Returns the hyperbolic sine of a number.', }), alias: undefined, signatures: [ { params: [ { - name: 'angle', + name: 'number', type: 'double', optional: false, }, @@ -5922,7 +5984,7 @@ const sinhDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'integer', optional: false, }, @@ -5932,7 +5994,7 @@ const sinhDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'long', optional: false, }, @@ -5942,7 +6004,7 @@ const sinhDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'unsigned_long', optional: false, }, @@ -5956,6 +6018,32 @@ const sinhDefinition: FunctionDefinition = { examples: ['ROW a=1.8 \n| EVAL sinh=SINH(a)'], }; +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const spaceDefinition: FunctionDefinition = { + type: 'eval', + name: 'space', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.space', { + defaultMessage: 'Returns a string made of `number` spaces.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'number', + type: 'integer', + optional: false, + }, + ], + returnType: 'keyword', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics', 'eval', 'where', 'row', 'sort'], + supportedOptions: ['by'], + validate: undefined, + examples: ['ROW message = CONCAT("Hello", SPACE(1), "World!");'], +}; + // Do not edit this manually... generated by scripts/generate_function_definitions.ts const splitDefinition: FunctionDefinition = { type: 'eval', @@ -6915,7 +7003,7 @@ const tanDefinition: FunctionDefinition = { type: 'eval', name: 'tan', description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.tan', { - defaultMessage: 'Returns the Tangent trigonometric function of an angle.', + defaultMessage: 'Returns the tangent of an angle.', }), alias: undefined, signatures: [ @@ -6971,14 +7059,14 @@ const tanhDefinition: FunctionDefinition = { type: 'eval', name: 'tanh', description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.tanh', { - defaultMessage: 'Returns the Tangent hyperbolic function of an angle.', + defaultMessage: 'Returns the hyperbolic tangent of a number.', }), alias: undefined, signatures: [ { params: [ { - name: 'angle', + name: 'number', type: 'double', optional: false, }, @@ -6988,7 +7076,7 @@ const tanhDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'integer', optional: false, }, @@ -6998,7 +7086,7 @@ const tanhDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'long', optional: false, }, @@ -7008,7 +7096,7 @@ const tanhDefinition: FunctionDefinition = { { params: [ { - name: 'angle', + name: 'number', type: 'unsigned_long', optional: false, }, @@ -7279,6 +7367,54 @@ const toCartesianshapeDefinition: FunctionDefinition = { ], }; +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const toDateperiodDefinition: FunctionDefinition = { + type: 'eval', + name: 'to_dateperiod', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.to_dateperiod', { + defaultMessage: 'Converts an input value into a `date_period` value.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'date_period', + optional: false, + }, + ], + returnType: 'date_period', + }, + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + ], + returnType: 'date_period', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + ], + returnType: 'date_period', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics', 'eval', 'where', 'row', 'sort'], + supportedOptions: ['by'], + validate: undefined, + examples: [ + 'row x = "2024-01-01"::datetime | eval y = x + "3 DAYS"::date_period, z = x - to_dateperiod("3 days");', + ], +}; + // Do not edit this manually... generated by scripts/generate_function_definitions.ts const toDatetimeDefinition: FunctionDefinition = { type: 'eval', @@ -8182,6 +8318,54 @@ const toStringDefinition: FunctionDefinition = { examples: ['ROW a=10\n| EVAL j = TO_STRING(a)', 'ROW a=[10, 9, 8]\n| EVAL j = TO_STRING(a)'], }; +// Do not edit this manually... generated by scripts/generate_function_definitions.ts +const toTimedurationDefinition: FunctionDefinition = { + type: 'eval', + name: 'to_timeduration', + description: i18n.translate('kbn-esql-validation-autocomplete.esql.definitions.to_timeduration', { + defaultMessage: 'Converts an input value into a `time_duration` value.', + }), + alias: undefined, + signatures: [ + { + params: [ + { + name: 'field', + type: 'keyword', + optional: false, + }, + ], + returnType: 'time_duration', + }, + { + params: [ + { + name: 'field', + type: 'text', + optional: false, + }, + ], + returnType: 'time_duration', + }, + { + params: [ + { + name: 'field', + type: 'time_duration', + optional: false, + }, + ], + returnType: 'time_duration', + }, + ], + supportedCommands: ['stats', 'inlinestats', 'metrics', 'eval', 'where', 'row', 'sort'], + supportedOptions: ['by'], + validate: undefined, + examples: [ + 'row x = "2024-01-01"::datetime | eval y = x + "3 hours"::time_duration, z = x - to_timeduration("3 hours");', + ], +}; + // Do not edit this manually... generated by scripts/generate_function_definitions.ts const toUnsignedLongDefinition: FunctionDefinition = { type: 'eval', @@ -8436,7 +8620,7 @@ const caseDefinition: FunctionDefinition = { 'from index | eval type = case(languages <= 1, "monolingual", languages <= 2, "bilingual", "polyglot")', ], }; -export const evalFunctionDefinitions = [ +export const scalarFunctionDefinitions = [ absDefinition, acosDefinition, asinDefinition, @@ -8477,6 +8661,7 @@ export const evalFunctionDefinitions = [ mvLastDefinition, mvMaxDefinition, mvMedianDefinition, + mvMedianAbsoluteDeviationDefinition, mvMinDefinition, mvPercentileDefinition, mvPseriesWeightedSumDefinition, @@ -8495,6 +8680,7 @@ export const evalFunctionDefinitions = [ signumDefinition, sinDefinition, sinhDefinition, + spaceDefinition, splitDefinition, sqrtDefinition, stContainsDefinition, @@ -8513,6 +8699,7 @@ export const evalFunctionDefinitions = [ toBooleanDefinition, toCartesianpointDefinition, toCartesianshapeDefinition, + toDateperiodDefinition, toDatetimeDefinition, toDegreesDefinition, toDoubleDefinition, @@ -8524,6 +8711,7 @@ export const evalFunctionDefinitions = [ toLowerDefinition, toRadiansDefinition, toStringDefinition, + toTimedurationDefinition, toUnsignedLongDefinition, toUpperDefinition, toVersionDefinition, diff --git a/packages/kbn-esql-validation-autocomplete/src/definitions/types.ts b/packages/kbn-esql-validation-autocomplete/src/definitions/types.ts index 0ac850ef4862f..a6e297771cebe 100644 --- a/packages/kbn-esql-validation-autocomplete/src/definitions/types.ts +++ b/packages/kbn-esql-validation-autocomplete/src/definitions/types.ts @@ -120,7 +120,6 @@ export interface FunctionDefinition { name: string; type: FunctionParameterType; optional?: boolean; - noNestingFunctions?: boolean; supportsWildcard?: boolean; /** * If set, this parameter does not accept a field. It only accepts a constant, diff --git a/packages/kbn-esql-validation-autocomplete/src/shared/esql_types.ts b/packages/kbn-esql-validation-autocomplete/src/shared/esql_types.ts index de70d25303894..6fb9725211478 100644 --- a/packages/kbn-esql-validation-autocomplete/src/shared/esql_types.ts +++ b/packages/kbn-esql-validation-autocomplete/src/shared/esql_types.ts @@ -79,8 +79,10 @@ export const compareTypesWithLiterals = ( // date_period is day/week/month/year interval // time_literal includes time_duration and date_period // So they are equivalent AST's 'timeInterval' (a date unit constant: e.g. 1 year, 15 month) - if (a === 'time_literal' || a === 'time_duration') return b === 'timeInterval'; - if (b === 'time_literal' || b === 'time_duration') return a === 'timeInterval'; + if (a === 'time_literal' || a === 'time_duration' || a === 'date_period') + return b === 'timeInterval'; + if (b === 'time_literal' || b === 'time_duration' || b === 'date_period') + return a === 'timeInterval'; if (a === 'time_literal') return b === 'time_duration'; if (b === 'time_literal') return a === 'time_duration'; diff --git a/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts b/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts index 052ceb6f18fe0..eb51bfa79227b 100644 --- a/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts +++ b/packages/kbn-esql-validation-autocomplete/src/shared/helpers.ts @@ -19,10 +19,10 @@ import type { ESQLTimeInterval, } from '@kbn/esql-ast'; import { ESQLInlineCast, ESQLParamLiteral } from '@kbn/esql-ast/src/types'; -import { statsAggregationFunctionDefinitions } from '../definitions/aggs'; +import { aggregationFunctionDefinitions } from '../definitions/generated/aggregation_functions'; import { builtinFunctions } from '../definitions/builtin'; import { commandDefinitions } from '../definitions/commands'; -import { evalFunctionDefinitions } from '../definitions/functions'; +import { scalarFunctionDefinitions } from '../definitions/generated/scalar_functions'; import { groupingFunctionDefinitions } from '../definitions/grouping'; import { getTestFunctions } from './test_functions'; import { getFunctionSignatures } from '../definitions/helpers'; @@ -48,6 +48,8 @@ import type { ESQLRealField, ESQLVariable, ReferenceMaps } from '../validation/t import { removeMarkerArgFromArgsList } from './context'; import { isNumericDecimalType } from './esql_types'; import type { ReasonTypes } from './types'; +import { EDITOR_MARKER } from './constants'; +import type { EditorContext } from '../autocomplete/types'; export function nonNullable(v: T): v is NonNullable { return v != null; @@ -141,8 +143,8 @@ function buildFunctionLookup() { if (!fnLookups || getTestFunctions().length) { fnLookups = builtinFunctions .concat( - evalFunctionDefinitions, - statsAggregationFunctionDefinitions, + scalarFunctionDefinitions, + aggregationFunctionDefinitions, groupingFunctionDefinitions, getTestFunctions() ) @@ -662,3 +664,73 @@ export const isParam = (x: unknown): x is ESQLParamLiteral => * Compares two strings in a case-insensitive manner */ export const noCaseCompare = (a: string, b: string) => a.toLowerCase() === b.toLowerCase(); + +/** + * This function count the number of unclosed brackets in order to + * locally fix the queryString to generate a valid AST + * A known limitation of this is that is not aware of commas "," or pipes "|" + * so it is not yet helpful on a multiple commands errors (a workaround it to pass each command here...) + * @param bracketType + * @param text + * @returns + */ +export function countBracketsUnclosed(bracketType: '(' | '[' | '"' | '"""', text: string) { + const stack = []; + const closingBrackets = { '(': ')', '[': ']', '"': '"', '"""': '"""' }; + for (let i = 0; i < text.length; i++) { + const substr = text.substring(i, i + bracketType.length); + if (substr === closingBrackets[bracketType] && stack.length) { + stack.pop(); + } else if (substr === bracketType) { + stack.push(bracketType); + } + } + return stack.length; +} + +/** + * This function attempts to correct the syntax of a partial query to make it valid. + * + * This is important because a syntactically-invalid query will not generate a good AST. + * + * @param _query + * @param context + * @returns + */ +export function correctQuerySyntax(_query: string, context: EditorContext) { + let query = _query; + // check if all brackets are closed, otherwise close them + const unclosedRoundBrackets = countBracketsUnclosed('(', query); + const unclosedSquaredBrackets = countBracketsUnclosed('[', query); + const unclosedQuotes = countBracketsUnclosed('"', query); + const unclosedTripleQuotes = countBracketsUnclosed('"""', query); + // 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 + const charThatNeedMarkers = [',', ':']; + if ( + (context.triggerCharacter && charThatNeedMarkers.includes(context.triggerCharacter)) || + // monaco.editor.CompletionTriggerKind['Invoke'] === 0 + (context.triggerKind === 0 && unclosedRoundBrackets === 0) || + (context.triggerCharacter === ' ' && isMathFunction(query, query.length)) || + isComma(query.trimEnd()[query.trimEnd().length - 1]) + ) { + query += EDITOR_MARKER; + } + + // if there are unclosed brackets, close them + if (unclosedRoundBrackets || unclosedSquaredBrackets || unclosedQuotes) { + for (const [char, count] of [ + ['"""', unclosedTripleQuotes], + ['"', unclosedQuotes], + [')', unclosedRoundBrackets], + [']', unclosedSquaredBrackets], + ]) { + if (count) { + // inject the closing brackets + query += Array(count).fill(char).join(''); + } + } + } + + return query; +} diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/functions.test.ts b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/functions.test.ts index 61a4d66a3a65f..9cf211315757e 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/functions.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/__tests__/functions.test.ts @@ -141,6 +141,60 @@ describe('function validation', () => { }); }); + describe('special parameter types', () => { + it('any type', async () => { + const testFn: FunctionDefinition = { + name: 'test', + type: 'eval', + description: '', + supportedCommands: ['eval'], + signatures: [ + { + params: [{ name: 'arg1', type: 'any' }], + returnType: 'integer', + }, + ], + }; + + setTestFunctions([testFn]); + + const { expectErrors } = await setup(); + + await expectErrors('FROM a_index | EVAL TEST(1)', []); + await expectErrors('FROM a_index | EVAL TEST("keyword")', []); + await expectErrors('FROM a_index | EVAL TEST(2.)', []); + await expectErrors('FROM a_index | EVAL TEST(to_cartesianpoint(""))', []); + await expectErrors('FROM a_index | EVAL TEST(NOW())', []); + }); + + it('list type', async () => { + const testFn: FunctionDefinition = { + name: 'in', + type: 'builtin', + description: '', + supportedCommands: ['row'], + signatures: [ + { + params: [ + { name: 'arg1', type: 'keyword' }, + { name: 'arg2', type: 'keyword[]' }, + ], + returnType: 'boolean', + }, + ], + }; + + setTestFunctions([testFn]); + + const { expectErrors } = await setup(); + + await expectErrors('ROW "a" IN ("a", "b", "c")', []); + await expectErrors('ROW "a" IN (1, "b", "c")', [ + 'Argument of [in] must be [keyword[]], found value [(1, "b", "c")] type [(integer, string, string)]', + ]); + }); + }); + it('checks types by signature', async () => { const testFn: FunctionDefinition = { name: 'test', @@ -605,16 +659,28 @@ describe('function validation', () => { supportedCommands: ['eval'], signatures: [ { - params: [{ name: 'arg1', type: 'integer' }], + params: [{ name: 'arg1', type: 'keyword' }], returnType: 'integer', }, ], }, + { + name: 'test2', + type: 'eval', + description: '', + supportedCommands: ['eval'], + signatures: [ + { + params: [{ name: 'arg1', type: 'integer' }], + returnType: 'keyword', + }, + ], + }, ]); const { expectErrors } = await setup(); - await expectErrors('FROM a_index | EVAL TEST(TEST(TEST(1)))', []); + await expectErrors('FROM a_index | EVAL TEST(TEST2(TEST(TEST2(1))))', []); }); it("doesn't allow nested aggregation functions", async () => { @@ -626,7 +692,7 @@ describe('function validation', () => { supportedCommands: ['stats'], signatures: [ { - params: [{ name: 'arg1', type: 'keyword', noNestingFunctions: true }], + params: [{ name: 'arg1', type: 'keyword' }], returnType: 'keyword', }, ], diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json b/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json index fd04d1f5646d7..1eb861168a13a 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json +++ b/packages/kbn-esql-validation-autocomplete/src/validation/esql_validation_meta_tests.json @@ -9685,27990 +9685,6 @@ ], "warning": [] }, - { - "query": "row var = abs(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row abs(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = abs(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = abs(5)", - "error": [], - "warning": [] - }, - { - "query": "row abs(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = abs(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = abs(true)", - "error": [ - "Argument of [abs] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where abs(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where abs(booleanField) > 0", - "error": [ - "Argument of [abs] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where abs(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where abs(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where abs(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = abs(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval abs(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = abs(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval abs(booleanField)", - "error": [ - "Argument of [abs] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = abs(*)", - "error": [ - "Using wildcards (*) in abs is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = abs(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval abs(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = abs(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = abs(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval abs(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = abs(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval abs(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval abs(doubleField, extraArg)", - "error": [ - "Error: [abs] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort abs(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval abs(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval abs(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = acos(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row acos(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = acos(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = acos(5)", - "error": [], - "warning": [] - }, - { - "query": "row acos(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = acos(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = acos(true)", - "error": [ - "Argument of [acos] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where acos(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where acos(booleanField) > 0", - "error": [ - "Argument of [acos] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where acos(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where acos(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where acos(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = acos(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval acos(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = acos(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval acos(booleanField)", - "error": [ - "Argument of [acos] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = acos(*)", - "error": [ - "Using wildcards (*) in acos is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = acos(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval acos(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = acos(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = acos(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval acos(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = acos(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval acos(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval acos(doubleField, extraArg)", - "error": [ - "Error: [acos] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort acos(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval acos(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval acos(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = asin(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row asin(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = asin(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = asin(5)", - "error": [], - "warning": [] - }, - { - "query": "row asin(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = asin(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = asin(true)", - "error": [ - "Argument of [asin] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where asin(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where asin(booleanField) > 0", - "error": [ - "Argument of [asin] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where asin(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where asin(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where asin(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = asin(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval asin(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = asin(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval asin(booleanField)", - "error": [ - "Argument of [asin] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = asin(*)", - "error": [ - "Using wildcards (*) in asin is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = asin(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval asin(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = asin(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = asin(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval asin(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = asin(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval asin(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval asin(doubleField, extraArg)", - "error": [ - "Error: [asin] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort asin(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval asin(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval asin(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row atan(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = atan(5)", - "error": [], - "warning": [] - }, - { - "query": "row atan(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = atan(true)", - "error": [ - "Argument of [atan] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where atan(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan(booleanField) > 0", - "error": [ - "Argument of [atan] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where atan(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan(booleanField)", - "error": [ - "Argument of [atan] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = atan(*)", - "error": [ - "Using wildcards (*) in atan is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = atan(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan(doubleField, extraArg)", - "error": [ - "Error: [atan] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort atan(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval atan(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row atan2(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(to_double(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row atan2(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(to_double(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(to_double(true), 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row atan2(5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(to_integer(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row atan2(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(to_integer(true), 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(5, to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(5, to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = atan2(true, true)", - "error": [ - "Argument of [atan2] must be [double], found value [true] type [boolean]", - "Argument of [atan2] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where atan2(doubleField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(booleanField, booleanField) > 0", - "error": [ - "Argument of [atan2] must be [double], found value [booleanField] type [boolean]", - "Argument of [atan2] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where atan2(doubleField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(doubleField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(doubleField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(integerField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(integerField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(integerField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(longField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(longField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(longField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(longField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(unsignedLongField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(unsignedLongField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(unsignedLongField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where atan2(unsignedLongField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(to_double(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(booleanField, booleanField)", - "error": [ - "Argument of [atan2] must be [double], found value [booleanField] type [boolean]", - "Argument of [atan2] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(to_double(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(to_double(booleanField), longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(doubleField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(doubleField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(to_double(booleanField), unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(to_integer(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(to_integer(booleanField), longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(integerField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(integerField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(to_integer(booleanField), unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(longField, to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(longField, to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(longField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(longField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(unsignedLongField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(unsignedLongField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(unsignedLongField, to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(unsignedLongField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(unsignedLongField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(unsignedLongField, to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(unsignedLongField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(unsignedLongField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = atan2(unsignedLongField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(unsignedLongField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(doubleField, doubleField, extraArg)", - "error": [ - "Error: [atan2] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort atan2(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval atan2(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval atan2(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = cbrt(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row cbrt(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = cbrt(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = cbrt(5)", - "error": [], - "warning": [] - }, - { - "query": "row cbrt(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = cbrt(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = cbrt(true)", - "error": [ - "Argument of [cbrt] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where cbrt(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cbrt(booleanField) > 0", - "error": [ - "Argument of [cbrt] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where cbrt(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cbrt(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cbrt(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cbrt(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cbrt(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cbrt(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cbrt(booleanField)", - "error": [ - "Argument of [cbrt] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = cbrt(*)", - "error": [ - "Using wildcards (*) in cbrt is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = cbrt(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cbrt(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cbrt(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cbrt(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cbrt(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cbrt(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cbrt(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cbrt(doubleField, extraArg)", - "error": [ - "Error: [cbrt] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort cbrt(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cbrt(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval cbrt(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = ceil(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row ceil(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = ceil(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = ceil(5)", - "error": [], - "warning": [] - }, - { - "query": "row ceil(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = ceil(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = ceil(true)", - "error": [ - "Argument of [ceil] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where ceil(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where ceil(booleanField) > 0", - "error": [ - "Argument of [ceil] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where ceil(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where ceil(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where ceil(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ceil(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ceil(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ceil(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ceil(booleanField)", - "error": [ - "Argument of [ceil] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = ceil(*)", - "error": [ - "Using wildcards (*) in ceil is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = ceil(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ceil(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ceil(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ceil(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ceil(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ceil(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ceil(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ceil(doubleField, extraArg)", - "error": [ - "Error: [ceil] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort ceil(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ceil(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval ceil(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = cidr_match(to_ip(\"127.0.0.1\"), \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row cidr_match(to_ip(\"127.0.0.1\"), \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = cidr_match(to_ip(to_ip(\"127.0.0.1\")), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = cidr_match(true, true)", - "error": [ - "Argument of [cidr_match] must be [ip], found value [true] type [boolean]", - "Argument of [cidr_match] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = cidr_match(ipField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cidr_match(ipField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cidr_match(to_ip(ipField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cidr_match(booleanField, booleanField)", - "error": [ - "Argument of [cidr_match] must be [ip], found value [booleanField] type [boolean]", - "Argument of [cidr_match] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = cidr_match(ipField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cidr_match(ipField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort cidr_match(ipField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cidr_match(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval cidr_match(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(true)", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(true, true)", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(true, true)", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_boolean(true), to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row coalesce(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = coalesce(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = coalesce(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = coalesce(to_datetime(\"2021-01-01T00:00:00Z\"), to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(to_datetime(\"2021-01-01T00:00:00Z\"), to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")), to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row coalesce(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = coalesce(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = coalesce(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = coalesce(5)", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_ip(\"127.0.0.1\"), to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(to_ip(\"127.0.0.1\"), to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_ip(to_ip(\"127.0.0.1\")), to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_version(\"1.0.0\"), to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(to_version(\"1.0.0\"), to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_version(\"a\"), to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where coalesce(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where coalesce(counterDoubleField) > 0", - "error": [ - "Argument of [coalesce] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | where coalesce(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where coalesce(counterDoubleField, counterDoubleField) > 0", - "error": [ - "Argument of [coalesce] must be [boolean], found value [counterDoubleField] type [counter_double]", - "Argument of [coalesce] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | where coalesce(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where coalesce(longField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(counterDoubleField)", - "error": [ - "Argument of [coalesce] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_boolean(booleanField), to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(counterDoubleField, counterDoubleField)", - "error": [ - "Argument of [coalesce] must be [boolean], found value [counterDoubleField] type [counter_double]", - "Argument of [coalesce] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_datetime(dateField), to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(ipField, ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(ipField, ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_ip(ipField), to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(versionField, versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(versionField, versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = coalesce(to_version(keywordField), to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort coalesce(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval coalesce(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(\"2022\", \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval coalesce(concat(\"20\", \"22\"), concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row coalesce(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = coalesce(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = concat(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row concat(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = concat(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = concat(true, true)", - "error": [ - "Argument of [concat] must be [keyword], found value [true] type [boolean]", - "Argument of [concat] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = concat(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval concat(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = concat(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval concat(booleanField, booleanField)", - "error": [ - "Argument of [concat] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [concat] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = concat(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval concat(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = concat(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval concat(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = concat(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval concat(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort concat(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval concat(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval concat(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = cos(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row cos(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = cos(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = cos(5)", - "error": [], - "warning": [] - }, - { - "query": "row cos(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = cos(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = cos(true)", - "error": [ - "Argument of [cos] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where cos(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cos(booleanField) > 0", - "error": [ - "Argument of [cos] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where cos(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cos(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cos(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cos(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cos(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cos(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cos(booleanField)", - "error": [ - "Argument of [cos] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = cos(*)", - "error": [ - "Using wildcards (*) in cos is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = cos(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cos(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cos(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cos(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cos(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cos(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cos(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cos(doubleField, extraArg)", - "error": [ - "Error: [cos] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort cos(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cos(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval cos(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = cosh(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row cosh(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = cosh(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = cosh(5)", - "error": [], - "warning": [] - }, - { - "query": "row cosh(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = cosh(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = cosh(true)", - "error": [ - "Argument of [cosh] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where cosh(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cosh(booleanField) > 0", - "error": [ - "Argument of [cosh] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where cosh(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cosh(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where cosh(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cosh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cosh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cosh(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cosh(booleanField)", - "error": [ - "Argument of [cosh] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = cosh(*)", - "error": [ - "Using wildcards (*) in cosh is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = cosh(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cosh(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cosh(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cosh(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cosh(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = cosh(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cosh(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cosh(doubleField, extraArg)", - "error": [ - "Error: [cosh] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort cosh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval cosh(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval cosh(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_diff(\"year\", dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(\"year\", dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_diff(\"year\", to_datetime(dateField), to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(booleanField, booleanField, booleanField)", - "error": [ - "Argument of [date_diff] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [date_diff] must be [date], found value [booleanField] type [boolean]", - "Argument of [date_diff] must be [date], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_diff(textField, dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(textField, dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_diff(to_string(booleanField), to_datetime(dateField), to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(\"year\", dateField, dateField, extraArg)", - "error": [ - "Error: [date_diff] function expects exactly 3 arguments, got 4." - ], - "warning": [] - }, - { - "query": "from a_index | sort date_diff(\"year\", dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval date_diff(nullVar, nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(\"year\", \"2022\", \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(\"year\", concat(\"20\", \"22\"), concat(\"20\", \"22\"))", - "error": [ - "Argument of [date_diff] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [date_diff] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(textField, \"2022\", \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_diff(textField, concat(\"20\", \"22\"), concat(\"20\", \"22\"))", - "error": [ - "Argument of [date_diff] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [date_diff] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_diff(to_string(booleanField), dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "row var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = date_extract(\"a\", to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row date_extract(\"a\", to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = date_extract(true, true)", - "error": [ - "Argument of [date_extract] must be [keyword], found value [true] type [boolean]", - "Argument of [date_extract] must be [date], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(booleanField, booleanField)", - "error": [ - "Argument of [date_extract] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [date_extract] must be [date], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_extract(textField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(textField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_extract(to_string(booleanField), to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField, extraArg)", - "error": [ - "Error: [date_extract] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval date_extract(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(\"ALIGNED_DAY_OF_WEEK_IN_MONTH\", concat(\"20\", \"22\"))", - "error": [ - "Argument of [date_extract] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(textField, \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_extract(textField, concat(\"20\", \"22\"))", - "error": [ - "Argument of [date_extract] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_extract(to_string(booleanField), dateField)", - "error": [], - "warning": [] - }, - { - "query": "row var = date_format(\"a\", to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row date_format(\"a\", to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = date_format(true, true)", - "error": [ - "Argument of [date_format] must be [keyword], found value [true] type [boolean]", - "Argument of [date_format] must be [date], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_format(keywordField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_format(keywordField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_format(to_string(booleanField), to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_format(booleanField, booleanField)", - "error": [ - "Argument of [date_format] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [date_format] must be [date], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_format(textField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_format(textField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_format(keywordField, dateField, extraArg)", - "error": [ - "Error: [date_format] function expects no more than 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort date_format(keywordField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_format(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval date_format(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_format(keywordField, \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_format(keywordField, concat(\"20\", \"22\"))", - "error": [ - "Argument of [date_format] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | eval date_format(textField, \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_format(textField, concat(\"20\", \"22\"))", - "error": [ - "Argument of [date_format] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_format(to_string(booleanField), dateField)", - "error": [], - "warning": [] - }, - { - "query": "row var = date_parse(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row date_parse(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = date_parse(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = date_parse(true, true)", - "error": [ - "Argument of [date_parse] must be [keyword], found value [true] type [boolean]", - "Argument of [date_parse] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_parse(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_parse(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_parse(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_parse(booleanField, booleanField)", - "error": [ - "Argument of [date_parse] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [date_parse] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_parse(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_parse(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_parse(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_parse(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_parse(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_parse(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_parse(keywordField, keywordField, extraArg)", - "error": [ - "Error: [date_parse] function expects no more than 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort date_parse(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_parse(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval date_parse(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = date_trunc(1 year, to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row date_trunc(1 year, to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = date_trunc(\"a\", to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [\"a\"] type [string]" - ], - "warning": [] - }, - { - "query": "row date_trunc(\"a\", to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [\"a\"] type [string]" - ], - "warning": [] - }, - { - "query": "row var = date_trunc(true, true)", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [true] type [boolean]", - "Argument of [date_trunc] must be [date], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_trunc(1 year, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(1 year, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = date_trunc(1 year, to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(booleanField, booleanField)", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [booleanField] type [boolean]", - "Argument of [date_trunc] must be [date], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_trunc(textField, dateField)", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [textField] type [text]" - ], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(textField, dateField)", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [textField] type [text]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = date_trunc(textField, to_datetime(dateField))", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [textField] type [text]" - ], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(1 year, dateField, extraArg)", - "error": [ - "Error: [date_trunc] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort date_trunc(1 year, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval date_trunc(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(1 year, \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(1 year, concat(\"20\", \"22\"))", - "error": [ - "Argument of [date_trunc] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(textField, \"2022\")", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [textField] type [text]" - ], - "warning": [] - }, - { - "query": "from a_index | eval date_trunc(textField, concat(\"20\", \"22\"))", - "error": [ - "Argument of [date_trunc] must be [time_literal], found value [textField] type [text]", - "Argument of [date_trunc] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "row var = date_trunc(1 day, to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row date_trunc(1 day, to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = e()", - "error": [], - "warning": [] - }, - { - "query": "row e()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where e() > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = e()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval e()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval e(extraArg)", - "error": [ - "Error: [e] function expects exactly 0 arguments, got 1." - ], - "warning": [] - }, - { - "query": "from a_index | sort e()", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval e()", - "error": [], - "warning": [] - }, - { - "query": "row var = ends_with(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row ends_with(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = ends_with(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = ends_with(true, true)", - "error": [ - "Argument of [ends_with] must be [keyword], found value [true] type [boolean]", - "Argument of [ends_with] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = ends_with(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ends_with(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ends_with(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ends_with(booleanField, booleanField)", - "error": [ - "Argument of [ends_with] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [ends_with] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = ends_with(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ends_with(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ends_with(keywordField, keywordField, extraArg)", - "error": [ - "Error: [ends_with] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort ends_with(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ends_with(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval ends_with(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ends_with(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ends_with(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ends_with(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ends_with(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "row var = exp(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row exp(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = exp(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = exp(5)", - "error": [], - "warning": [] - }, - { - "query": "row exp(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = exp(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = exp(true)", - "error": [ - "Argument of [exp] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where exp(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where exp(booleanField) > 0", - "error": [ - "Argument of [exp] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where exp(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where exp(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where exp(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = exp(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval exp(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = exp(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval exp(booleanField)", - "error": [ - "Argument of [exp] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = exp(*)", - "error": [ - "Using wildcards (*) in exp is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = exp(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval exp(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = exp(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = exp(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval exp(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = exp(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval exp(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval exp(doubleField, extraArg)", - "error": [ - "Error: [exp] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort exp(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval exp(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval exp(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = floor(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row floor(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = floor(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = floor(5)", - "error": [], - "warning": [] - }, - { - "query": "row floor(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = floor(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = floor(true)", - "error": [ - "Argument of [floor] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where floor(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where floor(booleanField) > 0", - "error": [ - "Argument of [floor] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where floor(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where floor(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where floor(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = floor(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval floor(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = floor(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval floor(booleanField)", - "error": [ - "Argument of [floor] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = floor(*)", - "error": [ - "Using wildcards (*) in floor is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = floor(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval floor(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = floor(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = floor(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval floor(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = floor(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval floor(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval floor(doubleField, extraArg)", - "error": [ - "Error: [floor] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort floor(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval floor(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval floor(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = from_base64(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row from_base64(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = from_base64(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = from_base64(true)", - "error": [ - "Argument of [from_base64] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = from_base64(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval from_base64(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = from_base64(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval from_base64(booleanField)", - "error": [ - "Argument of [from_base64] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = from_base64(*)", - "error": [ - "Using wildcards (*) in from_base64 is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = from_base64(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval from_base64(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval from_base64(keywordField, extraArg)", - "error": [ - "Error: [from_base64] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort from_base64(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval from_base64(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval from_base64(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(true)", - "error": [], - "warning": [] - }, - { - "query": "row greatest(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(true, true)", - "error": [], - "warning": [] - }, - { - "query": "row greatest(true, true)", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_boolean(true), to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row greatest(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_double(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(5)", - "error": [], - "warning": [] - }, - { - "query": "row greatest(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row greatest(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_ip(\"127.0.0.1\"), to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row greatest(to_ip(\"127.0.0.1\"), to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_ip(to_ip(\"127.0.0.1\")), to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row greatest(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row greatest(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_version(\"1.0.0\"), to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row greatest(to_version(\"1.0.0\"), to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_version(\"a\"), to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = greatest(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [greatest] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]", - "Argument of [greatest] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where greatest(doubleField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where greatest(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where greatest(cartesianPointField) > 0", - "error": [ - "Argument of [greatest] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where greatest(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where greatest(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where greatest(longField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(cartesianPointField)", - "error": [ - "Argument of [greatest] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_boolean(booleanField), to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(cartesianPointField, cartesianPointField)", - "error": [ - "Argument of [greatest] must be [boolean], found value [cartesianPointField] type [cartesian_point]", - "Argument of [greatest] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_double(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(ipField, ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(ipField, ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_ip(ipField), to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(versionField, versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(versionField, versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = greatest(to_version(keywordField), to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort greatest(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval greatest(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval greatest(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where greatest(cartesianPointField, cartesianPointField) > 0", - "error": [ - "Argument of [greatest] must be [boolean], found value [cartesianPointField] type [cartesian_point]", - "Argument of [greatest] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "row var = ip_prefix(to_ip(\"127.0.0.1\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row ip_prefix(to_ip(\"127.0.0.1\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = ip_prefix(to_ip(to_ip(\"127.0.0.1\")), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = ip_prefix(true, true, true)", - "error": [ - "Argument of [ip_prefix] must be [ip], found value [true] type [boolean]", - "Argument of [ip_prefix] must be [integer], found value [true] type [boolean]", - "Argument of [ip_prefix] must be [integer], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = ip_prefix(ipField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ip_prefix(ipField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ip_prefix(to_ip(ipField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ip_prefix(booleanField, booleanField, booleanField)", - "error": [ - "Argument of [ip_prefix] must be [ip], found value [booleanField] type [boolean]", - "Argument of [ip_prefix] must be [integer], found value [booleanField] type [boolean]", - "Argument of [ip_prefix] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval ip_prefix(ipField, integerField, integerField, extraArg)", - "error": [ - "Error: [ip_prefix] function expects exactly 3 arguments, got 4." - ], - "warning": [] - }, - { - "query": "from a_index | sort ip_prefix(ipField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ip_prefix(null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval ip_prefix(nullVar, nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = least(true)", - "error": [], - "warning": [] - }, - { - "query": "row least(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(true, true)", - "error": [], - "warning": [] - }, - { - "query": "row least(true, true)", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_boolean(true), to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row least(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_double(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(5)", - "error": [], - "warning": [] - }, - { - "query": "row least(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row least(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_ip(\"127.0.0.1\"), to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row least(to_ip(\"127.0.0.1\"), to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_ip(to_ip(\"127.0.0.1\")), to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row least(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row least(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_version(\"1.0.0\"), to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row least(to_version(\"1.0.0\"), to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_version(\"a\"), to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = least(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [least] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]", - "Argument of [least] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where least(doubleField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where least(cartesianPointField, cartesianPointField) > 0", - "error": [ - "Argument of [least] must be [boolean], found value [cartesianPointField] type [cartesian_point]", - "Argument of [least] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where least(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where least(cartesianPointField) > 0", - "error": [ - "Argument of [least] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where least(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where least(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where least(longField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(cartesianPointField)", - "error": [ - "Argument of [least] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = least(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_boolean(booleanField), to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(cartesianPointField, cartesianPointField)", - "error": [ - "Argument of [least] must be [boolean], found value [cartesianPointField] type [cartesian_point]", - "Argument of [least] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = least(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_double(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(ipField, ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(ipField, ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_ip(ipField), to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(versionField, versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(versionField, versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = least(to_version(keywordField), to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort least(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval least(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval least(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = left(\"a\", 5)", - "error": [], - "warning": [] - }, - { - "query": "row left(\"a\", 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = left(to_string(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = left(true, true)", - "error": [ - "Argument of [left] must be [keyword], found value [true] type [boolean]", - "Argument of [left] must be [integer], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = left(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval left(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = left(to_string(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval left(booleanField, booleanField)", - "error": [ - "Argument of [left] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [left] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = left(textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval left(textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval left(keywordField, integerField, extraArg)", - "error": [ - "Error: [left] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort left(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval left(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval left(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = length(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row length(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = length(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = length(true)", - "error": [ - "Argument of [length] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = length(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval length(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = length(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval length(booleanField)", - "error": [ - "Argument of [length] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = length(*)", - "error": [ - "Using wildcards (*) in length is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = length(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval length(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval length(keywordField, extraArg)", - "error": [ - "Error: [length] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort length(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval length(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval length(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = locate(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row locate(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = locate(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = locate(\"a\", \"a\", 5)", - "error": [], - "warning": [] - }, - { - "query": "row locate(\"a\", \"a\", 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = locate(to_string(true), to_string(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = locate(true, true, true)", - "error": [ - "Argument of [locate] must be [keyword], found value [true] type [boolean]", - "Argument of [locate] must be [keyword], found value [true] type [boolean]", - "Argument of [locate] must be [integer], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(booleanField, booleanField)", - "error": [ - "Argument of [locate] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [locate] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(keywordField, keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(keywordField, keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(to_string(booleanField), to_string(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(booleanField, booleanField, booleanField)", - "error": [ - "Argument of [locate] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [locate] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [locate] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(keywordField, textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(keywordField, textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(textField, keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(textField, keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = locate(textField, textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(textField, textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(keywordField, keywordField, integerField, extraArg)", - "error": [ - "Error: [locate] function expects no more than 3 arguments, got 4." - ], - "warning": [] - }, - { - "query": "from a_index | sort locate(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval locate(null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval locate(nullVar, nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row log(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row log(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(to_double(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row log(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(to_double(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log(to_double(true), 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(5)", - "error": [], - "warning": [] - }, - { - "query": "row log(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log(5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row log(5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(to_integer(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row log(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log(to_integer(true), 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log(5, to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log(5, to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log(true, true)", - "error": [ - "Argument of [log] must be [double], found value [true] type [boolean]", - "Argument of [log] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where log(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(booleanField) > 0", - "error": [ - "Argument of [log] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where log(doubleField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(booleanField, booleanField) > 0", - "error": [ - "Argument of [log] must be [double], found value [booleanField] type [boolean]", - "Argument of [log] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where log(doubleField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(doubleField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(doubleField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(integerField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(integerField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(integerField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(longField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(longField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(longField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(longField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(unsignedLongField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(unsignedLongField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(unsignedLongField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log(unsignedLongField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(booleanField)", - "error": [ - "Argument of [log] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = log(*)", - "error": [ - "Using wildcards (*) in log is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = log(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_double(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(booleanField, booleanField)", - "error": [ - "Argument of [log] must be [double], found value [booleanField] type [boolean]", - "Argument of [log] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = log(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_double(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_double(booleanField), longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(doubleField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(doubleField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_double(booleanField), unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_integer(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_integer(booleanField), longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(integerField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(integerField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(to_integer(booleanField), unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(longField, to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(longField, to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(longField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(longField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(unsignedLongField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(unsignedLongField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(unsignedLongField, to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(unsignedLongField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(unsignedLongField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(unsignedLongField, to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(unsignedLongField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(unsignedLongField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log(unsignedLongField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(unsignedLongField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(doubleField, doubleField, extraArg)", - "error": [ - "Error: [log] function expects no more than 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort log(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval log(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = log10(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row log10(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log10(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log10(5)", - "error": [], - "warning": [] - }, - { - "query": "row log10(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = log10(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = log10(true)", - "error": [ - "Argument of [log10] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where log10(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log10(booleanField) > 0", - "error": [ - "Argument of [log10] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where log10(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log10(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where log10(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log10(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log10(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log10(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log10(booleanField)", - "error": [ - "Argument of [log10] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = log10(*)", - "error": [ - "Using wildcards (*) in log10 is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = log10(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log10(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log10(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log10(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log10(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = log10(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log10(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log10(doubleField, extraArg)", - "error": [ - "Error: [log10] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort log10(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval log10(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval log10(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = ltrim(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row ltrim(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = ltrim(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = ltrim(true)", - "error": [ - "Argument of [ltrim] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = ltrim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ltrim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = ltrim(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ltrim(booleanField)", - "error": [ - "Argument of [ltrim] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = ltrim(*)", - "error": [ - "Using wildcards (*) in ltrim is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = ltrim(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ltrim(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ltrim(keywordField, extraArg)", - "error": [ - "Error: [ltrim] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort ltrim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval ltrim(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval ltrim(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(true, true)", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(true, true)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_boolean(true), to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row mv_append(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_append(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_append(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_append(to_datetime(\"2021-01-01T00:00:00Z\"), to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(to_datetime(\"2021-01-01T00:00:00Z\"), to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")), to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_double(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row mv_append(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_append(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_append(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_append(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_ip(\"127.0.0.1\"), to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(to_ip(\"127.0.0.1\"), to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_ip(to_ip(\"127.0.0.1\")), to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_version(\"1.0.0\"), to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(to_version(\"1.0.0\"), to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_version(\"a\"), to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_append(doubleField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_append(counterDoubleField, counterDoubleField) > 0", - "error": [ - "Argument of [mv_append] must be [boolean], found value [counterDoubleField] type [counter_double]", - "Argument of [mv_append] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_append(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_append(longField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_boolean(booleanField), to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(counterDoubleField, counterDoubleField)", - "error": [ - "Argument of [mv_append] must be [boolean], found value [counterDoubleField] type [counter_double]", - "Argument of [mv_append] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(dateField, dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_datetime(dateField), to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_double(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(ipField, ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(ipField, ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_ip(ipField), to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(versionField, versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(versionField, versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_append(to_version(keywordField), to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(booleanField, booleanField, extraArg)", - "error": [ - "Error: [mv_append] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_append(booleanField, booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_append(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(\"2022\", \"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_append(concat(\"20\", \"22\"), concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_append(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_append(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_avg(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_avg(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_avg(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_avg(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_avg(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_avg(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_avg(true)", - "error": [ - "Argument of [mv_avg] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_avg(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_avg(booleanField) > 0", - "error": [ - "Argument of [mv_avg] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_avg(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_avg(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_avg(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_avg(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_avg(booleanField)", - "error": [ - "Argument of [mv_avg] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_avg(*)", - "error": [ - "Using wildcards (*) in mv_avg is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_avg(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_avg(doubleField, extraArg)", - "error": [ - "Error: [mv_avg] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_avg(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_avg(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_concat(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_concat(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_concat(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_concat(true, true)", - "error": [ - "Argument of [mv_concat] must be [keyword], found value [true] type [boolean]", - "Argument of [mv_concat] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_concat(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_concat(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_concat(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_concat(booleanField, booleanField)", - "error": [ - "Argument of [mv_concat] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [mv_concat] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_concat(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_concat(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_concat(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_concat(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_concat(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_concat(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_concat(keywordField, keywordField, extraArg)", - "error": [ - "Error: [mv_concat] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_concat(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_concat(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_concat(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(true)", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row mv_count(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_count(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_count(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_count(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row mv_count(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_count(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_count(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_count(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(booleanField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(counterDoubleField) > 0", - "error": [ - "Argument of [mv_count] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_count(cartesianPointField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(cartesianShapeField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(dateField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(geoPointField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(geoShapeField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(ipField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(keywordField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(textField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_count(versionField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(counterDoubleField)", - "error": [ - "Argument of [mv_count] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(*)", - "error": [ - "Using wildcards (*) in mv_count is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_count(to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(booleanField, extraArg)", - "error": [ - "Error: [mv_count] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_count(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_count(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_count(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_count(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_count(to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(true)", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row mv_dedupe(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row mv_dedupe(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_dedupe(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_dedupe(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_dedupe(counterDoubleField) > 0", - "error": [ - "Argument of [mv_dedupe] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_dedupe(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_dedupe(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(counterDoubleField)", - "error": [ - "Argument of [mv_dedupe] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(*)", - "error": [ - "Using wildcards (*) in mv_dedupe is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_dedupe(to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(booleanField, extraArg)", - "error": [ - "Error: [mv_dedupe] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_dedupe(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_dedupe(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_dedupe(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_dedupe(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_dedupe(to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(true)", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row mv_first(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_first(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_first(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_first(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row mv_first(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_first(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_first(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_first(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_first(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_first(counterDoubleField) > 0", - "error": [ - "Argument of [mv_first] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_first(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_first(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_first(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(counterDoubleField)", - "error": [ - "Argument of [mv_first] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(*)", - "error": [ - "Using wildcards (*) in mv_first is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_first(to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(booleanField, extraArg)", - "error": [ - "Error: [mv_first] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_first(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_first(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_first(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_first(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_first(to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(true)", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row mv_last(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_last(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_last(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_last(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row mv_last(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_last(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_last(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_last(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_last(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_last(counterDoubleField) > 0", - "error": [ - "Argument of [mv_last] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_last(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_last(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_last(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(counterDoubleField)", - "error": [ - "Argument of [mv_last] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(*)", - "error": [ - "Using wildcards (*) in mv_last is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_last(to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(booleanField, extraArg)", - "error": [ - "Error: [mv_last] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_last(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_last(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_last(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_last(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_last(to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(true)", - "error": [], - "warning": [] - }, - { - "query": "row mv_max(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_max(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_max(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_max(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_max(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_max(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_max(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_max(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [mv_max] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_max(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_max(cartesianPointField) > 0", - "error": [ - "Argument of [mv_max] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_max(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_max(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_max(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(cartesianPointField)", - "error": [ - "Argument of [mv_max] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(*)", - "error": [ - "Using wildcards (*) in mv_max is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_max(to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(booleanField, extraArg)", - "error": [ - "Error: [mv_max] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_max(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_max(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_max(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_median(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_median(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_median(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_median(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_median(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_median(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_median(true)", - "error": [ - "Argument of [mv_median] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_median(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_median(booleanField) > 0", - "error": [ - "Argument of [mv_median] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_median(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_median(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_median(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_median(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_median(booleanField)", - "error": [ - "Argument of [mv_median] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_median(*)", - "error": [ - "Using wildcards (*) in mv_median is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_median(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_median(doubleField, extraArg)", - "error": [ - "Error: [mv_median] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_median(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_median(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(true)", - "error": [], - "warning": [] - }, - { - "query": "row mv_min(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_min(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_min(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_min(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_min(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_min(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row mv_min(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_min(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [mv_min] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_min(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_min(cartesianPointField) > 0", - "error": [ - "Argument of [mv_min] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_min(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_min(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_min(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(cartesianPointField)", - "error": [ - "Argument of [mv_min] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(*)", - "error": [ - "Using wildcards (*) in mv_min is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_min(to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(booleanField, extraArg)", - "error": [ - "Error: [mv_min] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_min(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_min(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_min(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(true, 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(true, 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_boolean(true), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(cartesianPointField, 5, 5)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row mv_slice(cartesianPointField, 5, 5)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_slice(to_cartesianpoint(cartesianPointField), to_integer(true), to_integer(true))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_slice(to_cartesianshape(\"POINT (30 10)\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(to_cartesianshape(\"POINT (30 10)\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_cartesianshape(cartesianPointField), to_integer(true), to_integer(true))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_slice(to_datetime(\"2021-01-01T00:00:00Z\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(to_datetime(\"2021-01-01T00:00:00Z\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(5.5, 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(5.5, 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_double(true), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(geoPointField, 5, 5)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row mv_slice(geoPointField, 5, 5)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_slice(to_geopoint(geoPointField), to_integer(true), to_integer(true))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_slice(to_geoshape(\"POINT (30 10)\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(to_geoshape(\"POINT (30 10)\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_geoshape(geoPointField), to_integer(true), to_integer(true))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = mv_slice(5, 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(5, 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_integer(true), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_ip(\"127.0.0.1\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(to_ip(\"127.0.0.1\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_ip(to_ip(\"127.0.0.1\")), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(\"a\", 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(\"a\", 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_string(true), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(5, to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_version(\"1.0.0\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(to_version(\"1.0.0\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_version(\"a\"), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(5.5, true, true)", - "error": [ - "Argument of [mv_slice] must be [integer], found value [true] type [boolean]", - "Argument of [mv_slice] must be [integer], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_slice(doubleField, integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_slice(counterDoubleField, booleanField, booleanField) > 0", - "error": [ - "Argument of [mv_slice] must be [boolean], found value [counterDoubleField] type [counter_double]", - "Argument of [mv_slice] must be [integer], found value [booleanField] type [boolean]", - "Argument of [mv_slice] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_slice(integerField, integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_slice(longField, integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(booleanField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(booleanField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_boolean(booleanField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(counterDoubleField, booleanField, booleanField)", - "error": [ - "Argument of [mv_slice] must be [boolean], found value [counterDoubleField] type [counter_double]", - "Argument of [mv_slice] must be [integer], found value [booleanField] type [boolean]", - "Argument of [mv_slice] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(cartesianPointField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(cartesianPointField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_cartesianpoint(cartesianPointField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(cartesianShapeField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(cartesianShapeField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_cartesianshape(cartesianPointField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(dateField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(dateField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_datetime(dateField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(doubleField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(doubleField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_double(booleanField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(geoPointField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(geoPointField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_geopoint(geoPointField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(geoShapeField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(geoShapeField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_geoshape(geoPointField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(integerField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(integerField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_integer(booleanField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(ipField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(ipField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_ip(ipField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(keywordField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(keywordField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_string(booleanField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(longField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(longField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(longField, to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(textField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(textField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(versionField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(versionField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(to_version(keywordField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(booleanField, integerField, integerField, extraArg)", - "error": [ - "Error: [mv_slice] function expects no more than 3 arguments, got 4." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_slice(booleanField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_slice(nullVar, nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(\"2022\", integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_slice(concat(\"20\", \"22\"), integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_cartesianpoint(\"POINT (30 10)\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(to_cartesianpoint(\"POINT (30 10)\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_datetime(\"2021-01-01T00:00:00Z\"), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_geopoint(\"POINT (30 10)\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_slice(to_geopoint(\"POINT (30 10)\"), 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_slice(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_slice(dateField, to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(true, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_sort(true, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(to_datetime(\"2021-01-01T00:00:00Z\"), \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_sort(to_datetime(\"2021-01-01T00:00:00Z\"), \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(5.5, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_sort(5.5, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(5, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_sort(5, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(to_ip(\"127.0.0.1\"), \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_sort(to_ip(\"127.0.0.1\"), \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(\"a\", \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_sort(\"a\", \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(to_version(\"1.0.0\"), \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_sort(to_version(\"1.0.0\"), \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(to_cartesianpoint(\"POINT (30 10)\"), true)", - "error": [ - "Argument of [mv_sort] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]", - "Argument of [mv_sort] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(booleanField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(booleanField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(dateField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(dateField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(doubleField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(doubleField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(integerField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(integerField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(ipField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(ipField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(keywordField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(keywordField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(longField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(longField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(textField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(textField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(versionField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(versionField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(booleanField, \"asc\", extraArg)", - "error": [ - "Error: [mv_sort] function expects no more than 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_sort(booleanField, \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_sort(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(\"2022\", \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(concat(\"20\", \"22\"), \"asc\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sort(5, \"a\")", - "error": [], - "warning": [ - "Invalid option [\"a\"] for mv_sort. Supported options: [\"asc\", \"desc\"]." - ] - }, - { - "query": "row mv_sort(5, \"a\")", - "error": [], - "warning": [ - "Invalid option [\"a\"] for mv_sort. Supported options: [\"asc\", \"desc\"]." - ] - }, - { - "query": "row var = mv_sort(\"a\", \"a\")", - "error": [], - "warning": [ - "Invalid option [\"a\"] for mv_sort. Supported options: [\"asc\", \"desc\"]." - ] - }, - { - "query": "row mv_sort(\"a\", \"a\")", - "error": [], - "warning": [ - "Invalid option [\"a\"] for mv_sort. Supported options: [\"asc\", \"desc\"]." - ] - }, - { - "query": "row var = mv_sort(to_version(\"1.0.0\"), \"a\")", - "error": [], - "warning": [ - "Invalid option [\"a\"] for mv_sort. Supported options: [\"asc\", \"desc\"]." - ] - }, - { - "query": "row mv_sort(to_version(\"1.0.0\"), \"a\")", - "error": [], - "warning": [ - "Invalid option [\"a\"] for mv_sort. Supported options: [\"asc\", \"desc\"]." - ] - }, - { - "query": "from a_index | eval var = mv_sort(longField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(longField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sort(versionField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sort(versionField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sum(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_sum(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sum(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sum(5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_sum(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sum(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_sum(true)", - "error": [ - "Argument of [mv_sum] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_sum(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_sum(booleanField) > 0", - "error": [ - "Argument of [mv_sum] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_sum(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_sum(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_sum(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sum(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sum(booleanField)", - "error": [ - "Argument of [mv_sum] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sum(*)", - "error": [ - "Using wildcards (*) in mv_sum is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sum(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sum(doubleField, extraArg)", - "error": [ - "Error: [mv_sum] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_sum(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_sum(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_zip(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_zip(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_zip(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_zip(\"a\", \"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row mv_zip(\"a\", \"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_zip(to_string(true), to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_zip(true, true, true)", - "error": [ - "Argument of [mv_zip] must be [keyword], found value [true] type [boolean]", - "Argument of [mv_zip] must be [keyword], found value [true] type [boolean]", - "Argument of [mv_zip] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(booleanField, booleanField)", - "error": [ - "Argument of [mv_zip] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [mv_zip] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(keywordField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(keywordField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(to_string(booleanField), to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(booleanField, booleanField, booleanField)", - "error": [ - "Argument of [mv_zip] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [mv_zip] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [mv_zip] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(keywordField, keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(keywordField, keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(keywordField, textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(keywordField, textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(keywordField, textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(keywordField, textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(textField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(textField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(textField, keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(textField, keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(textField, textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(textField, textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_zip(textField, textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(textField, textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(keywordField, keywordField, keywordField, extraArg)", - "error": [ - "Error: [mv_zip] function expects no more than 3 arguments, got 4." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_zip(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_zip(null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_zip(nullVar, nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = now()", - "error": [], - "warning": [] - }, - { - "query": "row now()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = now()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval now()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval now(extraArg)", - "error": [ - "Error: [now] function expects exactly 0 arguments, got 1." - ], - "warning": [] - }, - { - "query": "from a_index | sort now()", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval now()", - "error": [], - "warning": [] - }, - { - "query": "row var = pi()", - "error": [], - "warning": [] - }, - { - "query": "row pi()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pi() > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pi()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pi()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pi(extraArg)", - "error": [ - "Error: [pi] function expects exactly 0 arguments, got 1." - ], - "warning": [] - }, - { - "query": "from a_index | sort pi()", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval pi()", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row pow(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(to_double(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row pow(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(to_double(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(to_double(true), 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row pow(5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(to_integer(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row pow(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(to_integer(true), 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(5, to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(5, to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = pow(true, true)", - "error": [ - "Argument of [pow] must be [double], found value [true] type [boolean]", - "Argument of [pow] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where pow(doubleField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(booleanField, booleanField) > 0", - "error": [ - "Argument of [pow] must be [double], found value [booleanField] type [boolean]", - "Argument of [pow] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where pow(doubleField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(doubleField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(doubleField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(integerField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(integerField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(integerField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(longField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(longField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(longField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(longField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(unsignedLongField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(unsignedLongField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(unsignedLongField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where pow(unsignedLongField, unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(to_double(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(booleanField, booleanField)", - "error": [ - "Argument of [pow] must be [double], found value [booleanField] type [boolean]", - "Argument of [pow] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(to_double(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(to_double(booleanField), longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(doubleField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(doubleField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(to_double(booleanField), unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(to_integer(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(to_integer(booleanField), longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(integerField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(integerField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(to_integer(booleanField), unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(longField, to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(longField, to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(longField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(longField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(unsignedLongField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(unsignedLongField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(unsignedLongField, to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(unsignedLongField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(unsignedLongField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(unsignedLongField, to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(unsignedLongField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(unsignedLongField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = pow(unsignedLongField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(unsignedLongField, unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(doubleField, doubleField, extraArg)", - "error": [ - "Error: [pow] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort pow(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval pow(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval pow(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = repeat(\"a\", 5)", - "error": [], - "warning": [] - }, - { - "query": "row repeat(\"a\", 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = repeat(to_string(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = repeat(true, true)", - "error": [ - "Argument of [repeat] must be [keyword], found value [true] type [boolean]", - "Argument of [repeat] must be [integer], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = repeat(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval repeat(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = repeat(to_string(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval repeat(booleanField, booleanField)", - "error": [ - "Argument of [repeat] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [repeat] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = repeat(textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval repeat(textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval repeat(keywordField, integerField, extraArg)", - "error": [ - "Error: [repeat] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort repeat(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval repeat(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval repeat(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = replace(\"a\", \"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row replace(\"a\", \"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = replace(to_string(true), to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = replace(true, true, true)", - "error": [ - "Argument of [replace] must be [keyword], found value [true] type [boolean]", - "Argument of [replace] must be [keyword], found value [true] type [boolean]", - "Argument of [replace] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(keywordField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(keywordField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(to_string(booleanField), to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(booleanField, booleanField, booleanField)", - "error": [ - "Argument of [replace] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [replace] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [replace] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(keywordField, keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(keywordField, keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(keywordField, textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(keywordField, textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(keywordField, textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(keywordField, textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(textField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(textField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(textField, keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(textField, keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(textField, textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(textField, textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = replace(textField, textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(textField, textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(keywordField, keywordField, keywordField, extraArg)", - "error": [ - "Error: [replace] function expects exactly 3 arguments, got 4." - ], - "warning": [] - }, - { - "query": "from a_index | sort replace(keywordField, keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval replace(null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval replace(nullVar, nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = right(\"a\", 5)", - "error": [], - "warning": [] - }, - { - "query": "row right(\"a\", 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = right(to_string(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = right(true, true)", - "error": [ - "Argument of [right] must be [keyword], found value [true] type [boolean]", - "Argument of [right] must be [integer], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = right(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval right(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = right(to_string(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval right(booleanField, booleanField)", - "error": [ - "Argument of [right] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [right] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = right(textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval right(textField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval right(keywordField, integerField, extraArg)", - "error": [ - "Error: [right] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort right(keywordField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval right(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval right(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = round(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row round(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = round(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = round(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row round(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = round(to_double(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = round(5)", - "error": [], - "warning": [] - }, - { - "query": "row round(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = round(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = round(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row round(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = round(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = round(5, to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = round(true, true)", - "error": [ - "Argument of [round] must be [double], found value [true] type [boolean]", - "Argument of [round] must be [integer], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where round(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where round(booleanField) > 0", - "error": [ - "Argument of [round] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where round(doubleField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where round(booleanField, booleanField) > 0", - "error": [ - "Argument of [round] must be [double], found value [booleanField] type [boolean]", - "Argument of [round] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where round(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where round(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where round(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where round(longField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where round(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(booleanField)", - "error": [ - "Argument of [round] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = round(*)", - "error": [ - "Using wildcards (*) in round is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = round(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(to_double(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(booleanField, booleanField)", - "error": [ - "Argument of [round] must be [double], found value [booleanField] type [boolean]", - "Argument of [round] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = round(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(longField, to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = round(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(doubleField, integerField, extraArg)", - "error": [ - "Error: [round] function expects no more than 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort round(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval round(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval round(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = rtrim(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row rtrim(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = rtrim(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = rtrim(true)", - "error": [ - "Argument of [rtrim] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = rtrim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval rtrim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = rtrim(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval rtrim(booleanField)", - "error": [ - "Argument of [rtrim] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = rtrim(*)", - "error": [ - "Using wildcards (*) in rtrim is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = rtrim(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval rtrim(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval rtrim(keywordField, extraArg)", - "error": [ - "Error: [rtrim] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort rtrim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval rtrim(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval rtrim(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = signum(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row signum(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = signum(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = signum(5)", - "error": [], - "warning": [] - }, - { - "query": "row signum(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = signum(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = signum(true)", - "error": [ - "Argument of [signum] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where signum(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where signum(booleanField) > 0", - "error": [ - "Argument of [signum] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where signum(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where signum(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where signum(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = signum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval signum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = signum(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval signum(booleanField)", - "error": [ - "Argument of [signum] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = signum(*)", - "error": [ - "Using wildcards (*) in signum is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = signum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval signum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = signum(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = signum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval signum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = signum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval signum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval signum(doubleField, extraArg)", - "error": [ - "Error: [signum] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort signum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval signum(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval signum(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = sin(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row sin(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = sin(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = sin(5)", - "error": [], - "warning": [] - }, - { - "query": "row sin(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = sin(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = sin(true)", - "error": [ - "Argument of [sin] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where sin(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sin(booleanField) > 0", - "error": [ - "Argument of [sin] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where sin(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sin(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sin(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sin(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sin(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sin(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sin(booleanField)", - "error": [ - "Argument of [sin] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sin(*)", - "error": [ - "Using wildcards (*) in sin is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sin(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sin(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sin(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sin(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sin(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sin(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sin(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sin(doubleField, extraArg)", - "error": [ - "Error: [sin] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort sin(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sin(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval sin(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = sinh(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row sinh(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = sinh(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = sinh(5)", - "error": [], - "warning": [] - }, - { - "query": "row sinh(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = sinh(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = sinh(true)", - "error": [ - "Argument of [sinh] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where sinh(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sinh(booleanField) > 0", - "error": [ - "Argument of [sinh] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where sinh(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sinh(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sinh(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sinh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sinh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sinh(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sinh(booleanField)", - "error": [ - "Argument of [sinh] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sinh(*)", - "error": [ - "Using wildcards (*) in sinh is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sinh(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sinh(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sinh(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sinh(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sinh(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sinh(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sinh(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sinh(doubleField, extraArg)", - "error": [ - "Error: [sinh] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort sinh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sinh(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval sinh(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = split(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row split(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = split(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = split(true, true)", - "error": [ - "Argument of [split] must be [keyword], found value [true] type [boolean]", - "Argument of [split] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = split(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval split(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = split(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval split(booleanField, booleanField)", - "error": [ - "Argument of [split] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [split] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = split(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval split(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = split(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval split(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = split(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval split(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval split(keywordField, keywordField, extraArg)", - "error": [ - "Error: [split] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort split(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval split(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval split(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = sqrt(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row sqrt(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = sqrt(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = sqrt(5)", - "error": [], - "warning": [] - }, - { - "query": "row sqrt(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = sqrt(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = sqrt(true)", - "error": [ - "Argument of [sqrt] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where sqrt(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sqrt(booleanField) > 0", - "error": [ - "Argument of [sqrt] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where sqrt(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sqrt(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where sqrt(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sqrt(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sqrt(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sqrt(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sqrt(booleanField)", - "error": [ - "Argument of [sqrt] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sqrt(*)", - "error": [ - "Using wildcards (*) in sqrt is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sqrt(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sqrt(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sqrt(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sqrt(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sqrt(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = sqrt(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sqrt(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sqrt(doubleField, extraArg)", - "error": [ - "Error: [sqrt] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort sqrt(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval sqrt(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval sqrt(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_contains(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(cartesianPointField, to_cartesianshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_contains(cartesianPointField, to_cartesianshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianpoint(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_contains(to_cartesianshape(\"POINT (30 10)\"), cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianshape(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_contains(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(geoPointField, to_geoshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_contains(geoPointField, to_geoshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_geopoint(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_contains(to_geoshape(\"POINT (30 10)\"), geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_geoshape(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_contains(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_contains(true, true)", - "error": [ - "Argument of [st_contains] must be [cartesian_point], found value [true] type [boolean]", - "Argument of [st_contains] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(booleanField, booleanField)", - "error": [ - "Argument of [st_contains] must be [cartesian_point], found value [booleanField] type [boolean]", - "Argument of [st_contains] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(cartesianPointField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(cartesianPointField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(to_cartesianpoint(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(cartesianShapeField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(cartesianShapeField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(to_cartesianshape(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(geoPointField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(geoPointField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(to_geopoint(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(geoShapeField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(geoShapeField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(to_geoshape(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_contains(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(cartesianPointField, cartesianPointField, extraArg)", - "error": [ - "Error: [st_contains] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort st_contains(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_contains(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval st_contains(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_contains(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_contains(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_contains(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_contains(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_contains(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_contains(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_disjoint(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(cartesianPointField, to_cartesianshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_disjoint(cartesianPointField, to_cartesianshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianpoint(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_disjoint(to_cartesianshape(\"POINT (30 10)\"), cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianshape(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_disjoint(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(geoPointField, to_geoshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_disjoint(geoPointField, to_geoshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geopoint(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_disjoint(to_geoshape(\"POINT (30 10)\"), geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geoshape(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_disjoint(true, true)", - "error": [ - "Argument of [st_disjoint] must be [cartesian_point], found value [true] type [boolean]", - "Argument of [st_disjoint] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(booleanField, booleanField)", - "error": [ - "Argument of [st_disjoint] must be [cartesian_point], found value [booleanField] type [boolean]", - "Argument of [st_disjoint] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(cartesianPointField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(to_cartesianpoint(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(cartesianShapeField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(to_cartesianshape(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(geoPointField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(geoPointField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(to_geopoint(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(geoShapeField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(geoShapeField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(to_geoshape(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_disjoint(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(cartesianPointField, cartesianPointField, extraArg)", - "error": [ - "Error: [st_disjoint] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort st_disjoint(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_disjoint(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval st_disjoint(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_disjoint(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_disjoint(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_disjoint(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_disjoint(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_disjoint(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_distance(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_distance(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_distance(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_distance(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_distance(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_distance(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_distance(true, true)", - "error": [ - "Argument of [st_distance] must be [cartesian_point], found value [true] type [boolean]", - "Argument of [st_distance] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_distance(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_distance(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_distance(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_distance(booleanField, booleanField)", - "error": [ - "Argument of [st_distance] must be [cartesian_point], found value [booleanField] type [boolean]", - "Argument of [st_distance] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_distance(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_distance(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_distance(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_distance(cartesianPointField, cartesianPointField, extraArg)", - "error": [ - "Error: [st_distance] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort st_distance(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_distance(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval st_distance(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = st_distance(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_distance(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_distance(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_distance(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_distance(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_distance(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_intersects(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(cartesianPointField, to_cartesianshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_intersects(cartesianPointField, to_cartesianshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianpoint(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_intersects(to_cartesianshape(\"POINT (30 10)\"), cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianshape(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_intersects(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(geoPointField, to_geoshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_intersects(geoPointField, to_geoshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geopoint(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_intersects(to_geoshape(\"POINT (30 10)\"), geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geoshape(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_intersects(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_intersects(true, true)", - "error": [ - "Argument of [st_intersects] must be [cartesian_point], found value [true] type [boolean]", - "Argument of [st_intersects] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(booleanField, booleanField)", - "error": [ - "Argument of [st_intersects] must be [cartesian_point], found value [booleanField] type [boolean]", - "Argument of [st_intersects] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(cartesianPointField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(cartesianPointField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(to_cartesianpoint(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(cartesianShapeField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(to_cartesianshape(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(geoPointField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(geoPointField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(to_geopoint(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(geoShapeField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(geoShapeField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(to_geoshape(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_intersects(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(cartesianPointField, cartesianPointField, extraArg)", - "error": [ - "Error: [st_intersects] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort st_intersects(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_intersects(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval st_intersects(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_intersects(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_intersects(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_intersects(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_intersects(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_intersects(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_intersects(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_within(cartesianPointField, cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(cartesianPointField, to_cartesianshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_within(cartesianPointField, to_cartesianshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianpoint(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_within(to_cartesianshape(\"POINT (30 10)\"), cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianshape(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]", - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_within(geoPointField, geoPointField)", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(geoPointField, to_geoshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_within(geoPointField, to_geoshape(\"POINT (30 10)\"))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_geopoint(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_within(to_geoshape(\"POINT (30 10)\"), geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_geoshape(geoPointField), to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_within(to_geoshape(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]", - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_within(true, true)", - "error": [ - "Argument of [st_within] must be [cartesian_point], found value [true] type [boolean]", - "Argument of [st_within] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(to_cartesianpoint(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(booleanField, booleanField)", - "error": [ - "Argument of [st_within] must be [cartesian_point], found value [booleanField] type [boolean]", - "Argument of [st_within] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(cartesianPointField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(cartesianPointField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(to_cartesianpoint(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(cartesianShapeField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(cartesianShapeField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(to_cartesianshape(cartesianPointField), to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(cartesianShapeField, cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(to_cartesianshape(cartesianPointField), to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(geoPointField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(to_geopoint(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(geoPointField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(geoPointField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(to_geopoint(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(geoShapeField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(geoShapeField, geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(to_geoshape(geoPointField), to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(geoShapeField, geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_within(to_geoshape(geoPointField), to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(cartesianPointField, cartesianPointField, extraArg)", - "error": [ - "Error: [st_within] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort st_within(cartesianPointField, cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_within(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval st_within(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_within(to_cartesianpoint(\"POINT (30 10)\"), to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_within(to_cartesianshape(\"POINT (30 10)\"), to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")), to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_within(to_geopoint(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_within(to_geopoint(\"POINT (30 10)\"), to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_geopoint(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_within(to_geoshape(\"POINT (30 10)\"), to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_within(to_geoshape(to_geopoint(\"POINT (30 10)\")), to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_x(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_x(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_x(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_x(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_x(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_x(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_x(true)", - "error": [ - "Argument of [st_x] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_x(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_x(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_x(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_x(booleanField)", - "error": [ - "Argument of [st_x] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_x(*)", - "error": [ - "Using wildcards (*) in st_x is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_x(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_x(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_x(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_x(cartesianPointField, extraArg)", - "error": [ - "Error: [st_x] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort st_x(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_x(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval st_x(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = st_x(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_x(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_x(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_x(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_x(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_x(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_y(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row st_y(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_y(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_y(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row st_y(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_y(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = st_y(true)", - "error": [ - "Argument of [st_y] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_y(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_y(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_y(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_y(booleanField)", - "error": [ - "Argument of [st_y] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_y(*)", - "error": [ - "Using wildcards (*) in st_y is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_y(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_y(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = st_y(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_y(cartesianPointField, extraArg)", - "error": [ - "Error: [st_y] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort st_y(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval st_y(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval st_y(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = st_y(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_y(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_y(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_y(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row st_y(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = st_y(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = starts_with(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row starts_with(\"a\", \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = starts_with(to_string(true), to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = starts_with(true, true)", - "error": [ - "Argument of [starts_with] must be [keyword], found value [true] type [boolean]", - "Argument of [starts_with] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = starts_with(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval starts_with(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = starts_with(to_string(booleanField), to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval starts_with(booleanField, booleanField)", - "error": [ - "Argument of [starts_with] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [starts_with] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = starts_with(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval starts_with(textField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval starts_with(keywordField, keywordField, extraArg)", - "error": [ - "Error: [starts_with] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort starts_with(keywordField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval starts_with(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval starts_with(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = starts_with(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval starts_with(keywordField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = starts_with(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval starts_with(textField, keywordField)", - "error": [], - "warning": [] - }, - { - "query": "row var = substring(\"a\", 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row substring(\"a\", 5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = substring(to_string(true), to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = substring(true, true, true)", - "error": [ - "Argument of [substring] must be [keyword], found value [true] type [boolean]", - "Argument of [substring] must be [integer], found value [true] type [boolean]", - "Argument of [substring] must be [integer], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = substring(keywordField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval substring(keywordField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = substring(to_string(booleanField), to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval substring(booleanField, booleanField, booleanField)", - "error": [ - "Argument of [substring] must be [keyword], found value [booleanField] type [boolean]", - "Argument of [substring] must be [integer], found value [booleanField] type [boolean]", - "Argument of [substring] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = substring(textField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval substring(textField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval substring(keywordField, integerField, integerField, extraArg)", - "error": [ - "Error: [substring] function expects no more than 3 arguments, got 4." - ], - "warning": [] - }, - { - "query": "from a_index | sort substring(keywordField, integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval substring(null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval substring(nullVar, nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = tan(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row tan(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = tan(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = tan(5)", - "error": [], - "warning": [] - }, - { - "query": "row tan(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = tan(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = tan(true)", - "error": [ - "Argument of [tan] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where tan(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where tan(booleanField) > 0", - "error": [ - "Argument of [tan] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where tan(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where tan(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where tan(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tan(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tan(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tan(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tan(booleanField)", - "error": [ - "Argument of [tan] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = tan(*)", - "error": [ - "Using wildcards (*) in tan is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = tan(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tan(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tan(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tan(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tan(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tan(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tan(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tan(doubleField, extraArg)", - "error": [ - "Error: [tan] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort tan(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tan(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval tan(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = tanh(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row tanh(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = tanh(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = tanh(5)", - "error": [], - "warning": [] - }, - { - "query": "row tanh(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = tanh(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = tanh(true)", - "error": [ - "Argument of [tanh] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where tanh(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where tanh(booleanField) > 0", - "error": [ - "Argument of [tanh] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where tanh(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where tanh(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where tanh(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tanh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tanh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tanh(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tanh(booleanField)", - "error": [ - "Argument of [tanh] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = tanh(*)", - "error": [ - "Using wildcards (*) in tanh is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = tanh(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tanh(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tanh(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tanh(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tanh(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tanh(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tanh(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tanh(doubleField, extraArg)", - "error": [ - "Error: [tanh] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort tanh(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tanh(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval tanh(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = tau()", - "error": [], - "warning": [] - }, - { - "query": "row tau()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where tau() > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = tau()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tau()", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval tau(extraArg)", - "error": [ - "Error: [tau] function expects exactly 0 arguments, got 1." - ], - "warning": [] - }, - { - "query": "from a_index | sort tau()", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval tau()", - "error": [], - "warning": [] - }, - { - "query": "row var = to_base64(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_base64(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_base64(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_base64(true)", - "error": [ - "Argument of [to_base64] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_base64(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_base64(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_base64(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_base64(booleanField)", - "error": [ - "Argument of [to_base64] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_base64(*)", - "error": [ - "Using wildcards (*) in to_base64 is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_base64(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_base64(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_base64(keywordField, extraArg)", - "error": [ - "Error: [to_base64] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_base64(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_base64(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_base64(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(true)", - "error": [], - "warning": [] - }, - { - "query": "row to_boolean(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_bool(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_boolean(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_bool(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_boolean(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_bool(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_boolean(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_bool(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_boolean(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [to_boolean] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_bool(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(cartesianPointField)", - "error": [ - "Argument of [to_boolean] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(*)", - "error": [ - "Using wildcards (*) in to_boolean is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_bool(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_bool(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_bool(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_bool(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_bool(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_boolean(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_bool(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(booleanField, extraArg)", - "error": [ - "Error: [to_boolean] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_boolean(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_boolean(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_boolean(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianpoint(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row to_cartesianpoint(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_cartesianpoint(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_cartesianpoint(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_cartesianpoint(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianpoint(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianpoint(true)", - "error": [ - "Argument of [to_cartesianpoint] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianpoint(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianpoint(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianpoint(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianpoint(booleanField)", - "error": [ - "Argument of [to_cartesianpoint] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianpoint(*)", - "error": [ - "Using wildcards (*) in to_cartesianpoint is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianpoint(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianpoint(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianpoint(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianpoint(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianpoint(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianpoint(cartesianPointField, extraArg)", - "error": [ - "Error: [to_cartesianpoint] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_cartesianpoint(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianpoint(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_cartesianpoint(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianpoint(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row to_cartesianshape(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_cartesianshape(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_cartesianshape(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(true)", - "error": [ - "Argument of [to_cartesianshape] must be [cartesian_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianshape(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianshape(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianshape(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianshape(booleanField)", - "error": [ - "Argument of [to_cartesianshape] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianshape(*)", - "error": [ - "Using wildcards (*) in to_cartesianshape is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianshape(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianshape(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianshape(to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianshape(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianshape(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianshape(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_cartesianshape(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianshape(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianshape(cartesianPointField, extraArg)", - "error": [ - "Error: [to_cartesianshape] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_cartesianshape(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_cartesianshape(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_cartesianshape(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_cartesianshape(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_datetime(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dt(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_datetime(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dt(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_datetime(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dt(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_datetime(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dt(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_datetime(true)", - "error": [ - "Argument of [to_datetime] must be [date], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dt(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(booleanField)", - "error": [ - "Argument of [to_datetime] must be [date], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(*)", - "error": [ - "Using wildcards (*) in to_datetime is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dt(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dt(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dt(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dt(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dt(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_datetime(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dt(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(dateField, extraArg)", - "error": [ - "Error: [to_datetime] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_datetime(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_datetime(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_datetime(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_degrees(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_degrees(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_degrees(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_degrees(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_degrees(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_degrees(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_degrees(true)", - "error": [ - "Argument of [to_degrees] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_degrees(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_degrees(booleanField) > 0", - "error": [ - "Argument of [to_degrees] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_degrees(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_degrees(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_degrees(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_degrees(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_degrees(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_degrees(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_degrees(booleanField)", - "error": [ - "Argument of [to_degrees] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_degrees(*)", - "error": [ - "Using wildcards (*) in to_degrees is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_degrees(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_degrees(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_degrees(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_degrees(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_degrees(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_degrees(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_degrees(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_degrees(doubleField, extraArg)", - "error": [ - "Error: [to_degrees] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_degrees(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_degrees(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_degrees(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(true)", - "error": [], - "warning": [] - }, - { - "query": "row to_double(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dbl(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_double(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dbl(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_double(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dbl(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_double(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dbl(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_double(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_dbl(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_double(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [to_double] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_double(booleanField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(cartesianPointField) > 0", - "error": [ - "Argument of [to_double] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_double(counterDoubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(counterIntegerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(counterLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(dateField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(keywordField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(textField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_double(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(cartesianPointField)", - "error": [ - "Argument of [to_double] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(*)", - "error": [ - "Using wildcards (*) in to_double is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_double(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_dbl(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(booleanField, extraArg)", - "error": [ - "Error: [to_double] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_double(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_double(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_double(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geopoint(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row to_geopoint(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_geopoint(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_geopoint(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_geopoint(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geopoint(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geopoint(true)", - "error": [ - "Argument of [to_geopoint] must be [geo_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geopoint(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geopoint(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geopoint(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geopoint(booleanField)", - "error": [ - "Argument of [to_geopoint] must be [geo_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geopoint(*)", - "error": [ - "Using wildcards (*) in to_geopoint is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geopoint(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geopoint(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geopoint(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geopoint(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geopoint(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geopoint(geoPointField, extraArg)", - "error": [ - "Error: [to_geopoint] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_geopoint(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geopoint(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_geopoint(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geopoint(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_geopoint(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geopoint(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geoshape(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row to_geoshape(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_geoshape(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_geoshape(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_geoshape(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geoshape(to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_geoshape(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_geoshape(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geoshape(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geoshape(true)", - "error": [ - "Argument of [to_geoshape] must be [geo_point], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geoshape(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geoshape(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geoshape(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geoshape(booleanField)", - "error": [ - "Argument of [to_geoshape] must be [geo_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geoshape(*)", - "error": [ - "Using wildcards (*) in to_geoshape is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geoshape(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geoshape(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geoshape(to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geoshape(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geoshape(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geoshape(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_geoshape(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geoshape(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geoshape(geoPointField, extraArg)", - "error": [ - "Error: [to_geoshape] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_geoshape(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_geoshape(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_geoshape(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geoshape(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_geoshape(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geoshape(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_geoshape(to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(true)", - "error": [], - "warning": [] - }, - { - "query": "row to_integer(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_int(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_integer(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_int(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_integer(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_int(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_integer(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_int(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_integer(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_int(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_integer(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [to_integer] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_integer(booleanField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_integer(cartesianPointField) > 0", - "error": [ - "Argument of [to_integer] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_integer(counterIntegerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_integer(dateField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_integer(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_integer(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_integer(keywordField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_integer(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_integer(textField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_integer(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(cartesianPointField)", - "error": [ - "Argument of [to_integer] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(*)", - "error": [ - "Using wildcards (*) in to_integer is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_integer(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_int(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(booleanField, extraArg)", - "error": [ - "Error: [to_integer] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_integer(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_integer(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_integer(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ip(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_ip(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ip(to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ip(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_ip(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ip(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ip(true)", - "error": [ - "Argument of [to_ip] must be [ip], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ip(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_ip(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ip(to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_ip(booleanField)", - "error": [ - "Argument of [to_ip] must be [ip], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ip(*)", - "error": [ - "Using wildcards (*) in to_ip is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ip(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_ip(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ip(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ip(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_ip(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_ip(ipField, extraArg)", - "error": [ - "Error: [to_ip] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_ip(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_ip(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_ip(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(true)", - "error": [], - "warning": [] - }, - { - "query": "row to_long(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_long(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_long(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_long(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_long(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_long(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [to_long] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_long(booleanField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(cartesianPointField) > 0", - "error": [ - "Argument of [to_long] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_long(counterIntegerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(counterLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(dateField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(keywordField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(textField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_long(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(cartesianPointField)", - "error": [ - "Argument of [to_long] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(*)", - "error": [ - "Using wildcards (*) in to_long is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_long(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(booleanField, extraArg)", - "error": [ - "Error: [to_long] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_long(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_long(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_long(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_lower(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_lower(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_lower(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_lower(true)", - "error": [ - "Argument of [to_lower] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_lower(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_lower(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_lower(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_lower(booleanField)", - "error": [ - "Argument of [to_lower] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_lower(*)", - "error": [ - "Using wildcards (*) in to_lower is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_lower(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_lower(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_lower(keywordField, extraArg)", - "error": [ - "Error: [to_lower] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_lower(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_lower(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_lower(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_radians(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_radians(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_radians(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_radians(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_radians(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_radians(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_radians(true)", - "error": [ - "Argument of [to_radians] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_radians(doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_radians(booleanField) > 0", - "error": [ - "Argument of [to_radians] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_radians(integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_radians(longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where to_radians(unsignedLongField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_radians(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_radians(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_radians(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_radians(booleanField)", - "error": [ - "Argument of [to_radians] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_radians(*)", - "error": [ - "Using wildcards (*) in to_radians is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_radians(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_radians(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_radians(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_radians(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_radians(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_radians(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_radians(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_radians(doubleField, extraArg)", - "error": [ - "Error: [to_radians] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_radians(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_radians(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_radians(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(true)", - "error": [], - "warning": [] - }, - { - "query": "row to_unsigned_long(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ul(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ulong(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_unsigned_long(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ul(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ulong(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_unsigned_long(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ul(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ulong(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_unsigned_long(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ul(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ulong(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_unsigned_long(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ul(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ulong(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_unsigned_long(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [ - "Argument of [to_unsigned_long] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(booleanField) > 0", - "error": [ - "Argument of [>] must be [double], found value [to_unsigned_long(booleanField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(cartesianPointField) > 0", - "error": [ - "Argument of [to_unsigned_long] must be [boolean], found value [cartesianPointField] type [cartesian_point]", - "Argument of [>] must be [double], found value [to_unsigned_long(cartesianPointField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(dateField) > 0", - "error": [ - "Argument of [>] must be [double], found value [to_unsigned_long(dateField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(doubleField) > 0", - "error": [ - "Argument of [>] must be [double], found value [to_unsigned_long(doubleField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(integerField) > 0", - "error": [ - "Argument of [>] must be [double], found value [to_unsigned_long(integerField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(keywordField) > 0", - "error": [ - "Argument of [>] must be [double], found value [to_unsigned_long(keywordField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(longField) > 0", - "error": [ - "Argument of [>] must be [double], found value [to_unsigned_long(longField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(textField) > 0", - "error": [ - "Argument of [>] must be [double], found value [to_unsigned_long(textField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | where to_unsigned_long(unsignedLongField) > 0", - "error": [ - "Argument of [>] must be [double], found value [to_unsigned_long(unsignedLongField)] type [unsigned_long]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ul(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ulong(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(cartesianPointField)", - "error": [ - "Argument of [to_unsigned_long] must be [boolean], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(*)", - "error": [ - "Using wildcards (*) in to_unsigned_long is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ul(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ulong(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ul(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ulong(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ul(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ulong(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ul(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ulong(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ul(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ulong(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ul(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ulong(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_unsigned_long(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ul(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ulong(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(booleanField, extraArg)", - "error": [ - "Error: [to_unsigned_long] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_unsigned_long(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_unsigned_long(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_unsigned_long(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_upper(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_upper(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_upper(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_upper(true)", - "error": [ - "Argument of [to_upper] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_upper(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_upper(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_upper(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_upper(booleanField)", - "error": [ - "Argument of [to_upper] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_upper(*)", - "error": [ - "Using wildcards (*) in to_upper is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_upper(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_upper(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_upper(keywordField, extraArg)", - "error": [ - "Error: [to_upper] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_upper(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_upper(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_upper(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_version(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_version(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ver(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_version(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_version(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_ver(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_version(true)", - "error": [ - "Argument of [to_version] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_version(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_version(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ver(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_version(*)", - "error": [ - "Using wildcards (*) in to_version is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_version(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_version(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ver(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_version(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_version(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_ver(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_version(keywordField, extraArg)", - "error": [ - "Error: [to_version] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_version(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_version(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_version(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = trim(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row trim(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = trim(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = trim(true)", - "error": [ - "Argument of [trim] must be [keyword], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = trim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval trim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = trim(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval trim(booleanField)", - "error": [ - "Argument of [trim] must be [keyword], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = trim(*)", - "error": [ - "Using wildcards (*) in trim is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = trim(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval trim(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval trim(keywordField, extraArg)", - "error": [ - "Error: [trim] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort trim(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval trim(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval trim(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = case(true, \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row case(true, \"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = case(to_cartesianpoint(\"POINT (30 10)\"), true)", - "error": [ - "Argument of [case] must be [boolean], found value [to_cartesianpoint(\"POINT (30 10)\")] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = case(booleanField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval case(booleanField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort case(booleanField, textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval case(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval case(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(integerField)) + avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(integerField)) + avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(booleanField)", - "error": [ - "Argument of [avg] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(*)", - "error": [ - "Using wildcards (*) in avg is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(counterIntegerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(counterIntegerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(counterIntegerField)) + avg(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(counterIntegerField)) + avg(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(counterIntegerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(counterIntegerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterIntegerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterIntegerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterIntegerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterIntegerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(doubleField)) + avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(doubleField)) + avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(unsignedLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(unsignedLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(unsignedLongField)) + avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(unsignedLongField)) + avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(unsignedLongField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(unsignedLongField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(unsignedLongField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(unsignedLongField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(unsignedLongField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(unsignedLongField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(longField)) + avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(longField)) + avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(counterLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(counterLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(counterLongField)) + avg(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(counterLongField)) + avg(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(counterLongField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(counterLongField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterLongField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterLongField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterLongField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterLongField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = avg(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(avg(counterDoubleField)) + avg(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(avg(counterDoubleField)) + avg(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(counterDoubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = avg(counterDoubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterDoubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterDoubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), avg(counterDoubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = avg(counterDoubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort avg(integerField)", - "error": [ - "SORT does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(integerField)", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(integerField) > 0", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(counterIntegerField)", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(counterIntegerField) > 0", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(doubleField)", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(doubleField) > 0", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(unsignedLongField)", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(unsignedLongField) > 0", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(longField)", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(longField) > 0", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(counterLongField)", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(counterLongField) > 0", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(counterDoubleField)", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | where avg(counterDoubleField) > 0", - "error": [ - "WHERE does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(integerField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(integerField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(integerField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(integerField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(counterIntegerField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(counterIntegerField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(counterIntegerField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(counterIntegerField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(doubleField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(doubleField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(doubleField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(doubleField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(unsignedLongField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(unsignedLongField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(unsignedLongField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(unsignedLongField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(longField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(longField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(longField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(longField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(counterLongField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(counterLongField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(counterLongField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(counterLongField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(counterDoubleField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = avg(counterDoubleField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(counterDoubleField)", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval avg(counterDoubleField) > 0", - "error": [ - "EVAL does not support function avg" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats avg(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(integerField)) + sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(integerField)) + sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats sum(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats sum(booleanField)", - "error": [ - "Argument of [sum] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(*)", - "error": [ - "Using wildcards (*) in sum is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(counterIntegerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(counterIntegerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(counterIntegerField)) + sum(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(counterIntegerField)) + sum(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(counterIntegerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(counterIntegerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterIntegerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterIntegerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterIntegerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterIntegerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(doubleField)) + sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(doubleField)) + sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(unsignedLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(unsignedLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(unsignedLongField)) + sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(unsignedLongField)) + sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(unsignedLongField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(unsignedLongField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(unsignedLongField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(unsignedLongField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(unsignedLongField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(unsignedLongField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(longField)) + sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(longField)) + sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(counterLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(counterLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(counterLongField)) + sum(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(counterLongField)) + sum(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(counterLongField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(counterLongField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterLongField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterLongField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterLongField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterLongField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = sum(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(sum(counterDoubleField)) + sum(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(sum(counterDoubleField)) + sum(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats sum(counterDoubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = sum(counterDoubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterDoubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterDoubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), sum(counterDoubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = sum(counterDoubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort sum(integerField)", - "error": [ - "SORT does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(integerField)", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(integerField) > 0", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(counterIntegerField)", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(counterIntegerField) > 0", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(doubleField)", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(doubleField) > 0", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(unsignedLongField)", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(unsignedLongField) > 0", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(longField)", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(longField) > 0", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(counterLongField)", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(counterLongField) > 0", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(counterDoubleField)", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | where sum(counterDoubleField) > 0", - "error": [ - "WHERE does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(integerField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(integerField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(integerField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(integerField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(counterIntegerField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(counterIntegerField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(counterIntegerField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(counterIntegerField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(doubleField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(doubleField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(doubleField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(doubleField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(unsignedLongField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(unsignedLongField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(unsignedLongField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(unsignedLongField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(longField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(longField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(longField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(longField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(counterLongField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(counterLongField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(counterLongField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(counterLongField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(counterDoubleField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = sum(counterDoubleField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(counterDoubleField)", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | eval sum(counterDoubleField) > 0", - "error": [ - "EVAL does not support function sum" - ], - "warning": [] - }, - { - "query": "from a_index | stats sum(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats sum(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(integerField)) + median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(integerField)) + median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats median(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats median(booleanField)", - "error": [ - "Argument of [median] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = median(*)", - "error": [ - "Using wildcards (*) in median is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = median(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(counterIntegerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(counterIntegerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(counterIntegerField)) + median(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(counterIntegerField)) + median(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(counterIntegerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(counterIntegerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterIntegerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterIntegerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterIntegerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterIntegerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(doubleField)) + median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(doubleField)) + median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(unsignedLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(unsignedLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(unsignedLongField)) + median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(unsignedLongField)) + median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(unsignedLongField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(unsignedLongField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(unsignedLongField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(unsignedLongField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(unsignedLongField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(unsignedLongField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(longField)) + median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(longField)) + median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(counterLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(counterLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(counterLongField)) + median(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(counterLongField)) + median(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(counterLongField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(counterLongField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterLongField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterLongField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterLongField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterLongField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median(counterDoubleField)) + median(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median(counterDoubleField)) + median(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median(counterDoubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median(counterDoubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterDoubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterDoubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median(counterDoubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median(counterDoubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort median(integerField)", - "error": [ - "SORT does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(integerField)", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(integerField) > 0", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(counterIntegerField)", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(counterIntegerField) > 0", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(doubleField)", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(doubleField) > 0", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(unsignedLongField)", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(unsignedLongField) > 0", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(longField)", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(longField) > 0", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(counterLongField)", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(counterLongField) > 0", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(counterDoubleField)", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | where median(counterDoubleField) > 0", - "error": [ - "WHERE does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(integerField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(integerField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(integerField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(integerField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(counterIntegerField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(counterIntegerField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(counterIntegerField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(counterIntegerField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(doubleField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(doubleField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(doubleField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(doubleField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(unsignedLongField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(unsignedLongField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(unsignedLongField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(unsignedLongField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(longField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(longField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(longField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(longField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(counterLongField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(counterLongField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(counterLongField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(counterLongField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(counterDoubleField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median(counterDoubleField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(counterDoubleField)", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | eval median(counterDoubleField) > 0", - "error": [ - "EVAL does not support function median" - ], - "warning": [] - }, - { - "query": "from a_index | stats median(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats median(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(integerField)) + median_absolute_deviation(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(integerField)) + median_absolute_deviation(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(booleanField)", - "error": [ - "Argument of [median_absolute_deviation] must be [integer], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(*)", - "error": [ - "Using wildcards (*) in median_absolute_deviation is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(counterIntegerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(counterIntegerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(counterIntegerField)) + median_absolute_deviation(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(counterIntegerField)) + median_absolute_deviation(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterIntegerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(counterIntegerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(counterIntegerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterIntegerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterIntegerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterIntegerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterIntegerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(doubleField)) + median_absolute_deviation(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(doubleField)) + median_absolute_deviation(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(unsignedLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(unsignedLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(unsignedLongField)) + median_absolute_deviation(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(unsignedLongField)) + median_absolute_deviation(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(unsignedLongField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(unsignedLongField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(unsignedLongField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(unsignedLongField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(unsignedLongField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(unsignedLongField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(longField)) + median_absolute_deviation(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(longField)) + median_absolute_deviation(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(counterLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(counterLongField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(counterLongField)) + median_absolute_deviation(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(counterLongField)) + median_absolute_deviation(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(counterLongField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(counterLongField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterLongField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterLongField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterLongField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterLongField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = median_absolute_deviation(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(median_absolute_deviation(counterDoubleField)) + median_absolute_deviation(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(median_absolute_deviation(counterDoubleField)) + median_absolute_deviation(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(counterDoubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = median_absolute_deviation(counterDoubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterDoubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterDoubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), median_absolute_deviation(counterDoubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = median_absolute_deviation(counterDoubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort median_absolute_deviation(integerField)", - "error": [ - "SORT does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(integerField)", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(integerField) > 0", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(counterIntegerField)", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(counterIntegerField) > 0", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(doubleField)", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(doubleField) > 0", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(unsignedLongField)", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(unsignedLongField) > 0", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(longField)", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(longField) > 0", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(counterLongField)", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(counterLongField) > 0", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(counterDoubleField)", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | where median_absolute_deviation(counterDoubleField) > 0", - "error": [ - "WHERE does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(integerField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(integerField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(integerField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(integerField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(counterIntegerField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(counterIntegerField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(counterIntegerField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(counterIntegerField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(doubleField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(doubleField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(doubleField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(doubleField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(unsignedLongField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(unsignedLongField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(unsignedLongField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(unsignedLongField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(longField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(longField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(longField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(longField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(counterLongField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(counterLongField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(counterLongField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(counterLongField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(counterDoubleField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = median_absolute_deviation(counterDoubleField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(counterDoubleField)", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | eval median_absolute_deviation(counterDoubleField) > 0", - "error": [ - "EVAL does not support function median_absolute_deviation" - ], - "warning": [] - }, - { - "query": "from a_index | stats median_absolute_deviation(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats median_absolute_deviation(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(max(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(max(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(max(doubleField)) + max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(max(doubleField)) + max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = max(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = max(doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = max(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats max(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats max(cartesianPointField)", - "error": [ - "Argument of [max] must be [double], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = max(*)", - "error": [ - "Using wildcards (*) in max is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(max(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(max(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(max(longField)) + max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(max(longField)) + max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = max(longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(max(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(max(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(max(integerField)) + max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(max(integerField)) + max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = max(integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), max(integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = max(integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = max(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = max(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = max(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort max(doubleField)", - "error": [ - "SORT does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(doubleField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(doubleField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(longField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(longField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(integerField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(integerField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(dateField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(dateField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(booleanField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(booleanField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(ipField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(ipField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(doubleField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(doubleField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(doubleField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(doubleField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(longField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(longField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(longField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(longField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(integerField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(integerField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(integerField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(integerField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(dateField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(dateField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(dateField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(dateField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(booleanField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(booleanField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(booleanField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(booleanField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(ipField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(ipField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(ipField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(ipField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | stats max(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats max(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = max(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where max(textField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(textField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(textField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(textField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(textField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(textField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = max(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = max(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats max(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where max(versionField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(versionField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(keywordField)", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | where max(keywordField) > 0", - "error": [ - "WHERE does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(versionField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(versionField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(versionField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(versionField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(keywordField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = max(keywordField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(keywordField)", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | eval max(keywordField) > 0", - "error": [ - "EVAL does not support function max" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(min(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(min(doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(min(doubleField)) + min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(min(doubleField)) + min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = min(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = min(doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = min(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats min(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats min(cartesianPointField)", - "error": [ - "Argument of [min] must be [double], found value [cartesianPointField] type [cartesian_point]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = min(*)", - "error": [ - "Using wildcards (*) in min is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(min(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(min(longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(min(longField)) + min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(min(longField)) + min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = min(longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(min(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(min(integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(min(integerField)) + min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(min(integerField)) + min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = min(integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), min(integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = min(integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = min(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = min(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = min(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort min(doubleField)", - "error": [ - "SORT does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(doubleField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(doubleField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(longField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(longField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(integerField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(integerField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(dateField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(dateField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(booleanField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(booleanField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(ipField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(ipField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(doubleField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(doubleField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(doubleField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(doubleField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(longField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(longField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(longField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(longField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(integerField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(integerField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(integerField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(integerField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(dateField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(dateField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(dateField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(dateField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(booleanField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(booleanField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(booleanField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(booleanField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(ipField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(ipField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(ipField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(ipField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | stats min(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats min(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = min(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where min(textField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(textField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(textField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(textField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(textField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(textField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = min(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = min(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats min(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where min(versionField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(versionField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(keywordField)", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | where min(keywordField) > 0", - "error": [ - "WHERE does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(versionField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(versionField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(versionField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(versionField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(keywordField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = min(keywordField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(keywordField)", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | eval min(keywordField) > 0", - "error": [ - "EVAL does not support function min" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = count(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats count(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(count(textField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(count(textField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(count(textField)) + count(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(count(textField)) + count(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort count(textField)", - "error": [ - "SORT does not support function count" - ], - "warning": [] - }, - { - "query": "from a_index | where count(textField)", - "error": [ - "WHERE does not support function count" - ], - "warning": [] - }, - { - "query": "from a_index | where count(textField) > 0", - "error": [ - "WHERE does not support function count" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = count(textField)", - "error": [ - "EVAL does not support function count" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = count(textField) > 0", - "error": [ - "EVAL does not support function count" - ], - "warning": [] - }, - { - "query": "from a_index | eval count(textField)", - "error": [ - "EVAL does not support function count" - ], - "warning": [] - }, - { - "query": "from a_index | eval count(textField) > 0", - "error": [ - "EVAL does not support function count" - ], - "warning": [] - }, - { - "query": "from a_index | stats count(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats count(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats count_distinct(null, null, null, null, null, null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats count_distinct(nullVar, nullVar, nullVar, nullVar, nullVar, nullVar, nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)) + count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)) + count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)", - "error": [ - "SORT does not support function count_distinct" - ], - "warning": [] - }, - { - "query": "from a_index | where count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)", - "error": [ - "WHERE does not support function count_distinct" - ], - "warning": [] - }, - { - "query": "from a_index | where count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField) > 0", - "error": [ - "WHERE does not support function count_distinct" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)", - "error": [ - "EVAL does not support function count_distinct" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField) > 0", - "error": [ - "EVAL does not support function count_distinct" - ], - "warning": [] - }, - { - "query": "from a_index | eval count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField)", - "error": [ - "EVAL does not support function count_distinct" - ], - "warning": [] - }, - { - "query": "from a_index | eval count_distinct(textField, integerField, counterIntegerField, doubleField, unsignedLongField, longField, counterLongField, counterDoubleField) > 0", - "error": [ - "EVAL does not support function count_distinct" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = st_centroid_agg(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats st_centroid_agg(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = st_centroid_agg(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats st_centroid_agg(avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats st_centroid_agg(booleanField)", - "error": [ - "Argument of [st_centroid_agg] must be [cartesian_point], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = st_centroid_agg(*)", - "error": [ - "Using wildcards (*) in st_centroid_agg is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = st_centroid_agg(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats st_centroid_agg(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort st_centroid_agg(cartesianPointField)", - "error": [ - "SORT does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | where st_centroid_agg(cartesianPointField)", - "error": [ - "WHERE does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | where st_centroid_agg(cartesianPointField) > 0", - "error": [ - "WHERE does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | where st_centroid_agg(geoPointField)", - "error": [ - "WHERE does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | where st_centroid_agg(geoPointField) > 0", - "error": [ - "WHERE does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_centroid_agg(cartesianPointField)", - "error": [ - "EVAL does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_centroid_agg(cartesianPointField) > 0", - "error": [ - "EVAL does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | eval st_centroid_agg(cartesianPointField)", - "error": [ - "EVAL does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | eval st_centroid_agg(cartesianPointField) > 0", - "error": [ - "EVAL does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_centroid_agg(geoPointField)", - "error": [ - "EVAL does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = st_centroid_agg(geoPointField) > 0", - "error": [ - "EVAL does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | eval st_centroid_agg(geoPointField)", - "error": [ - "EVAL does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | eval st_centroid_agg(geoPointField) > 0", - "error": [ - "EVAL does not support function st_centroid_agg" - ], - "warning": [] - }, - { - "query": "from a_index | stats st_centroid_agg(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats st_centroid_agg(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = values(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats values(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | sort values(textField)", - "error": [ - "SORT does not support function values" - ], - "warning": [] - }, - { - "query": "from a_index | where values(textField)", - "error": [ - "WHERE does not support function values" - ], - "warning": [] - }, - { - "query": "from a_index | where values(textField) > 0", - "error": [ - "WHERE does not support function values" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = values(textField)", - "error": [ - "EVAL does not support function values" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = values(textField) > 0", - "error": [ - "EVAL does not support function values" - ], - "warning": [] - }, - { - "query": "from a_index | eval values(textField)", - "error": [ - "EVAL does not support function values" - ], - "warning": [] - }, - { - "query": "from a_index | eval values(textField) > 0", - "error": [ - "EVAL does not support function values" - ], - "warning": [] - }, - { - "query": "from a_index | stats values(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats values(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = top(textField, integerField, textField)", - "error": [ - "Argument of [=] must be a constant, received [top(textField,integerField,textField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats top(textField, integerField, textField)", - "error": [ - "Argument of [top] must be a constant, received [integerField]", - "Argument of [top] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | sort top(textField, integerField, textField)", - "error": [ - "SORT does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | where top(textField, integerField, textField)", - "error": [ - "WHERE does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | where top(textField, integerField, textField) > 0", - "error": [ - "WHERE does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = top(textField, integerField, textField)", - "error": [ - "EVAL does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = top(textField, integerField, textField) > 0", - "error": [ - "EVAL does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | eval top(textField, integerField, textField)", - "error": [ - "EVAL does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | eval top(textField, integerField, textField) > 0", - "error": [ - "EVAL does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | stats top(null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats top(nullVar, nullVar, nullVar)", - "error": [ - "Argument of [top] must be a constant, received [nullVar]", - "Argument of [top] must be a constant, received [nullVar]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = top(textField, integerField, \"asc\")", - "error": [ - "Argument of [=] must be a constant, received [top(textField,integerField,\"asc\")]" - ], - "warning": [] - }, - { - "query": "from a_index | stats top(textField, integerField, \"asc\")", - "error": [ - "Argument of [top] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | sort top(textField, integerField, \"asc\")", - "error": [ - "SORT does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | where top(textField, integerField, \"asc\")", - "error": [ - "WHERE does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | where top(textField, integerField, \"asc\") > 0", - "error": [ - "WHERE does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = top(textField, integerField, \"asc\")", - "error": [ - "EVAL does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = top(textField, integerField, \"asc\") > 0", - "error": [ - "EVAL does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | eval top(textField, integerField, \"asc\")", - "error": [ - "EVAL does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | eval top(textField, integerField, \"asc\") > 0", - "error": [ - "EVAL does not support function top" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(doubleField, doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(doubleField, doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(doubleField, doubleField)) + weighted_avg(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(doubleField, doubleField)) + weighted_avg(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField / 2, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField / 2, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField / 2, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField / 2, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField, doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField, doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(avg(integerField), avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]", - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(avg(integerField), avg(integerField))", - "error": [ - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]", - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(booleanField, booleanField)", - "error": [ - "Argument of [weighted_avg] must be [double], found value [booleanField] type [boolean]", - "Argument of [weighted_avg] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | sort weighted_avg(doubleField, doubleField)", - "error": [ - "SORT does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(doubleField, doubleField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(doubleField, doubleField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(doubleField, doubleField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(doubleField, doubleField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(doubleField, doubleField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(doubleField, doubleField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats weighted_avg(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(doubleField, longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(doubleField, longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(doubleField, longField)) + weighted_avg(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(doubleField, longField)) + weighted_avg(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField / 2, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField / 2, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField / 2, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField / 2, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField, longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField, longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(doubleField, integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(doubleField, integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(doubleField, integerField)) + weighted_avg(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(doubleField, integerField)) + weighted_avg(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField / 2, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField / 2, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField / 2, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField / 2, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(doubleField, integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(doubleField, integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(doubleField, integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(doubleField, integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(longField, doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(longField, doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(longField, doubleField)) + weighted_avg(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(longField, doubleField)) + weighted_avg(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(longField, doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(longField, doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(longField, longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(longField, longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(longField, longField)) + weighted_avg(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(longField, longField)) + weighted_avg(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(longField, longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(longField, longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(longField, integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(longField, integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(longField, integerField)) + weighted_avg(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(longField, integerField)) + weighted_avg(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(longField, integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(longField, integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(longField, integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(longField, integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(integerField, doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(integerField, doubleField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(integerField, doubleField)) + weighted_avg(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(integerField, doubleField)) + weighted_avg(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(integerField, doubleField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(integerField, doubleField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, doubleField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, doubleField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, doubleField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(integerField, longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(integerField, longField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(integerField, longField)) + weighted_avg(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(integerField, longField)) + weighted_avg(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(integerField, longField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(integerField, longField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, longField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, longField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, longField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = weighted_avg(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(integerField, integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(integerField, integerField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var = round(weighted_avg(integerField, integerField)) + weighted_avg(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats round(weighted_avg(integerField, integerField)) + weighted_avg(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats weighted_avg(integerField, integerField) by round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats var0 = weighted_avg(integerField, integerField) by var1 = round(doubleField / 2)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, integerField) by round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, integerField) by var1 = round(doubleField / 2), ipField", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), weighted_avg(integerField, integerField) by round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = weighted_avg(integerField, integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(doubleField, longField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(doubleField, longField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(doubleField, integerField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(doubleField, integerField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(longField, doubleField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(longField, doubleField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(longField, longField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(longField, longField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(longField, integerField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(longField, integerField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(integerField, doubleField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(integerField, doubleField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(integerField, longField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(integerField, longField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(integerField, integerField)", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | where weighted_avg(integerField, integerField) > 0", - "error": [ - "WHERE does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(doubleField, longField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(doubleField, longField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(doubleField, longField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(doubleField, longField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(doubleField, integerField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(doubleField, integerField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(doubleField, integerField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(doubleField, integerField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(longField, doubleField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(longField, doubleField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(longField, doubleField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(longField, doubleField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(longField, longField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(longField, longField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(longField, longField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(longField, longField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(longField, integerField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(longField, integerField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(longField, integerField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(longField, integerField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(integerField, doubleField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(integerField, doubleField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(integerField, doubleField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(integerField, doubleField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(integerField, longField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(integerField, longField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(integerField, longField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(integerField, longField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(integerField, integerField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = weighted_avg(integerField, integerField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(integerField, integerField)", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | eval weighted_avg(integerField, integerField) > 0", - "error": [ - "EVAL does not support function weighted_avg" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(dateField, 1 year)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats by bin(dateField, 1 year)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(dateField, integerField, textField, textField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [textField]", - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(dateField, integerField, textField, textField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [textField]", - "Argument of [bin] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(dateField, integerField, dateField, dateField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [dateField]", - "Argument of [bucket] must be a constant, received [dateField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(dateField, integerField, dateField, dateField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [dateField]", - "Argument of [bin] must be a constant, received [dateField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(dateField, integerField, textField, dateField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [textField]", - "Argument of [bucket] must be a constant, received [dateField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(dateField, integerField, textField, dateField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [textField]", - "Argument of [bin] must be a constant, received [dateField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(dateField, integerField, dateField, textField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [dateField]", - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(dateField, integerField, dateField, textField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [dateField]", - "Argument of [bin] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, integerField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, integerField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | sort bucket(dateField, 1 year)", - "error": [ - "SORT does not support function bucket" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(null, null, null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats bucket(nullVar, nullVar, nullVar, nullVar)", - "error": [ - "Argument of [bucket] must be a constant, received [nullVar]", - "Argument of [bucket] must be a constant, received [nullVar]", - "Argument of [bucket] must be a constant, received [nullVar]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(\"2022\", 1 year)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | stats bucket(concat(\"20\", \"22\"), 1 year)", - "error": [ - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(\"2022\", integerField, textField, textField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [textField]", - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(concat(\"20\", \"22\"), integerField, textField, textField)", - "error": [ - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [textField]", - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(\"2022\", integerField, \"2022\", \"2022\")", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(concat(\"20\", \"22\"), integerField, concat(\"20\", \"22\"), concat(\"20\", \"22\"))", - "error": [ - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(\"2022\", integerField, textField, \"2022\")", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(concat(\"20\", \"22\"), integerField, textField, concat(\"20\", \"22\"))", - "error": [ - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [textField]", - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(\"2022\", integerField, \"2022\", textField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(concat(\"20\", \"22\"), integerField, concat(\"20\", \"22\"), textField)", - "error": [ - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(dateField, integerField, now(), now())", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(dateField, integerField, now(), now())", - "error": [ - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, doubleField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, doubleField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, doubleField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, doubleField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, doubleField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, doubleField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, integerField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, integerField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, integerField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, integerField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, integerField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, integerField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, longField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, longField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, longField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, longField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(doubleField, integerField, longField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(doubleField, integerField, longField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, doubleField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, doubleField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, doubleField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, doubleField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, doubleField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, doubleField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, integerField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, integerField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, integerField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, integerField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, longField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, longField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, longField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, longField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(integerField, integerField, longField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(integerField, integerField, longField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, doubleField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, doubleField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, doubleField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, doubleField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, doubleField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, doubleField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, integerField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, integerField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, integerField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, integerField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, integerField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, integerField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, longField, doubleField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, longField, doubleField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, longField, integerField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, longField, integerField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(longField, integerField, longField, longField)", - "error": [ - "Argument of [bucket] must be a constant, received [integerField]", - "Argument of [bucket] must be a constant, received [longField]", - "Argument of [bucket] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(longField, integerField, longField, longField)", - "error": [ - "Argument of [bin] must be a constant, received [integerField]", - "Argument of [bin] must be a constant, received [longField]", - "Argument of [bin] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bucket(dateField, textField)", - "error": [ - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats by bin(dateField, textField)", - "error": [ - "Argument of [bin] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | sort bucket(dateField, textField)", - "error": [ - "SORT does not support function bucket" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(\"2022\", textField)", - "error": [ - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats bucket(concat(\"20\", \"22\"), textField)", - "error": [ - "Argument of [bucket] must be [date], found value [concat(\"20\",\"22\")] type [keyword]", - "Argument of [bucket] must be a constant, received [textField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(doubleField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField, doubleField)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(doubleField, doubleField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(doubleField,doubleField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(doubleField, doubleField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(doubleField, doubleField)) + percentile(doubleField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(doubleField,doubleField))+percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(doubleField, doubleField)) + percentile(doubleField, doubleField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(doubleField,doubleField))]", - "Argument of [+] must be a constant, received [percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField / 2, doubleField)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField / 2, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField/2,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField / 2, doubleField)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField / 2, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField/2,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, doubleField)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField, doubleField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField, doubleField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, doubleField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, doubleField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, doubleField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(avg(integerField), avg(integerField))", - "error": [ - "Argument of [=] must be a constant, received [percentile(avg(integerField),avg(integerField))]", - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(avg(integerField), avg(integerField))", - "error": [ - "Argument of [percentile] must be a constant, received [avg(integerField)]", - "Aggregate function's parameters must be an attribute, literal or a non-aggregation function; found [avg(integerField)] of type [double]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(booleanField, )", - "error": [ - "SyntaxError: no viable alternative at input 'percentile(booleanField, )'", - "SyntaxError: mismatched input ')' expecting {QUOTED_STRING, INTEGER_LITERAL, DECIMAL_LITERAL, 'false', '(', 'not', 'null', '?', 'true', '+', '-', NAMED_OR_POSITIONAL_PARAM, OPENING_BRACKET, UNQUOTED_IDENTIFIER, QUOTED_IDENTIFIER}", - "At least one aggregation or grouping expression required in [STATS]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(doubleField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField, longField)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(doubleField, longField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(doubleField,longField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(doubleField, longField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(doubleField, longField)) + percentile(doubleField, longField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(doubleField,longField))+percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(doubleField, longField)) + percentile(doubleField, longField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(doubleField,longField))]", - "Argument of [+] must be a constant, received [percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField / 2, longField)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField / 2, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField/2,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField / 2, longField)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField / 2, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField/2,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, longField)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField, longField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField, longField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, longField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, longField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, longField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(doubleField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField, integerField)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(doubleField, integerField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(doubleField,integerField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(doubleField, integerField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(doubleField, integerField)) + percentile(doubleField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(doubleField,integerField))+percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(doubleField, integerField)) + percentile(doubleField, integerField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(doubleField,integerField))]", - "Argument of [+] must be a constant, received [percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField / 2, integerField)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField / 2, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField/2,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField / 2, integerField)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField / 2, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField/2,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, integerField)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(doubleField, integerField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(doubleField, integerField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, integerField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, integerField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(doubleField, integerField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(doubleField, integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(doubleField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(longField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(longField, doubleField)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(longField, doubleField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(longField,doubleField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(longField, doubleField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(longField, doubleField)) + percentile(longField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(longField,doubleField))+percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(longField, doubleField)) + percentile(longField, doubleField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(longField,doubleField))]", - "Argument of [+] must be a constant, received [percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(longField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, doubleField)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(longField, doubleField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(longField, doubleField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, doubleField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, doubleField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, doubleField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(longField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(longField, longField)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(longField, longField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(longField,longField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(longField, longField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(longField, longField)) + percentile(longField, longField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(longField,longField))+percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(longField, longField)) + percentile(longField, longField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(longField,longField))]", - "Argument of [+] must be a constant, received [percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(longField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, longField)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(longField, longField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(longField, longField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, longField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, longField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, longField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(longField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(longField, integerField)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(longField, integerField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(longField,integerField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(longField, integerField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(longField, integerField)) + percentile(longField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(longField,integerField))+percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(longField, integerField)) + percentile(longField, integerField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(longField,integerField))]", - "Argument of [+] must be a constant, received [percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(longField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, integerField)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(longField, integerField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(longField, integerField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, integerField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, integerField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(longField, integerField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(longField, integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(longField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(integerField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(integerField, doubleField)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(integerField, doubleField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(integerField,doubleField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(integerField, doubleField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(integerField, doubleField)) + percentile(integerField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(integerField,doubleField))+percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(integerField, doubleField)) + percentile(integerField, doubleField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(integerField,doubleField))]", - "Argument of [+] must be a constant, received [percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(integerField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, doubleField)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, doubleField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(integerField, doubleField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(integerField, doubleField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, doubleField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, doubleField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, doubleField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [doubleField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, doubleField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,doubleField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(integerField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(integerField, longField)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(integerField, longField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(integerField,longField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(integerField, longField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(integerField, longField)) + percentile(integerField, longField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(integerField,longField))+percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(integerField, longField)) + percentile(integerField, longField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(integerField,longField))]", - "Argument of [+] must be a constant, received [percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(integerField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, longField)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, longField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(integerField, longField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(integerField, longField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, longField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, longField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, longField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [longField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, longField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,longField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = percentile(integerField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(integerField, integerField)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(integerField, integerField))", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(integerField,integerField))]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(integerField, integerField))", - "error": [ - "Argument of [round] must be a constant, received [percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var = round(percentile(integerField, integerField)) + percentile(integerField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [round(percentile(integerField,integerField))+percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats round(percentile(integerField, integerField)) + percentile(integerField, integerField)", - "error": [ - "Argument of [+] must be a constant, received [round(percentile(integerField,integerField))]", - "Argument of [+] must be a constant, received [percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(integerField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, integerField)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, integerField)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(integerField, integerField) by round(doubleField / 2)", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats var0 = percentile(integerField, integerField) by var1 = round(doubleField / 2)", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, integerField) by round(doubleField / 2), ipField", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, integerField) by var1 = round(doubleField / 2), ipField", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), percentile(integerField, integerField) by round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [percentile] must be a constant, received [integerField]" - ], - "warning": [] - }, - { - "query": "from a_index | stats avg(doubleField), var0 = percentile(integerField, integerField) by var1 = round(doubleField / 2), doubleField / 2", - "error": [ - "Argument of [=] must be a constant, received [percentile(integerField,integerField)]" - ], - "warning": [] - }, - { - "query": "from a_index | sort percentile(doubleField, doubleField)", - "error": [ - "SORT does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(doubleField, doubleField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(doubleField, doubleField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(doubleField, longField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(doubleField, longField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(doubleField, integerField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(doubleField, integerField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(longField, doubleField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(longField, doubleField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(longField, longField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(longField, longField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(longField, integerField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(longField, integerField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(integerField, doubleField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(integerField, doubleField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(integerField, longField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(integerField, longField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(integerField, integerField)", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | where percentile(integerField, integerField) > 0", - "error": [ - "WHERE does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(doubleField, doubleField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(doubleField, doubleField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(doubleField, doubleField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(doubleField, doubleField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(doubleField, longField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(doubleField, longField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(doubleField, longField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(doubleField, longField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(doubleField, integerField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(doubleField, integerField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(doubleField, integerField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(doubleField, integerField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(longField, doubleField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(longField, doubleField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(longField, doubleField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(longField, doubleField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(longField, longField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(longField, longField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(longField, longField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(longField, longField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(longField, integerField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(longField, integerField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(longField, integerField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(longField, integerField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(integerField, doubleField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(integerField, doubleField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(integerField, doubleField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(integerField, doubleField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(integerField, longField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(integerField, longField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(integerField, longField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(integerField, longField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(integerField, integerField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = percentile(integerField, integerField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(integerField, integerField)", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | eval percentile(integerField, integerField) > 0", - "error": [ - "EVAL does not support function percentile" - ], - "warning": [] - }, - { - "query": "from a_index | stats percentile(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | stats percentile(nullVar, nullVar)", - "error": [ - "Argument of [percentile] must be a constant, received [nullVar]" - ], - "warning": [] - }, - { - "query": "row var = to_string(true)", - "error": [], - "warning": [] - }, - { - "query": "row to_string(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(true)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_boolean(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row to_string(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_str(cartesianPointField)", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_string(to_cartesianpoint(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_string(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_string(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(to_cartesianshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_cartesianshape(cartesianPointField))", - "error": [ - "Unknown column [cartesianPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_string(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_string(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(to_datetime(\"2021-01-01T00:00:00Z\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_datetime(to_datetime(\"2021-01-01T00:00:00Z\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row to_string(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row to_string(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_str(geoPointField)", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_string(to_geopoint(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_string(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_string(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(to_geoshape(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_geoshape(geoPointField))", - "error": [ - "Unknown column [geoPointField]" - ], - "warning": [] - }, - { - "query": "row var = to_string(5)", - "error": [], - "warning": [] - }, - { - "query": "row to_string(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(5)", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_string(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(to_ip(\"127.0.0.1\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_ip(to_ip(\"127.0.0.1\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row to_string(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(\"a\")", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_string(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_string(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(to_version(\"1.0.0\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_version(\"a\"))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_boolean(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(counterDoubleField)", - "error": [ - "Argument of [to_string] must be [boolean], found value [counterDoubleField] type [counter_double]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(*)", - "error": [ - "Using wildcards (*) in to_string is not allowed" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(cartesianPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_cartesianpoint(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(cartesianShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_cartesianshape(cartesianPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(dateField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_datetime(dateField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(geoPointField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_geopoint(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(geoShapeField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_geoshape(geoPointField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(ipField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_ip(ipField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(keywordField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_string(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(textField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(unsignedLongField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_str(versionField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = to_string(to_version(keywordField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(booleanField, extraArg)", - "error": [ - "Error: [to_string] function expects exactly one argument, got 2." - ], - "warning": [] - }, - { - "query": "from a_index | sort to_string(booleanField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval to_string(nullVar)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(\"2022\")", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval to_string(concat(\"20\", \"22\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_string(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(to_cartesianpoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_cartesianpoint(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_cartesianshape(to_cartesianpoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row to_string(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_str(to_geopoint(\"POINT (30 10)\"))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_geopoint(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = to_string(to_geoshape(to_geopoint(\"POINT (30 10)\")))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_pseries_weighted_sum(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_pseries_weighted_sum(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_pseries_weighted_sum(to_double(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_pseries_weighted_sum(true, true)", - "error": [ - "Argument of [mv_pseries_weighted_sum] must be [double], found value [true] type [boolean]", - "Argument of [mv_pseries_weighted_sum] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_pseries_weighted_sum(doubleField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_pseries_weighted_sum(booleanField, booleanField) > 0", - "error": [ - "Argument of [mv_pseries_weighted_sum] must be [double], found value [booleanField] type [boolean]", - "Argument of [mv_pseries_weighted_sum] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_pseries_weighted_sum(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_pseries_weighted_sum(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_pseries_weighted_sum(to_double(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_pseries_weighted_sum(booleanField, booleanField)", - "error": [ - "Argument of [mv_pseries_weighted_sum] must be [double], found value [booleanField] type [boolean]", - "Argument of [mv_pseries_weighted_sum] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval mv_pseries_weighted_sum(doubleField, doubleField, extraArg)", - "error": [ - "Error: [mv_pseries_weighted_sum] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_pseries_weighted_sum(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_pseries_weighted_sum(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_pseries_weighted_sum(nullVar, nullVar)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_percentile(5.5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(to_double(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_percentile(5.5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(to_double(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(to_double(true), 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_percentile(5, 5.5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(to_integer(true), to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row mv_percentile(5, 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(to_integer(true), to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(to_integer(true), 5)", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(5, to_double(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(5, to_integer(true))", - "error": [], - "warning": [] - }, - { - "query": "row var = mv_percentile(true, true)", - "error": [ - "Argument of [mv_percentile] must be [double], found value [true] type [boolean]", - "Argument of [mv_percentile] must be [double], found value [true] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(doubleField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(booleanField, booleanField) > 0", - "error": [ - "Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]", - "Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(doubleField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(doubleField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(integerField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(integerField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(integerField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(longField, doubleField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(longField, integerField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | where mv_percentile(longField, longField) > 0", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(to_double(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(booleanField, booleanField)", - "error": [ - "Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]", - "Argument of [mv_percentile] must be [double], found value [booleanField] type [boolean]" - ], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(doubleField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(to_double(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(doubleField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(to_double(booleanField), longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(integerField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(to_integer(booleanField), to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(integerField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(to_integer(booleanField), to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(integerField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(to_integer(booleanField), longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(longField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(longField, to_double(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(longField, integerField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(longField, to_integer(booleanField))", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval var = mv_percentile(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(longField, longField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(doubleField, doubleField, extraArg)", - "error": [ - "Error: [mv_percentile] function expects exactly 2 arguments, got 3." - ], - "warning": [] - }, - { - "query": "from a_index | sort mv_percentile(doubleField, doubleField)", - "error": [], - "warning": [] - }, - { - "query": "from a_index | eval mv_percentile(null, null)", - "error": [], - "warning": [] - }, - { - "query": "row nullVar = null | eval mv_percentile(nullVar, nullVar)", - "error": [], - "warning": [] - }, { "query": "f", "error": [ diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts index 8fb4b8b90d6eb..8d78851f8c17b 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/validation.test.ts @@ -10,7 +10,7 @@ import { join } from 'path'; import { writeFile, readFile } from 'fs/promises'; import { ignoreErrorsMap, validateQuery } from './validation'; -import { evalFunctionDefinitions } from '../definitions/functions'; +import { scalarFunctionDefinitions } from '../definitions/generated/scalar_functions'; import { getFunctionSignatures } from '../definitions/helpers'; import { FieldType, @@ -20,7 +20,7 @@ import { fieldTypes as _fieldTypes, } from '../definitions/types'; import { timeUnits, timeUnitsToSuggest } from '../definitions/literals'; -import { statsAggregationFunctionDefinitions } from '../definitions/aggs'; +import { aggregationFunctionDefinitions } from '../definitions/generated/aggregation_functions'; import capitalize from 'lodash/capitalize'; import { camelCase } from 'lodash'; import { getAstAndSyntaxErrors } from '@kbn/esql-ast'; @@ -43,22 +43,22 @@ const NESTED_DEPTHS = Array(NESTING_LEVELS) .fill(0) .map((_, i) => i + 1); -const toAvgSignature = statsAggregationFunctionDefinitions.find(({ name }) => name === 'avg')!; -const toInteger = evalFunctionDefinitions.find(({ name }) => name === 'to_integer')!; -const toDoubleSignature = evalFunctionDefinitions.find(({ name }) => name === 'to_double')!; -const toStringSignature = evalFunctionDefinitions.find(({ name }) => name === 'to_string')!; -const toDateSignature = evalFunctionDefinitions.find(({ name }) => name === 'to_datetime')!; -const toBooleanSignature = evalFunctionDefinitions.find(({ name }) => name === 'to_boolean')!; -const toIpSignature = evalFunctionDefinitions.find(({ name }) => name === 'to_ip')!; -const toGeoPointSignature = evalFunctionDefinitions.find(({ name }) => name === 'to_geopoint')!; -const toGeoShapeSignature = evalFunctionDefinitions.find(({ name }) => name === 'to_geoshape')!; -const toCartesianPointSignature = evalFunctionDefinitions.find( +const toAvgSignature = aggregationFunctionDefinitions.find(({ name }) => name === 'avg')!; +const toInteger = scalarFunctionDefinitions.find(({ name }) => name === 'to_integer')!; +const toDoubleSignature = scalarFunctionDefinitions.find(({ name }) => name === 'to_double')!; +const toStringSignature = scalarFunctionDefinitions.find(({ name }) => name === 'to_string')!; +const toDateSignature = scalarFunctionDefinitions.find(({ name }) => name === 'to_datetime')!; +const toBooleanSignature = scalarFunctionDefinitions.find(({ name }) => name === 'to_boolean')!; +const toIpSignature = scalarFunctionDefinitions.find(({ name }) => name === 'to_ip')!; +const toGeoPointSignature = scalarFunctionDefinitions.find(({ name }) => name === 'to_geopoint')!; +const toGeoShapeSignature = scalarFunctionDefinitions.find(({ name }) => name === 'to_geoshape')!; +const toCartesianPointSignature = scalarFunctionDefinitions.find( ({ name }) => name === 'to_cartesianpoint' )!; -const toCartesianShapeSignature = evalFunctionDefinitions.find( +const toCartesianShapeSignature = scalarFunctionDefinitions.find( ({ name }) => name === 'to_cartesianshape' )!; -const toVersionSignature = evalFunctionDefinitions.find(({ name }) => name === 'to_version')!; +const toVersionSignature = scalarFunctionDefinitions.find(({ name }) => name === 'to_version')!; const nestedFunctions = { double: prepareNestedFunction(toDoubleSignature), diff --git a/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts b/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts index 3b5cc60f5b13f..468d5bb6e5233 100644 --- a/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts +++ b/packages/kbn-esql-validation-autocomplete/src/validation/validation.ts @@ -199,11 +199,7 @@ function validateNestedFunctionArg( const argFn = getFunctionDefinition(actualArg.name)!; const fnDef = getFunctionDefinition(astFunction.name)!; // no nestying criteria should be enforced only for same type function - if ( - 'noNestingFunctions' in parameterDefinition && - parameterDefinition.noNestingFunctions && - fnDef.type === argFn.type - ) { + if (fnDef.type === 'agg' && argFn.type === 'agg') { messages.push( getMessageFromId({ messageId: 'noNestedArgumentSupport', diff --git a/packages/kbn-investigation-shared/src/rest_specs/create.ts b/packages/kbn-investigation-shared/src/rest_specs/create.ts index 35a76b8b08b85..afdffc2f524a4 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/create.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/create.ts @@ -7,25 +7,26 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationResponseSchema } from './investigation'; import { alertOriginSchema, blankOriginSchema } from '../schema'; -const createInvestigationParamsSchema = t.type({ - body: t.type({ - id: t.string, - title: t.string, - params: t.type({ - timeRange: t.type({ from: t.number, to: t.number }), +const createInvestigationParamsSchema = z.object({ + body: z.object({ + id: z.string(), + title: z.string(), + params: z.object({ + timeRange: z.object({ from: z.number(), to: z.number() }), }), - origin: t.union([alertOriginSchema, blankOriginSchema]), + origin: z.union([alertOriginSchema, blankOriginSchema]), + tags: z.array(z.string()), }), }); const createInvestigationResponseSchema = investigationResponseSchema; -type CreateInvestigationParams = t.TypeOf; -type CreateInvestigationResponse = t.OutputOf; +type CreateInvestigationParams = z.infer; +type CreateInvestigationResponse = z.output; export { createInvestigationParamsSchema, createInvestigationResponseSchema }; export type { CreateInvestigationParams, CreateInvestigationResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/create_item.ts b/packages/kbn-investigation-shared/src/rest_specs/create_item.ts index f0a85685140cb..2e9551fcaa36b 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/create_item.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/create_item.ts @@ -7,23 +7,21 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { itemSchema } from '../schema'; import { investigationItemResponseSchema } from './investigation_item'; -const createInvestigationItemParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, +const createInvestigationItemParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), }), body: itemSchema, }); const createInvestigationItemResponseSchema = investigationItemResponseSchema; -type CreateInvestigationItemParams = t.TypeOf< - typeof createInvestigationItemParamsSchema.props.body ->; -type CreateInvestigationItemResponse = t.OutputOf; +type CreateInvestigationItemParams = z.infer; +type CreateInvestigationItemResponse = z.output; export { createInvestigationItemParamsSchema, createInvestigationItemResponseSchema }; export type { CreateInvestigationItemParams, CreateInvestigationItemResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/create_note.ts b/packages/kbn-investigation-shared/src/rest_specs/create_note.ts index 55056d0151a3d..bf4c4f62456e2 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/create_note.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/create_note.ts @@ -7,24 +7,22 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationNoteResponseSchema } from './investigation_note'; -const createInvestigationNoteParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, +const createInvestigationNoteParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), }), - body: t.type({ - content: t.string, + body: z.object({ + content: z.string(), }), }); const createInvestigationNoteResponseSchema = investigationNoteResponseSchema; -type CreateInvestigationNoteParams = t.TypeOf< - typeof createInvestigationNoteParamsSchema.props.body ->; -type CreateInvestigationNoteResponse = t.OutputOf; +type CreateInvestigationNoteParams = z.infer; +type CreateInvestigationNoteResponse = z.output; export { createInvestigationNoteParamsSchema, createInvestigationNoteResponseSchema }; export type { CreateInvestigationNoteParams, CreateInvestigationNoteResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/delete.ts b/packages/kbn-investigation-shared/src/rest_specs/delete.ts index 2a05850e45fc4..32e9b1f26bf66 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/delete.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/delete.ts @@ -7,15 +7,14 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; - -const deleteInvestigationParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, +import { z } from '@kbn/zod'; +const deleteInvestigationParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), }), }); -type DeleteInvestigationParams = t.TypeOf; +type DeleteInvestigationParams = z.infer; export { deleteInvestigationParamsSchema }; export type { DeleteInvestigationParams }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/delete_item.ts b/packages/kbn-investigation-shared/src/rest_specs/delete_item.ts index c8ea39abc9821..712a74e299368 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/delete_item.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/delete_item.ts @@ -7,18 +7,16 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; -const deleteInvestigationItemParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, - itemId: t.string, +const deleteInvestigationItemParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), + itemId: z.string(), }), }); -type DeleteInvestigationItemParams = t.TypeOf< - typeof deleteInvestigationItemParamsSchema.props.path ->; +type DeleteInvestigationItemParams = z.infer; export { deleteInvestigationItemParamsSchema }; export type { DeleteInvestigationItemParams }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/delete_note.ts b/packages/kbn-investigation-shared/src/rest_specs/delete_note.ts index ef5f1ef9a3045..c3789ea13a359 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/delete_note.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/delete_note.ts @@ -7,18 +7,16 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; -const deleteInvestigationNoteParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, - noteId: t.string, +const deleteInvestigationNoteParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), + noteId: z.string(), }), }); -type DeleteInvestigationNoteParams = t.TypeOf< - typeof deleteInvestigationNoteParamsSchema.props.path ->; +type DeleteInvestigationNoteParams = z.infer; export { deleteInvestigationNoteParamsSchema }; export type { DeleteInvestigationNoteParams }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/find.ts b/packages/kbn-investigation-shared/src/rest_specs/find.ts index c44b3d74ca9be..2a3eab76fbb54 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/find.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/find.ts @@ -7,26 +7,30 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationResponseSchema } from './investigation'; -const findInvestigationsParamsSchema = t.partial({ - query: t.partial({ - alertId: t.string, - page: t.string, - perPage: t.string, - }), -}); +const findInvestigationsParamsSchema = z + .object({ + query: z + .object({ + alertId: z.string(), + page: z.string(), + perPage: z.string(), + }) + .partial(), + }) + .partial(); -const findInvestigationsResponseSchema = t.type({ - page: t.number, - perPage: t.number, - total: t.number, - results: t.array(investigationResponseSchema), +const findInvestigationsResponseSchema = z.object({ + page: z.number(), + perPage: z.number(), + total: z.number(), + results: z.array(investigationResponseSchema), }); -type FindInvestigationsParams = t.TypeOf; -type FindInvestigationsResponse = t.OutputOf; +type FindInvestigationsParams = z.infer; +type FindInvestigationsResponse = z.output; export { findInvestigationsParamsSchema, findInvestigationsResponseSchema }; export type { FindInvestigationsParams, FindInvestigationsResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/get.ts b/packages/kbn-investigation-shared/src/rest_specs/get.ts index 2d5556d7b801f..d9104959c1d7b 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/get.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/get.ts @@ -7,19 +7,19 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationResponseSchema } from './investigation'; -const getInvestigationParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, +const getInvestigationParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), }), }); const getInvestigationResponseSchema = investigationResponseSchema; -type GetInvestigationParams = t.TypeOf; // Parsed payload used by the backend -type GetInvestigationResponse = t.OutputOf; // Raw response sent to the frontend +type GetInvestigationParams = z.infer; // Parsed payload used by the backend +type GetInvestigationResponse = z.output; // Raw response sent to the frontend export { getInvestigationParamsSchema, getInvestigationResponseSchema }; export type { GetInvestigationParams, GetInvestigationResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/get_items.ts b/packages/kbn-investigation-shared/src/rest_specs/get_items.ts index 8f0c0014d161e..eb6ddac42a7ae 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/get_items.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/get_items.ts @@ -7,18 +7,18 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationItemResponseSchema } from './investigation_item'; -const getInvestigationItemsParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, +const getInvestigationItemsParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), }), }); -const getInvestigationItemsResponseSchema = t.array(investigationItemResponseSchema); +const getInvestigationItemsResponseSchema = z.array(investigationItemResponseSchema); -type GetInvestigationItemsResponse = t.OutputOf; +type GetInvestigationItemsResponse = z.output; export { getInvestigationItemsParamsSchema, getInvestigationItemsResponseSchema }; export type { GetInvestigationItemsResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/get_notes.ts b/packages/kbn-investigation-shared/src/rest_specs/get_notes.ts index 09283ca58a508..0a86f19a31d1a 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/get_notes.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/get_notes.ts @@ -7,18 +7,18 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationNoteResponseSchema } from './investigation_note'; -const getInvestigationNotesParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, +const getInvestigationNotesParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), }), }); -const getInvestigationNotesResponseSchema = t.array(investigationNoteResponseSchema); +const getInvestigationNotesResponseSchema = z.array(investigationNoteResponseSchema); -type GetInvestigationNotesResponse = t.OutputOf; +type GetInvestigationNotesResponse = z.output; export { getInvestigationNotesParamsSchema, getInvestigationNotesResponseSchema }; export type { GetInvestigationNotesResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/index.ts b/packages/kbn-investigation-shared/src/rest_specs/index.ts index ef45aca9c1dcf..eb30920430673 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/index.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/index.ts @@ -17,6 +17,7 @@ export type * from './find'; export type * from './get'; export type * from './get_items'; export type * from './get_notes'; +export type * from './investigation'; export type * from './investigation_item'; export type * from './investigation_note'; export type * from './update'; @@ -33,6 +34,7 @@ export * from './find'; export * from './get'; export * from './get_items'; export * from './get_notes'; +export * from './investigation'; export * from './investigation_item'; export * from './investigation_note'; export * from './update'; diff --git a/packages/kbn-investigation-shared/src/rest_specs/investigation.ts b/packages/kbn-investigation-shared/src/rest_specs/investigation.ts index 98c1ac41a63ea..c02e90cd70d25 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/investigation.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/investigation.ts @@ -7,12 +7,12 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationSchema } from '../schema'; const investigationResponseSchema = investigationSchema; -type InvestigationResponse = t.OutputOf; +type InvestigationResponse = z.output; export { investigationResponseSchema }; export type { InvestigationResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts b/packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts index c6b5a3edd7f2e..e7faa1d7a2834 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/investigation_item.ts @@ -7,12 +7,12 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationItemSchema } from '../schema'; const investigationItemResponseSchema = investigationItemSchema; -type InvestigationItemResponse = t.OutputOf; +type InvestigationItemResponse = z.output; export { investigationItemResponseSchema }; export type { InvestigationItemResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts b/packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts index 8f43236ebea55..73114fe844d52 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/investigation_note.ts @@ -7,12 +7,12 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationNoteSchema } from '../schema'; const investigationNoteResponseSchema = investigationNoteSchema; -type InvestigationNoteResponse = t.OutputOf; +type InvestigationNoteResponse = z.output; export { investigationNoteResponseSchema }; export type { InvestigationNoteResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/update.ts b/packages/kbn-investigation-shared/src/rest_specs/update.ts index 2a655a09a0d79..da0bdcf4f057e 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/update.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/update.ts @@ -7,26 +7,30 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationResponseSchema } from './investigation'; +import { statusSchema } from '../schema'; -const updateInvestigationParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, - }), - body: t.partial({ - title: t.string, - status: t.union([t.literal('ongoing'), t.literal('closed')]), - params: t.type({ - timeRange: t.type({ from: t.number, to: t.number }), - }), +const updateInvestigationParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), }), + body: z + .object({ + title: z.string(), + status: statusSchema, + params: z.object({ + timeRange: z.object({ from: z.number(), to: z.number() }), + }), + tags: z.array(z.string()), + }) + .partial(), }); const updateInvestigationResponseSchema = investigationResponseSchema; -type UpdateInvestigationParams = t.TypeOf; -type UpdateInvestigationResponse = t.OutputOf; +type UpdateInvestigationParams = z.infer; +type UpdateInvestigationResponse = z.output; export { updateInvestigationParamsSchema, updateInvestigationResponseSchema }; export type { UpdateInvestigationParams, UpdateInvestigationResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/update_item.ts b/packages/kbn-investigation-shared/src/rest_specs/update_item.ts index d2912bc38013f..8e96785c452b9 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/update_item.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/update_item.ts @@ -7,24 +7,22 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationItemResponseSchema } from './investigation_item'; import { itemSchema } from '../schema'; -const updateInvestigationItemParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, - itemId: t.string, +const updateInvestigationItemParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), + itemId: z.string(), }), body: itemSchema, }); const updateInvestigationItemResponseSchema = investigationItemResponseSchema; -type UpdateInvestigationItemParams = t.TypeOf< - typeof updateInvestigationItemParamsSchema.props.body ->; -type UpdateInvestigationItemResponse = t.OutputOf; +type UpdateInvestigationItemParams = z.infer; +type UpdateInvestigationItemResponse = z.output; export { updateInvestigationItemParamsSchema, updateInvestigationItemResponseSchema }; export type { UpdateInvestigationItemParams, UpdateInvestigationItemResponse }; diff --git a/packages/kbn-investigation-shared/src/rest_specs/update_note.ts b/packages/kbn-investigation-shared/src/rest_specs/update_note.ts index cd5f78e36ecc9..35862cbe19aea 100644 --- a/packages/kbn-investigation-shared/src/rest_specs/update_note.ts +++ b/packages/kbn-investigation-shared/src/rest_specs/update_note.ts @@ -7,25 +7,23 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationNoteResponseSchema } from './investigation_note'; -const updateInvestigationNoteParamsSchema = t.type({ - path: t.type({ - investigationId: t.string, - noteId: t.string, +const updateInvestigationNoteParamsSchema = z.object({ + path: z.object({ + investigationId: z.string(), + noteId: z.string(), }), - body: t.type({ - content: t.string, + body: z.object({ + content: z.string(), }), }); const updateInvestigationNoteResponseSchema = investigationNoteResponseSchema; -type UpdateInvestigationNoteParams = t.TypeOf< - typeof updateInvestigationNoteParamsSchema.props.body ->; -type UpdateInvestigationNoteResponse = t.OutputOf; +type UpdateInvestigationNoteParams = z.infer; +type UpdateInvestigationNoteResponse = z.output; export { updateInvestigationNoteParamsSchema, updateInvestigationNoteResponseSchema }; export type { UpdateInvestigationNoteParams, UpdateInvestigationNoteResponse }; diff --git a/packages/kbn-investigation-shared/src/schema/investigation.ts b/packages/kbn-investigation-shared/src/schema/investigation.ts index 9630666fd2c90..cd99de702c9e5 100644 --- a/packages/kbn-investigation-shared/src/schema/investigation.ts +++ b/packages/kbn-investigation-shared/src/schema/investigation.ts @@ -7,23 +7,32 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { alertOriginSchema, blankOriginSchema } from './origin'; import { investigationNoteSchema } from './investigation_note'; import { investigationItemSchema } from './investigation_item'; -const investigationSchema = t.type({ - id: t.string, - title: t.string, - createdAt: t.number, - createdBy: t.string, - params: t.type({ - timeRange: t.type({ from: t.number, to: t.number }), +const statusSchema = z.union([ + z.literal('triage'), + z.literal('active'), + z.literal('mitigated'), + z.literal('resolved'), + z.literal('cancelled'), +]); + +const investigationSchema = z.object({ + id: z.string(), + title: z.string(), + createdAt: z.number(), + createdBy: z.string(), + params: z.object({ + timeRange: z.object({ from: z.number(), to: z.number() }), }), - origin: t.union([alertOriginSchema, blankOriginSchema]), - status: t.union([t.literal('ongoing'), t.literal('closed')]), - notes: t.array(investigationNoteSchema), - items: t.array(investigationItemSchema), + origin: z.union([alertOriginSchema, blankOriginSchema]), + status: statusSchema, + tags: z.array(z.string()), + notes: z.array(investigationNoteSchema), + items: z.array(investigationItemSchema), }); -export { investigationSchema }; +export { investigationSchema, statusSchema }; diff --git a/packages/kbn-investigation-shared/src/schema/investigation_item.ts b/packages/kbn-investigation-shared/src/schema/investigation_item.ts index a5f89c5e864cb..e7578977bd254 100644 --- a/packages/kbn-investigation-shared/src/schema/investigation_item.ts +++ b/packages/kbn-investigation-shared/src/schema/investigation_item.ts @@ -7,25 +7,25 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; -const itemSchema = t.type({ - title: t.string, - type: t.string, - params: t.record(t.string, t.any), +const itemSchema = z.object({ + title: z.string(), + type: z.string(), + params: z.record(z.string(), z.any()), }); -const investigationItemSchema = t.intersection([ - t.type({ - id: t.string, - createdAt: t.number, - createdBy: t.string, +const investigationItemSchema = z.intersection( + z.object({ + id: z.string(), + createdAt: z.number(), + createdBy: z.string(), }), - itemSchema, -]); + itemSchema +); -type Item = t.TypeOf; -type InvestigationItem = t.TypeOf; +type Item = z.infer; +type InvestigationItem = z.infer; export type { Item, InvestigationItem }; export { investigationItemSchema, itemSchema }; diff --git a/packages/kbn-investigation-shared/src/schema/investigation_note.ts b/packages/kbn-investigation-shared/src/schema/investigation_note.ts index 7cfdeca9e5d94..a4ca46158e1bb 100644 --- a/packages/kbn-investigation-shared/src/schema/investigation_note.ts +++ b/packages/kbn-investigation-shared/src/schema/investigation_note.ts @@ -7,13 +7,13 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; -const investigationNoteSchema = t.type({ - id: t.string, - content: t.string, - createdAt: t.number, - createdBy: t.string, +const investigationNoteSchema = z.object({ + id: z.string(), + content: z.string(), + createdAt: z.number(), + createdBy: z.string(), }); export { investigationNoteSchema }; diff --git a/packages/kbn-investigation-shared/src/schema/origin.ts b/packages/kbn-investigation-shared/src/schema/origin.ts index fb3f6d8cf57c6..b0c790db0ad67 100644 --- a/packages/kbn-investigation-shared/src/schema/origin.ts +++ b/packages/kbn-investigation-shared/src/schema/origin.ts @@ -7,9 +7,9 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; -const blankOriginSchema = t.type({ type: t.literal('blank') }); -const alertOriginSchema = t.type({ type: t.literal('alert'), id: t.string }); +const blankOriginSchema = z.object({ type: z.literal('blank') }); +const alertOriginSchema = z.object({ type: z.literal('alert'), id: z.string() }); export { alertOriginSchema, blankOriginSchema }; diff --git a/packages/kbn-investigation-shared/tsconfig.json b/packages/kbn-investigation-shared/tsconfig.json index 2f9ddddbeea23..e8db47aba5c14 100644 --- a/packages/kbn-investigation-shared/tsconfig.json +++ b/packages/kbn-investigation-shared/tsconfig.json @@ -13,5 +13,7 @@ "exclude": [ "target/**/*" ], - "kbn_references": [] + "kbn_references": [ + "@kbn/zod" + ] } diff --git a/packages/kbn-language-documentation-popover/package.json b/packages/kbn-language-documentation-popover/package.json index d89dff6d96958..1be60ceee2296 100644 --- a/packages/kbn-language-documentation-popover/package.json +++ b/packages/kbn-language-documentation-popover/package.json @@ -7,8 +7,8 @@ "*.scss" ], "scripts": { - "make:docs": "ts-node --transpileOnly scripts/generate_esql_docs.ts", + "make:docs": "ts-node --transpileOnly src/scripts/generate_esql_docs.ts", "postmake:docs": "yarn run lint:fix", - "lint:fix": "cd ../.. && node ./scripts/eslint --fix ./packages/kbn-language-documentation-popover/src/sections/esql_documentation_sections.tsx" + "lint:fix": "cd ../.. && node ./scripts/eslint --fix ./packages/kbn-language-documentation-popover/src/sections/generated" } } \ No newline at end of file diff --git a/packages/kbn-language-documentation-popover/src/components/as_flyout/index.tsx b/packages/kbn-language-documentation-popover/src/components/as_flyout/index.tsx index 238960301cd29..0a617165f7661 100644 --- a/packages/kbn-language-documentation-popover/src/components/as_flyout/index.tsx +++ b/packages/kbn-language-documentation-popover/src/components/as_flyout/index.tsx @@ -7,7 +7,15 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ import React, { useCallback, useEffect, useState, useRef, useMemo } from 'react'; -import { EuiFlyout, useEuiTheme, EuiFlyoutBody, EuiFlyoutHeader } from '@elastic/eui'; +import { + EuiFlyout, + useEuiTheme, + EuiFlyoutBody, + EuiFlyoutHeader, + EuiTitle, + EuiSpacer, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; import { getFilteredGroups } from '../../utils/get_filtered_groups'; import { DocumentationMainContent, DocumentationNavigation } from '../shared'; import { getESQLDocsSections } from '../../sections'; @@ -72,8 +80,17 @@ function DocumentationFlyout({ aria-labelledby="esqlInlineDocumentationFlyout" type="push" size={DEFAULT_WIDTH} + paddingSize="m" > + +

+ {i18n.translate('languageDocumentationPopover.documentationFlyoutTitle', { + defaultMessage: 'ES|QL quick reference', + })} +

+
+ - {linkToDocumentation && ( - - - {i18n.translate('languageDocumentationPopover.esqlDocsLabel', { - defaultMessage: 'View full ES|QL documentation', + + + + labelAppend={ + linkToDocumentation && ( + + + {i18n.translate('languageDocumentationPopover.esqlDocsLinkLabel', { + defaultMessage: 'View full ES|QL documentation', + })} + + + ) + } + > + + - )} - - - - ); diff --git a/packages/kbn-language-documentation-popover/src/scripts/generate_esql_docs.ts b/packages/kbn-language-documentation-popover/src/scripts/generate_esql_docs.ts index c31c21eb13bc7..63796fbd6a8ee 100644 --- a/packages/kbn-language-documentation-popover/src/scripts/generate_esql_docs.ts +++ b/packages/kbn-language-documentation-popover/src/scripts/generate_esql_docs.ts @@ -11,12 +11,19 @@ import * as recast from 'recast'; const n = recast.types.namedTypes; import fs from 'fs'; import path from 'path'; -import { functions } from '../sections/esql_documentation_sections'; +import { functions } from '../sections/generated/scalar_functions'; (function () { const pathToElasticsearch = process.argv[2]; - const functionDocs = loadFunctionDocs(pathToElasticsearch); - writeFunctionDocs(functionDocs); + const { scalarFunctions, aggregationFunctions } = loadFunctionDocs(pathToElasticsearch); + writeFunctionDocs( + scalarFunctions, + path.join(__dirname, '.../sections/generated/scalar_functions.tsx') + ); + writeFunctionDocs( + aggregationFunctions, + path.join(__dirname, '.../sections/generated/aggregation_functions.tsx') + ); })(); function loadFunctionDocs(pathToElasticsearch: string) { @@ -34,21 +41,21 @@ function loadFunctionDocs(pathToElasticsearch: string) { .readdirSync(definitionsPath) .map((file) => JSON.parse(fs.readFileSync(`${definitionsPath}/${file}`, 'utf-8'))); - // Initialize an empty map - const functionMap = new Map(); + const scalarFunctions = new Map(); + const aggregationFunctions = new Map(); // Iterate over each file in the directory for (const file of docsFiles) { // Ensure we only process .md files if (path.extname(file) === '.md') { - if ( - !ESFunctionDefinitions.find( - (def) => def.name === path.basename(file, '.md') && def.type === 'eval' - ) - ) { - // Exclude non-scalar functions (for now) + const functionDefinition = ESFunctionDefinitions.find( + (def) => def.name === path.basename(file, '.md') + ); + + if (!functionDefinition) { continue; } + // Read the file content const content = fs.readFileSync(path.join(docsPath, file), 'utf-8'); @@ -56,14 +63,19 @@ function loadFunctionDocs(pathToElasticsearch: string) { const functionName = path.basename(file, '.md'); // Add the function name and content to the map - functionMap.set(functionName, content); + if (functionDefinition.type === 'eval') { + scalarFunctions.set(functionName, content); + } + if (functionDefinition.type === 'agg') { + aggregationFunctions.set(functionName, content); + } } } - return functionMap; + return { scalarFunctions, aggregationFunctions }; } -function writeFunctionDocs(functionDocs: Map) { +function writeFunctionDocs(functionDocs: Map, pathToDocsFile: string) { const codeStrings = Array.from(functionDocs.entries()).map(([name, doc]) => { const docWithoutLinks = removeAsciiDocInternalCrossReferences( doc, @@ -81,6 +93,9 @@ function writeFunctionDocs(functionDocs: Map) { ), description: ( ) { };`; }); - const pathToDocsFile = path.join(__dirname, '../sections/esql_documentation_sections.tsx'); - const ast = recast.parse(fs.readFileSync(pathToDocsFile, 'utf-8'), { parser: require('recast/parsers/babel'), }); diff --git a/packages/kbn-language-documentation-popover/src/sections/esql_documentation_sections.tsx b/packages/kbn-language-documentation-popover/src/sections/esql_documentation_sections.tsx index 1a16d8542c206..21e550f4ca5eb 100644 --- a/packages/kbn-language-documentation-popover/src/sections/esql_documentation_sections.tsx +++ b/packages/kbn-language-documentation-popover/src/sections/esql_documentation_sections.tsx @@ -82,7 +82,7 @@ ES|QL can access the following metadata fields: Use the \`METADATA\` directive to enable metadata fields: \`\`\` -FROM index METADATA _index, _id +FROM index [METADATA _index, _id] \`\`\` Metadata fields are only available if the source of the data is an index. Consequently, \`FROM\` is the only source commands that supports the \`METADATA\` directive. @@ -90,7 +90,7 @@ Metadata fields are only available if the source of the data is an index. Conseq Once enabled, the fields are then available to subsequent processing commands, just like the other index fields: \`\`\` -FROM ul_logs, apps METADATA _index, _version +FROM ul_logs, apps [METADATA _index, _version] | WHERE id IN (13, 14) AND _version == 1 | EVAL key = CONCAT(_index, "_", TO_STR(id)) | SORT id, _index @@ -100,7 +100,7 @@ FROM ul_logs, apps METADATA _index, _version Also, similar to the index fields, once an aggregation is performed, a metadata field will no longer be accessible to subsequent commands, unless used as grouping field: \`\`\` -FROM employees METADATA _index, _id +FROM employees [METADATA _index, _id] | STATS max = MAX(emp_no) BY _index \`\`\` `, @@ -658,3323 +658,6 @@ Refer to **Operators** for an overview of the supported operators. ], }; -// DO NOT RENAME! -// managed by scripts/generate_esql_docs.ts -export const functions = { - label: i18n.translate('languageDocumentationPopover.documentationESQL.functions', { - defaultMessage: 'Functions', - }), - description: i18n.translate( - 'languageDocumentationPopover.documentationESQL.functionsDocumentationESQLDescription', - { - defaultMessage: `Functions are supported by ROW, EVAL and WHERE.`, - } - ), - items: [ - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.abs', { - defaultMessage: 'ABS', - }), - description: ( - - - ### ABS - Returns the absolute value. - - \`\`\` - ROW number = -1.0 - | EVAL abs_number = ABS(number) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.acos', { - defaultMessage: 'ACOS', - }), - description: ( - - - ### ACOS - Returns the arccosine of \`n\` as an angle, expressed in radians. - - \`\`\` - ROW a=.9 - | EVAL acos=ACOS(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.asin', { - defaultMessage: 'ASIN', - }), - description: ( - - - ### ASIN - Returns the arcsine of the input - numeric expression as an angle, expressed in radians. - - \`\`\` - ROW a=.9 - | EVAL asin=ASIN(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.atan', { - defaultMessage: 'ATAN', - }), - description: ( - - - ### ATAN - Returns the arctangent of the input - numeric expression as an angle, expressed in radians. - - \`\`\` - ROW a=12.9 - | EVAL atan=ATAN(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.atan2', { - defaultMessage: 'ATAN2', - }), - description: ( - - - ### ATAN2 - The angle between the positive x-axis and the ray from the - origin to the point (x , y) in the Cartesian plane, expressed in radians. - - \`\`\` - ROW y=12.9, x=.6 - | EVAL atan2=ATAN2(y, x) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.bucket', { - defaultMessage: 'BUCKET', - }), - description: ( - - - ### BUCKET - Creates groups of values - buckets - out of a datetime or numeric input. - The size of the buckets can either be provided directly, or chosen based on a recommended count and values range. - - \`\`\` - FROM employees - | WHERE hire_date >= "1985-01-01T00:00:00Z" AND hire_date < "1986-01-01T00:00:00Z" - | STATS hire_date = MV_SORT(VALUES(hire_date)) BY month = BUCKET(hire_date, 20, "1985-01-01T00:00:00Z", "1986-01-01T00:00:00Z") - | SORT hire_date - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.case', { - defaultMessage: 'CASE', - }), - description: ( - - - ### CASE - Accepts pairs of conditions and values. The function returns the value that - belongs to the first condition that evaluates to \`true\`. - - If the number of arguments is odd, the last argument is the default value which - is returned when no condition matches. If the number of arguments is even, and - no condition matches, the function returns \`null\`. - - \`\`\` - FROM employees - | EVAL type = CASE( - languages <= 1, "monolingual", - languages <= 2, "bilingual", - "polyglot") - | KEEP emp_no, languages, type - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.cbrt', { - defaultMessage: 'CBRT', - }), - description: ( - - - ### CBRT - Returns the cube root of a number. The input can be any numeric value, the return value is always a double. - Cube roots of infinities are null. - - \`\`\` - ROW d = 1000.0 - | EVAL c = cbrt(d) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.ceil', { - defaultMessage: 'CEIL', - }), - description: ( - - - ### CEIL - Round a number up to the nearest integer. - - \`\`\` - ROW a=1.8 - | EVAL a=CEIL(a) - \`\`\` - Note: This is a noop for \`long\` (including unsigned) and \`integer\`. For \`double\` this picks the closest \`double\` value to the integer similar to Math.ceil. - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.cidr_match', { - defaultMessage: 'CIDR_MATCH', - }), - description: ( - - - ### CIDR_MATCH - Returns true if the provided IP is contained in one of the provided CIDR blocks. - - \`\`\` - FROM hosts - | WHERE CIDR_MATCH(ip1, "127.0.0.2/32", "127.0.0.3/32") - | KEEP card, host, ip0, ip1 - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.coalesce', { - defaultMessage: 'COALESCE', - }), - description: ( - - - ### COALESCE - Returns the first of its arguments that is not null. If all arguments are null, it returns \`null\`. - - \`\`\` - ROW a=null, b="b" - | EVAL COALESCE(a, b) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.concat', { - defaultMessage: 'CONCAT', - }), - description: ( - - - ### CONCAT - Concatenates two or more strings. - - \`\`\` - FROM employees - | KEEP first_name, last_name - | EVAL fullname = CONCAT(first_name, " ", last_name) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.cos', { - defaultMessage: 'COS', - }), - description: ( - - - ### COS - Returns the cosine of an angle. - - \`\`\` - ROW a=1.8 - | EVAL cos=COS(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.cosh', { - defaultMessage: 'COSH', - }), - description: ( - - - ### COSH - Returns the hyperbolic cosine of an angle. - - \`\`\` - ROW a=1.8 - | EVAL cosh=COSH(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.date_diff', { - defaultMessage: 'DATE_DIFF', - }), - description: ( - - - ### DATE_DIFF - Subtracts the \`startTimestamp\` from the \`endTimestamp\` and returns the difference in multiples of \`unit\`. - If \`startTimestamp\` is later than the \`endTimestamp\`, negative values are returned. - - \`\`\` - ROW date1 = TO_DATETIME("2023-12-02T11:00:00.000Z"), date2 = TO_DATETIME("2023-12-02T11:00:00.001Z") - | EVAL dd_ms = DATE_DIFF("microseconds", date1, date2) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.date_extract', { - defaultMessage: 'DATE_EXTRACT', - }), - description: ( - - - ### DATE_EXTRACT - Extracts parts of a date, like year, month, day, hour. - - \`\`\` - ROW date = DATE_PARSE("yyyy-MM-dd", "2022-05-06") - | EVAL year = DATE_EXTRACT("year", date) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.date_format', { - defaultMessage: 'DATE_FORMAT', - }), - description: ( - - - ### DATE_FORMAT - Returns a string representation of a date, in the provided format. - - \`\`\` - FROM employees - | KEEP first_name, last_name, hire_date - | EVAL hired = DATE_FORMAT("YYYY-MM-dd", hire_date) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.date_parse', { - defaultMessage: 'DATE_PARSE', - }), - description: ( - - - ### DATE_PARSE - Returns a date by parsing the second argument using the format specified in the first argument. - - \`\`\` - ROW date_string = "2022-05-06" - | EVAL date = DATE_PARSE("yyyy-MM-dd", date_string) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.date_trunc', { - defaultMessage: 'DATE_TRUNC', - }), - description: ( - - - ### DATE_TRUNC - Rounds down a date to the closest interval. - - \`\`\` - FROM employees - | KEEP first_name, last_name, hire_date - | EVAL year_hired = DATE_TRUNC(1 year, hire_date) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.e', { - defaultMessage: 'E', - }), - description: ( - - - ### E - Returns Euler's number. - - \`\`\` - ROW E() - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.ends_with', { - defaultMessage: 'ENDS_WITH', - }), - description: ( - - - ### ENDS_WITH - Returns a boolean that indicates whether a keyword string ends with another string. - - \`\`\` - FROM employees - | KEEP last_name - | EVAL ln_E = ENDS_WITH(last_name, "d") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.exp', { - defaultMessage: 'EXP', - }), - description: ( - - - ### EXP - Returns the value of e raised to the power of the given number. - - \`\`\` - ROW d = 5.0 - | EVAL s = EXP(d) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.floor', { - defaultMessage: 'FLOOR', - }), - description: ( - - - ### FLOOR - Round a number down to the nearest integer. - - \`\`\` - ROW a=1.8 - | EVAL a=FLOOR(a) - \`\`\` - Note: This is a noop for \`long\` (including unsigned) and \`integer\`. - For \`double\` this picks the closest \`double\` value to the integer - similar to Math.floor. - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.from_base64', { - defaultMessage: 'FROM_BASE64', - }), - description: ( - - - ### FROM_BASE64 - Decode a base64 string. - - \`\`\` - row a = "ZWxhc3RpYw==" - | eval d = from_base64(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.greatest', { - defaultMessage: 'GREATEST', - }), - description: ( - - - ### GREATEST - Returns the maximum value from multiple columns. This is similar to \`MV_MAX\` - except it is intended to run on multiple columns at once. - - \`\`\` - ROW a = 10, b = 20 - | EVAL g = GREATEST(a, b) - \`\`\` - Note: When run on \`keyword\` or \`text\` fields, this returns the last string in alphabetical order. When run on \`boolean\` columns this will return \`true\` if any values are \`true\`. - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.ip_prefix', { - defaultMessage: 'IP_PREFIX', - }), - description: ( - - - ### IP_PREFIX - Truncates an IP to a given prefix length. - - \`\`\` - row ip4 = to_ip("1.2.3.4"), ip6 = to_ip("fe80::cae2:65ff:fece:feb9") - | eval ip4_prefix = ip_prefix(ip4, 24, 0), ip6_prefix = ip_prefix(ip6, 0, 112); - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.least', { - defaultMessage: 'LEAST', - }), - description: ( - - - ### LEAST - Returns the minimum value from multiple columns. This is similar to \`MV_MIN\` except it is intended to run on multiple columns at once. - - \`\`\` - ROW a = 10, b = 20 - | EVAL l = LEAST(a, b) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.left', { - defaultMessage: 'LEFT', - }), - description: ( - - - ### LEFT - Returns the substring that extracts 'length' chars from 'string' starting from the left. - - \`\`\` - FROM employees - | KEEP last_name - | EVAL left = LEFT(last_name, 3) - | SORT last_name ASC - | LIMIT 5 - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.length', { - defaultMessage: 'LENGTH', - }), - description: ( - - - ### LENGTH - Returns the character length of a string. - - \`\`\` - FROM employees - | KEEP first_name, last_name - | EVAL fn_length = LENGTH(first_name) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.locate', { - defaultMessage: 'LOCATE', - }), - description: ( - - - ### LOCATE - Returns an integer that indicates the position of a keyword substring within another string. - Returns \`0\` if the substring cannot be found. - Note that string positions start from \`1\`. - - \`\`\` - row a = "hello" - | eval a_ll = locate(a, "ll") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.log', { - defaultMessage: 'LOG', - }), - description: ( - - - ### LOG - Returns the logarithm of a value to a base. The input can be any numeric value, the return value is always a double. - - Logs of zero, negative numbers, and base of one return \`null\` as well as a warning. - - \`\`\` - ROW base = 2.0, value = 8.0 - | EVAL s = LOG(base, value) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.log10', { - defaultMessage: 'LOG10', - }), - description: ( - - - ### LOG10 - Returns the logarithm of a value to base 10. The input can be any numeric value, the return value is always a double. - - Logs of 0 and negative numbers return \`null\` as well as a warning. - - \`\`\` - ROW d = 1000.0 - | EVAL s = LOG10(d) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.ltrim', { - defaultMessage: 'LTRIM', - }), - description: ( - - - ### LTRIM - Removes leading whitespaces from a string. - - \`\`\` - ROW message = " some text ", color = " red " - | EVAL message = LTRIM(message) - | EVAL color = LTRIM(color) - | EVAL message = CONCAT("'", message, "'") - | EVAL color = CONCAT("'", color, "'") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_append', { - defaultMessage: 'MV_APPEND', - }), - description: ( - - - ### MV_APPEND - Concatenates values of two multi-value fields. - - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_avg', { - defaultMessage: 'MV_AVG', - }), - description: ( - - - ### MV_AVG - Converts a multivalued field into a single valued field containing the average of all of the values. - - \`\`\` - ROW a=[3, 5, 1, 6] - | EVAL avg_a = MV_AVG(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_concat', { - defaultMessage: 'MV_CONCAT', - }), - description: ( - - - ### MV_CONCAT - Converts a multivalued string expression into a single valued column containing the concatenation of all values separated by a delimiter. - - \`\`\` - ROW a=["foo", "zoo", "bar"] - | EVAL j = MV_CONCAT(a, ", ") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_count', { - defaultMessage: 'MV_COUNT', - }), - description: ( - - - ### MV_COUNT - Converts a multivalued expression into a single valued column containing a count of the number of values. - - \`\`\` - ROW a=["foo", "zoo", "bar"] - | EVAL count_a = MV_COUNT(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_dedupe', { - defaultMessage: 'MV_DEDUPE', - }), - description: ( - - - ### MV_DEDUPE - Remove duplicate values from a multivalued field. - - \`\`\` - ROW a=["foo", "foo", "bar", "foo"] - | EVAL dedupe_a = MV_DEDUPE(a) - \`\`\` - Note: \`MV_DEDUPE\` may, but won't always, sort the values in the column. - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_first', { - defaultMessage: 'MV_FIRST', - }), - description: ( - - - ### MV_FIRST - Converts a multivalued expression into a single valued column containing the - first value. This is most useful when reading from a function that emits - multivalued columns in a known order like \`SPLIT\`. - - The order that multivalued fields are read from - underlying storage is not guaranteed. It is *frequently* ascending, but don't - rely on that. If you need the minimum value use \`MV_MIN\` instead of - \`MV_FIRST\`. \`MV_MIN\` has optimizations for sorted values so there isn't a - performance benefit to \`MV_FIRST\`. - - \`\`\` - ROW a="foo;bar;baz" - | EVAL first_a = MV_FIRST(SPLIT(a, ";")) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_last', { - defaultMessage: 'MV_LAST', - }), - description: ( - - - ### MV_LAST - Converts a multivalue expression into a single valued column containing the last - value. This is most useful when reading from a function that emits multivalued - columns in a known order like \`SPLIT\`. - - The order that multivalued fields are read from - underlying storage is not guaranteed. It is *frequently* ascending, but don't - rely on that. If you need the maximum value use \`MV_MAX\` instead of - \`MV_LAST\`. \`MV_MAX\` has optimizations for sorted values so there isn't a - performance benefit to \`MV_LAST\`. - - \`\`\` - ROW a="foo;bar;baz" - | EVAL last_a = MV_LAST(SPLIT(a, ";")) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_max', { - defaultMessage: 'MV_MAX', - }), - description: ( - - - ### MV_MAX - Converts a multivalued expression into a single valued column containing the maximum value. - - \`\`\` - ROW a=[3, 5, 1] - | EVAL max_a = MV_MAX(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_median', { - defaultMessage: 'MV_MEDIAN', - }), - description: ( - - - ### MV_MEDIAN - Converts a multivalued field into a single valued field containing the median value. - - \`\`\` - ROW a=[3, 5, 1] - | EVAL median_a = MV_MEDIAN(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_min', { - defaultMessage: 'MV_MIN', - }), - description: ( - - - ### MV_MIN - Converts a multivalued expression into a single valued column containing the minimum value. - - \`\`\` - ROW a=[2, 1] - | EVAL min_a = MV_MIN(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_percentile', { - defaultMessage: 'MV_PERCENTILE', - }), - description: ( - - - ### MV_PERCENTILE - Converts a multivalued field into a single valued field containing the value at which a certain percentage of observed values occur. - - \`\`\` - ROW values = [5, 5, 10, 12, 5000] - | EVAL p50 = MV_PERCENTILE(values, 50), median = MV_MEDIAN(values) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate( - 'languageDocumentationPopover.documentationESQL.mv_pseries_weighted_sum', - { - defaultMessage: 'MV_PSERIES_WEIGHTED_SUM', - } - ), - description: ( - - - ### MV_PSERIES_WEIGHTED_SUM - Converts a multivalued expression into a single-valued column by multiplying every element on the input list by its corresponding term in P-Series and computing the sum. - - \`\`\` - ROW a = [70.0, 45.0, 21.0, 21.0, 21.0] - | EVAL sum = MV_PSERIES_WEIGHTED_SUM(a, 1.5) - | KEEP sum - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_slice', { - defaultMessage: 'MV_SLICE', - }), - description: ( - - - ### MV_SLICE - Returns a subset of the multivalued field using the start and end index values. - - \`\`\` - row a = [1, 2, 2, 3] - | eval a1 = mv_slice(a, 1), a2 = mv_slice(a, 2, 3) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_sort', { - defaultMessage: 'MV_SORT', - }), - description: ( - - - ### MV_SORT - Sorts a multivalued field in lexicographical order. - - \`\`\` - ROW a = [4, 2, -3, 2] - | EVAL sa = mv_sort(a), sd = mv_sort(a, "DESC") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_sum', { - defaultMessage: 'MV_SUM', - }), - description: ( - - - ### MV_SUM - Converts a multivalued field into a single valued field containing the sum of all of the values. - - \`\`\` - ROW a=[3, 5, 6] - | EVAL sum_a = MV_SUM(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_zip', { - defaultMessage: 'MV_ZIP', - }), - description: ( - - - ### MV_ZIP - Combines the values from two multivalued fields with a delimiter that joins them together. - - \`\`\` - ROW a = ["x", "y", "z"], b = ["1", "2"] - | EVAL c = mv_zip(a, b, "-") - | KEEP a, b, c - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.now', { - defaultMessage: 'NOW', - }), - description: ( - - - ### NOW - Returns current date and time. - - \`\`\` - ROW current_date = NOW() - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.pi', { - defaultMessage: 'PI', - }), - description: ( - - - ### PI - Returns Pi, the ratio of a circle's circumference to its diameter. - - \`\`\` - ROW PI() - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.pow', { - defaultMessage: 'POW', - }), - description: ( - - - ### POW - Returns the value of \`base\` raised to the power of \`exponent\`. - - \`\`\` - ROW base = 2.0, exponent = 2 - | EVAL result = POW(base, exponent) - \`\`\` - Note: It is still possible to overflow a double result here; in that case, null will be returned. - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.repeat', { - defaultMessage: 'REPEAT', - }), - description: ( - - - ### REPEAT - Returns a string constructed by concatenating \`string\` with itself the specified \`number\` of times. - - \`\`\` - ROW a = "Hello!" - | EVAL triple_a = REPEAT(a, 3); - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.replace', { - defaultMessage: 'REPLACE', - }), - description: ( - - - ### REPLACE - The function substitutes in the string \`str\` any match of the regular expression \`regex\` - with the replacement string \`newStr\`. - - \`\`\` - ROW str = "Hello World" - | EVAL str = REPLACE(str, "World", "Universe") - | KEEP str - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.right', { - defaultMessage: 'RIGHT', - }), - description: ( - - - ### RIGHT - Return the substring that extracts 'length' chars from 'str' starting from the right. - - \`\`\` - FROM employees - | KEEP last_name - | EVAL right = RIGHT(last_name, 3) - | SORT last_name ASC - | LIMIT 5 - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.round', { - defaultMessage: 'ROUND', - }), - description: ( - - - ### ROUND - Rounds a number to the specified number of decimal places. - Defaults to 0, which returns the nearest integer. If the - precision is a negative number, rounds to the number of digits left - of the decimal point. - - \`\`\` - FROM employees - | KEEP first_name, last_name, height - | EVAL height_ft = ROUND(height * 3.281, 1) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.rtrim', { - defaultMessage: 'RTRIM', - }), - description: ( - - - ### RTRIM - Removes trailing whitespaces from a string. - - \`\`\` - ROW message = " some text ", color = " red " - | EVAL message = RTRIM(message) - | EVAL color = RTRIM(color) - | EVAL message = CONCAT("'", message, "'") - | EVAL color = CONCAT("'", color, "'") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.signum', { - defaultMessage: 'SIGNUM', - }), - description: ( - - - ### SIGNUM - Returns the sign of the given number. - It returns \`-1\` for negative numbers, \`0\` for \`0\` and \`1\` for positive numbers. - - \`\`\` - ROW d = 100.0 - | EVAL s = SIGNUM(d) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.sin', { - defaultMessage: 'SIN', - }), - description: ( - - - ### SIN - Returns ths Sine trigonometric function of an angle. - - \`\`\` - ROW a=1.8 - | EVAL sin=SIN(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.sinh', { - defaultMessage: 'SINH', - }), - description: ( - - - ### SINH - Returns the hyperbolic sine of an angle. - - \`\`\` - ROW a=1.8 - | EVAL sinh=SINH(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.split', { - defaultMessage: 'SPLIT', - }), - description: ( - - - ### SPLIT - Split a single valued string into multiple strings. - - \`\`\` - ROW words="foo;bar;baz;qux;quux;corge" - | EVAL word = SPLIT(words, ";") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.sqrt', { - defaultMessage: 'SQRT', - }), - description: ( - - - ### SQRT - Returns the square root of a number. The input can be any numeric value, the return value is always a double. - Square roots of negative numbers and infinities are null. - - \`\`\` - ROW d = 100.0 - | EVAL s = SQRT(d) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.st_contains', { - defaultMessage: 'ST_CONTAINS', - }), - description: ( - - - ### ST_CONTAINS - Returns whether the first geometry contains the second geometry. - This is the inverse of the \`ST_WITHIN\` function. - - \`\`\` - FROM airport_city_boundaries - | WHERE ST_CONTAINS(city_boundary, TO_GEOSHAPE("POLYGON((109.35 18.3, 109.45 18.3, 109.45 18.4, 109.35 18.4, 109.35 18.3))")) - | KEEP abbrev, airport, region, city, city_location - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.st_disjoint', { - defaultMessage: 'ST_DISJOINT', - }), - description: ( - - - ### ST_DISJOINT - Returns whether the two geometries or geometry columns are disjoint. - This is the inverse of the \`ST_INTERSECTS\` function. - In mathematical terms: ST_Disjoint(A, B) ⇔ A ⋂ B = ∅ - - \`\`\` - FROM airport_city_boundaries - | WHERE ST_DISJOINT(city_boundary, TO_GEOSHAPE("POLYGON((-10 -60, 120 -60, 120 60, -10 60, -10 -60))")) - | KEEP abbrev, airport, region, city, city_location - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.st_distance', { - defaultMessage: 'ST_DISTANCE', - }), - description: ( - - - ### ST_DISTANCE - Computes the distance between two points. - For cartesian geometries, this is the pythagorean distance in the same units as the original coordinates. - For geographic geometries, this is the circular distance along the great circle in meters. - - \`\`\` - FROM airports - | WHERE abbrev == "CPH" - | EVAL distance = ST_DISTANCE(location, city_location) - | KEEP abbrev, name, location, city_location, distance - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.st_intersects', { - defaultMessage: 'ST_INTERSECTS', - }), - description: ( - - - ### ST_INTERSECTS - Returns true if two geometries intersect. - They intersect if they have any point in common, including their interior points - (points along lines or within polygons). - This is the inverse of the \`ST_DISJOINT\` function. - In mathematical terms: ST_Intersects(A, B) ⇔ A ⋂ B ≠ ∅ - - \`\`\` - FROM airports - | WHERE ST_INTERSECTS(location, TO_GEOSHAPE("POLYGON((42 14, 43 14, 43 15, 42 15, 42 14))")) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.st_within', { - defaultMessage: 'ST_WITHIN', - }), - description: ( - - - ### ST_WITHIN - Returns whether the first geometry is within the second geometry. - This is the inverse of the \`ST_CONTAINS\` function. - - \`\`\` - FROM airport_city_boundaries - | WHERE ST_WITHIN(city_boundary, TO_GEOSHAPE("POLYGON((109.1 18.15, 109.6 18.15, 109.6 18.65, 109.1 18.65, 109.1 18.15))")) - | KEEP abbrev, airport, region, city, city_location - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.st_x', { - defaultMessage: 'ST_X', - }), - description: ( - - - ### ST_X - Extracts the \`x\` coordinate from the supplied point. - If the points is of type \`geo_point\` this is equivalent to extracting the \`longitude\` value. - - \`\`\` - ROW point = TO_GEOPOINT("POINT(42.97109629958868 14.7552534006536)") - | EVAL x = ST_X(point), y = ST_Y(point) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.st_y', { - defaultMessage: 'ST_Y', - }), - description: ( - - - ### ST_Y - Extracts the \`y\` coordinate from the supplied point. - If the points is of type \`geo_point\` this is equivalent to extracting the \`latitude\` value. - - \`\`\` - ROW point = TO_GEOPOINT("POINT(42.97109629958868 14.7552534006536)") - | EVAL x = ST_X(point), y = ST_Y(point) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.starts_with', { - defaultMessage: 'STARTS_WITH', - }), - description: ( - - - ### STARTS_WITH - Returns a boolean that indicates whether a keyword string starts with another string. - - \`\`\` - FROM employees - | KEEP last_name - | EVAL ln_S = STARTS_WITH(last_name, "B") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.substring', { - defaultMessage: 'SUBSTRING', - }), - description: ( - - - ### SUBSTRING - Returns a substring of a string, specified by a start position and an optional length. - - \`\`\` - FROM employees - | KEEP last_name - | EVAL ln_sub = SUBSTRING(last_name, 1, 3) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.tan', { - defaultMessage: 'TAN', - }), - description: ( - - - ### TAN - Returns the Tangent trigonometric function of an angle. - - \`\`\` - ROW a=1.8 - | EVAL tan=TAN(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.tanh', { - defaultMessage: 'TANH', - }), - description: ( - - - ### TANH - Returns the Tangent hyperbolic function of an angle. - - \`\`\` - ROW a=1.8 - | EVAL tanh=TANH(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.tau', { - defaultMessage: 'TAU', - }), - description: ( - - - ### TAU - Returns the ratio of a circle's circumference to its radius. - - \`\`\` - ROW TAU() - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_base64', { - defaultMessage: 'TO_BASE64', - }), - description: ( - - - ### TO_BASE64 - Encode a string to a base64 string. - - \`\`\` - row a = "elastic" - | eval e = to_base64(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_boolean', { - defaultMessage: 'TO_BOOLEAN', - }), - description: ( - - - ### TO_BOOLEAN - Converts an input value to a boolean value. - A string value of *true* will be case-insensitive converted to the Boolean *true*. - For anything else, including the empty string, the function will return *false*. - The numerical value of *0* will be converted to *false*, anything else will be converted to *true*. - - \`\`\` - ROW str = ["true", "TRuE", "false", "", "yes", "1"] - | EVAL bool = TO_BOOLEAN(str) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_cartesianpoint', { - defaultMessage: 'TO_CARTESIANPOINT', - }), - description: ( - - - ### TO_CARTESIANPOINT - Converts an input value to a \`cartesian_point\` value. - A string will only be successfully converted if it respects WKT Point format. - - \`\`\` - ROW wkt = ["POINT(4297.11 -1475.53)", "POINT(7580.93 2272.77)"] - | MV_EXPAND wkt - | EVAL pt = TO_CARTESIANPOINT(wkt) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_cartesianshape', { - defaultMessage: 'TO_CARTESIANSHAPE', - }), - description: ( - - - ### TO_CARTESIANSHAPE - Converts an input value to a \`cartesian_shape\` value. - A string will only be successfully converted if it respects WKT format. - - \`\`\` - ROW wkt = ["POINT(4297.11 -1475.53)", "POLYGON ((3339584.72 1118889.97, 4452779.63 4865942.27, 2226389.81 4865942.27, 1113194.90 2273030.92, 3339584.72 1118889.97))"] - | MV_EXPAND wkt - | EVAL geom = TO_CARTESIANSHAPE(wkt) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_datetime', { - defaultMessage: 'TO_DATETIME', - }), - description: ( - - - ### TO_DATETIME - Converts an input value to a date value. - A string will only be successfully converted if it's respecting the format \`yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\`. - To convert dates in other formats, use \`DATE_PARSE\`. - - \`\`\` - ROW string = ["1953-09-02T00:00:00.000Z", "1964-06-02T00:00:00.000Z", "1964-06-02 00:00:00"] - | EVAL datetime = TO_DATETIME(string) - \`\`\` - Note: Note that when converting from nanosecond resolution to millisecond resolution with this function, the nanosecond date is truncated, not rounded. - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_degrees', { - defaultMessage: 'TO_DEGREES', - }), - description: ( - - - ### TO_DEGREES - Converts a number in radians to degrees. - - \`\`\` - ROW rad = [1.57, 3.14, 4.71] - | EVAL deg = TO_DEGREES(rad) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_double', { - defaultMessage: 'TO_DOUBLE', - }), - description: ( - - - ### TO_DOUBLE - Converts an input value to a double value. If the input parameter is of a date type, - its value will be interpreted as milliseconds since the Unix epoch, - converted to double. Boolean *true* will be converted to double *1.0*, *false* to *0.0*. - - \`\`\` - ROW str1 = "5.20128E11", str2 = "foo" - | EVAL dbl = TO_DOUBLE("520128000000"), dbl1 = TO_DOUBLE(str1), dbl2 = TO_DOUBLE(str2) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_geopoint', { - defaultMessage: 'TO_GEOPOINT', - }), - description: ( - - - ### TO_GEOPOINT - Converts an input value to a \`geo_point\` value. - A string will only be successfully converted if it respects WKT Point format. - - \`\`\` - ROW wkt = "POINT(42.97109630194 14.7552534413725)" - | EVAL pt = TO_GEOPOINT(wkt) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_geoshape', { - defaultMessage: 'TO_GEOSHAPE', - }), - description: ( - - - ### TO_GEOSHAPE - Converts an input value to a \`geo_shape\` value. - A string will only be successfully converted if it respects WKT format. - - \`\`\` - ROW wkt = "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))" - | EVAL geom = TO_GEOSHAPE(wkt) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_integer', { - defaultMessage: 'TO_INTEGER', - }), - description: ( - - - ### TO_INTEGER - Converts an input value to an integer value. - If the input parameter is of a date type, its value will be interpreted as milliseconds - since the Unix epoch, converted to integer. - Boolean *true* will be converted to integer *1*, *false* to *0*. - - \`\`\` - ROW long = [5013792, 2147483647, 501379200000] - | EVAL int = TO_INTEGER(long) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_ip', { - defaultMessage: 'TO_IP', - }), - description: ( - - - ### TO_IP - Converts an input string to an IP value. - - \`\`\` - ROW str1 = "1.1.1.1", str2 = "foo" - | EVAL ip1 = TO_IP(str1), ip2 = TO_IP(str2) - | WHERE CIDR_MATCH(ip1, "1.0.0.0/8") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_long', { - defaultMessage: 'TO_LONG', - }), - description: ( - - - ### TO_LONG - Converts an input value to a long value. If the input parameter is of a date type, - its value will be interpreted as milliseconds since the Unix epoch, converted to long. - Boolean *true* will be converted to long *1*, *false* to *0*. - - \`\`\` - ROW str1 = "2147483648", str2 = "2147483648.2", str3 = "foo" - | EVAL long1 = TO_LONG(str1), long2 = TO_LONG(str2), long3 = TO_LONG(str3) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_lower', { - defaultMessage: 'TO_LOWER', - }), - description: ( - - - ### TO_LOWER - Returns a new string representing the input string converted to lower case. - - \`\`\` - ROW message = "Some Text" - | EVAL message_lower = TO_LOWER(message) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_radians', { - defaultMessage: 'TO_RADIANS', - }), - description: ( - - - ### TO_RADIANS - Converts a number in degrees to radians. - - \`\`\` - ROW deg = [90.0, 180.0, 270.0] - | EVAL rad = TO_RADIANS(deg) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_string', { - defaultMessage: 'TO_STRING', - }), - description: ( - - - ### TO_STRING - Converts an input value into a string. - - \`\`\` - ROW a=10 - | EVAL j = TO_STRING(a) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_unsigned_long', { - defaultMessage: 'TO_UNSIGNED_LONG', - }), - description: ( - - - ### TO_UNSIGNED_LONG - Converts an input value to an unsigned long value. If the input parameter is of a date type, - its value will be interpreted as milliseconds since the Unix epoch, converted to unsigned long. - Boolean *true* will be converted to unsigned long *1*, *false* to *0*. - - \`\`\` - ROW str1 = "2147483648", str2 = "2147483648.2", str3 = "foo" - | EVAL long1 = TO_UNSIGNED_LONG(str1), long2 = TO_ULONG(str2), long3 = TO_UL(str3) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_upper', { - defaultMessage: 'TO_UPPER', - }), - description: ( - - - ### TO_UPPER - Returns a new string representing the input string converted to upper case. - - \`\`\` - ROW message = "Some Text" - | EVAL message_upper = TO_UPPER(message) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.to_version', { - defaultMessage: 'TO_VERSION', - }), - description: ( - - - ### TO_VERSION - Converts an input string to a version value. - - \`\`\` - ROW v = TO_VERSION("1.2.3") - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.trim', { - defaultMessage: 'TRIM', - }), - description: ( - - - ### TRIM - Removes leading and trailing whitespaces from a string. - - \`\`\` - ROW message = " some text ", color = " red " - | EVAL message = TRIM(message) - | EVAL color = TRIM(color) - \`\`\` - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - ignoreTag: true, - } - )} - /> - ), - }, - ], -}; - -export const aggregationFunctions = { - label: i18n.translate('languageDocumentationPopover.documentationESQL.aggregationFunctions', { - defaultMessage: 'Aggregation functions', - }), - description: i18n.translate( - 'languageDocumentationPopover.documentationESQL.aggregationFunctionsDocumentationESQLDescription', - { - defaultMessage: `These functions can by used with STATS...BY:`, - } - ), - items: [ - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.avgFunction', { - defaultMessage: 'AVG', - }), - description: ( - - ), - }, - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.countFunction', { - defaultMessage: 'COUNT', - }), - description: ( - - ), - }, - { - label: i18n.translate( - 'languageDocumentationPopover.documentationESQL.countDistinctFunction', - { - defaultMessage: 'COUNT_DISTINCT', - } - ), - description: ( - - ), - }, - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.maxFunction', { - defaultMessage: 'MAX', - }), - description: ( - - ), - }, - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.medianFunction', { - defaultMessage: 'MEDIAN', - }), - description: ( - - ), - }, - { - label: i18n.translate( - 'languageDocumentationPopover.documentationESQL.medianAbsoluteDeviationFunction', - { - defaultMessage: 'MEDIAN_ABSOLUTE_DEVIATION', - } - ), - description: ( - - ), - }, - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.minFunction', { - defaultMessage: 'MIN', - }), - description: ( - - ), - }, - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.percentileFunction', { - defaultMessage: 'PERCENTILE', - }), - description: ( - - ), - }, - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.stCentroidFunction', { - defaultMessage: 'ST_CENTROID_AGG', - }), - description: ( - - ), - }, - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.sumFunction', { - defaultMessage: 'SUM', - }), - description: ( - - ), - }, - { - label: i18n.translate('languageDocumentationPopover.documentationESQL.valuesFunction', { - defaultMessage: 'VALUES', - }), - description: ( - _**WARNING:** This can use a significant amount of memory and ES|QL doesn’t yet grow aggregations beyond memory. So this aggregation will work until it is used to collect more values than can fit into memory. Once it collects too many values it will fail the query with a [Circuit Breaker Error](https://www.elastic.co/guide/en/elasticsearch/reference/current/circuit-breaker-errors.html)._ - - `, - description: - 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', - } - )} - /> - ), - }, - ], -}; - export const groupingFunctions = { label: i18n.translate('languageDocumentationPopover.documentationESQL.groupingFunctions', { defaultMessage: 'Grouping functions', @@ -4183,7 +866,7 @@ The following boolean operators are supported: 'languageDocumentationPopover.documentationESQL.castOperator.markdown', { defaultMessage: `### CAST (\`::\`) -The \`::\` operator provides a convenient alternative syntax to the \`TO_\` type conversion functions. +The \`::\` operator provides a convenient alternative syntax to the \`TO_\` type conversion functions. Example: \`\`\` @@ -4295,3 +978,6 @@ FROM employees }, ], }; + +export { functions as scalarFunctions } from './generated/scalar_functions'; +export { functions as aggregationFunctions } from './generated/aggregation_functions'; diff --git a/packages/kbn-language-documentation-popover/src/sections/generated/aggregation_functions.tsx b/packages/kbn-language-documentation-popover/src/sections/generated/aggregation_functions.tsx new file mode 100644 index 0000000000000..29bdeafbd48c0 --- /dev/null +++ b/packages/kbn-language-documentation-popover/src/sections/generated/aggregation_functions.tsx @@ -0,0 +1,471 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { Markdown } from '@kbn/shared-ux-markdown'; + +// DO NOT RENAME! +export const functions = { + label: i18n.translate('languageDocumentationPopover.documentationESQL.aggregationFunctions', { + defaultMessage: 'Aggregation functions', + }), + description: i18n.translate( + 'languageDocumentationPopover.documentationESQL.aggregationFunctionsDocumentationESQLDescription', + { + defaultMessage: `These functions can by used with STATS...BY:`, + } + ), + // items are managed by scripts/generate_esql_docs.ts + items: [ + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.avg', { + defaultMessage: 'AVG', + }), + description: ( + + + ### AVG + The average of a numeric field. + + \`\`\` + FROM employees + | STATS AVG(height) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.count', { + defaultMessage: 'COUNT', + }), + description: ( + + + ### COUNT + Returns the total number (count) of input values. + + \`\`\` + FROM employees + | STATS COUNT(height) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.count_distinct', { + defaultMessage: 'COUNT_DISTINCT', + }), + description: ( + + + ### COUNT_DISTINCT + Returns the approximate number of distinct values. + + \`\`\` + FROM hosts + | STATS COUNT_DISTINCT(ip0), COUNT_DISTINCT(ip1) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.max', { + defaultMessage: 'MAX', + }), + description: ( + + + ### MAX + The maximum value of a field. + + \`\`\` + FROM employees + | STATS MAX(languages) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.median', { + defaultMessage: 'MEDIAN', + }), + description: ( + + + ### MEDIAN + The value that is greater than half of all values and less than half of all values, also known as the 50% \`PERCENTILE\`. + + \`\`\` + FROM employees + | STATS MEDIAN(salary), PERCENTILE(salary, 50) + \`\`\` + Note: Like \`PERCENTILE\`, \`MEDIAN\` is usually approximate. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate( + 'languageDocumentationPopover.documentationESQL.median_absolute_deviation', + { + defaultMessage: 'MEDIAN_ABSOLUTE_DEVIATION', + } + ), + description: ( + + + ### MEDIAN_ABSOLUTE_DEVIATION + Returns the median absolute deviation, a measure of variability. It is a robust statistic, meaning that it is useful for describing data that may have outliers, or may not be normally distributed. For such data it can be more descriptive than standard deviation. + + It is calculated as the median of each data point's deviation from the median of the entire sample. That is, for a random variable \`X\`, the median absolute deviation is \`median(|median(X) - X|)\`. + + \`\`\` + FROM employees + | STATS MEDIAN(salary), MEDIAN_ABSOLUTE_DEVIATION(salary) + \`\`\` + Note: Like \`PERCENTILE\`, \`MEDIAN_ABSOLUTE_DEVIATION\` is usually approximate. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.min', { + defaultMessage: 'MIN', + }), + description: ( + + + ### MIN + The minimum value of a field. + + \`\`\` + FROM employees + | STATS MIN(languages) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.percentile', { + defaultMessage: 'PERCENTILE', + }), + description: ( + + + ### PERCENTILE + Returns the value at which a certain percentage of observed values occur. For example, the 95th percentile is the value which is greater than 95% of the observed values and the 50th percentile is the \`MEDIAN\`. + + \`\`\` + FROM employees + | STATS p0 = PERCENTILE(salary, 0) + , p50 = PERCENTILE(salary, 50) + , p99 = PERCENTILE(salary, 99) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.st_centroid_agg', { + defaultMessage: 'ST_CENTROID_AGG', + }), + description: ( + + + ### ST_CENTROID_AGG + Calculate the spatial centroid over a field with spatial point geometry type. + + \`\`\` + FROM airports + | STATS centroid=ST_CENTROID_AGG(location) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.sum', { + defaultMessage: 'SUM', + }), + description: ( + + + ### SUM + The sum of a numeric expression. + + \`\`\` + FROM employees + | STATS SUM(languages) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.top', { + defaultMessage: 'TOP', + }), + description: ( + + + ### TOP + Collects the top values for a field. Includes repeated values. + + \`\`\` + FROM employees + | STATS top_salaries = TOP(salary, 3, "desc"), top_salary = MAX(salary) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.values', { + defaultMessage: 'VALUES', + }), + description: ( + + + ### VALUES + Returns all values in a group as a multivalued field. The order of the returned values isn't guaranteed. If you need the values returned in order use esql-mv_sort. + + \`\`\` + FROM employees + | EVAL first_letter = SUBSTRING(first_name, 0, 1) + | STATS first_name=MV_SORT(VALUES(first_name)) BY first_letter + | SORT first_letter + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.weighted_avg', { + defaultMessage: 'WEIGHTED_AVG', + }), + description: ( + + + ### WEIGHTED_AVG + The weighted average of a numeric expression. + + \`\`\` + FROM employees + | STATS w_avg = WEIGHTED_AVG(salary, height) by languages + | EVAL w_avg = ROUND(w_avg) + | KEEP w_avg, languages + | SORT languages + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + ], +}; diff --git a/packages/kbn-language-documentation-popover/src/sections/generated/scalar_functions.tsx b/packages/kbn-language-documentation-popover/src/sections/generated/scalar_functions.tsx new file mode 100644 index 0000000000000..397e03d545cae --- /dev/null +++ b/packages/kbn-language-documentation-popover/src/sections/generated/scalar_functions.tsx @@ -0,0 +1,3343 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { Markdown } from '@kbn/shared-ux-markdown'; + +// DO NOT RENAME! +export const functions = { + label: i18n.translate('languageDocumentationPopover.documentationESQL.functions', { + defaultMessage: 'Functions', + }), + description: i18n.translate( + 'languageDocumentationPopover.documentationESQL.functionsDocumentationESQLDescription', + { + defaultMessage: `Functions are supported by ROW, EVAL and WHERE.`, + } + ), + // items are managed by scripts/generate_esql_docs.ts + items: [ + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.abs', { + defaultMessage: 'ABS', + }), + description: ( + + + ### ABS + Returns the absolute value. + + \`\`\` + ROW number = -1.0 + | EVAL abs_number = ABS(number) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.acos', { + defaultMessage: 'ACOS', + }), + description: ( + + + ### ACOS + Returns the arccosine of \`n\` as an angle, expressed in radians. + + \`\`\` + ROW a=.9 + | EVAL acos=ACOS(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.asin', { + defaultMessage: 'ASIN', + }), + description: ( + + + ### ASIN + Returns the arcsine of the input + numeric expression as an angle, expressed in radians. + + \`\`\` + ROW a=.9 + | EVAL asin=ASIN(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.atan', { + defaultMessage: 'ATAN', + }), + description: ( + + + ### ATAN + Returns the arctangent of the input + numeric expression as an angle, expressed in radians. + + \`\`\` + ROW a=12.9 + | EVAL atan=ATAN(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.atan2', { + defaultMessage: 'ATAN2', + }), + description: ( + + + ### ATAN2 + The angle between the positive x-axis and the ray from the + origin to the point (x , y) in the Cartesian plane, expressed in radians. + + \`\`\` + ROW y=12.9, x=.6 + | EVAL atan2=ATAN2(y, x) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.bucket', { + defaultMessage: 'BUCKET', + }), + description: ( + + + ### BUCKET + Creates groups of values - buckets - out of a datetime or numeric input. + The size of the buckets can either be provided directly, or chosen based on a recommended count and values range. + + \`\`\` + FROM employees + | WHERE hire_date >= "1985-01-01T00:00:00Z" AND hire_date < "1986-01-01T00:00:00Z" + | STATS hire_date = MV_SORT(VALUES(hire_date)) BY month = BUCKET(hire_date, 20, "1985-01-01T00:00:00Z", "1986-01-01T00:00:00Z") + | SORT hire_date + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.case', { + defaultMessage: 'CASE', + }), + description: ( + + + ### CASE + Accepts pairs of conditions and values. The function returns the value that + belongs to the first condition that evaluates to \`true\`. + + If the number of arguments is odd, the last argument is the default value which + is returned when no condition matches. If the number of arguments is even, and + no condition matches, the function returns \`null\`. + + \`\`\` + FROM employees + | EVAL type = CASE( + languages <= 1, "monolingual", + languages <= 2, "bilingual", + "polyglot") + | KEEP emp_no, languages, type + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.cbrt', { + defaultMessage: 'CBRT', + }), + description: ( + + + ### CBRT + Returns the cube root of a number. The input can be any numeric value, the return value is always a double. + Cube roots of infinities are null. + + \`\`\` + ROW d = 1000.0 + | EVAL c = cbrt(d) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.ceil', { + defaultMessage: 'CEIL', + }), + description: ( + + + ### CEIL + Round a number up to the nearest integer. + + \`\`\` + ROW a=1.8 + | EVAL a=CEIL(a) + \`\`\` + Note: This is a noop for \`long\` (including unsigned) and \`integer\`. For \`double\` this picks the closest \`double\` value to the integer similar to Math.ceil. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.cidr_match', { + defaultMessage: 'CIDR_MATCH', + }), + description: ( + + + ### CIDR_MATCH + Returns true if the provided IP is contained in one of the provided CIDR blocks. + + \`\`\` + FROM hosts + | WHERE CIDR_MATCH(ip1, "127.0.0.2/32", "127.0.0.3/32") + | KEEP card, host, ip0, ip1 + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.coalesce', { + defaultMessage: 'COALESCE', + }), + description: ( + + + ### COALESCE + Returns the first of its arguments that is not null. If all arguments are null, it returns \`null\`. + + \`\`\` + ROW a=null, b="b" + | EVAL COALESCE(a, b) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.concat', { + defaultMessage: 'CONCAT', + }), + description: ( + + + ### CONCAT + Concatenates two or more strings. + + \`\`\` + FROM employees + | KEEP first_name, last_name + | EVAL fullname = CONCAT(first_name, " ", last_name) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.cos', { + defaultMessage: 'COS', + }), + description: ( + + + ### COS + Returns the cosine of an angle. + + \`\`\` + ROW a=1.8 + | EVAL cos=COS(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.cosh', { + defaultMessage: 'COSH', + }), + description: ( + + + ### COSH + Returns the hyperbolic cosine of a number. + + \`\`\` + ROW a=1.8 + | EVAL cosh=COSH(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.date_diff', { + defaultMessage: 'DATE_DIFF', + }), + description: ( + + + ### DATE_DIFF + Subtracts the \`startTimestamp\` from the \`endTimestamp\` and returns the difference in multiples of \`unit\`. + If \`startTimestamp\` is later than the \`endTimestamp\`, negative values are returned. + + \`\`\` + ROW date1 = TO_DATETIME("2023-12-02T11:00:00.000Z"), date2 = TO_DATETIME("2023-12-02T11:00:00.001Z") + | EVAL dd_ms = DATE_DIFF("microseconds", date1, date2) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.date_extract', { + defaultMessage: 'DATE_EXTRACT', + }), + description: ( + + + ### DATE_EXTRACT + Extracts parts of a date, like year, month, day, hour. + + \`\`\` + ROW date = DATE_PARSE("yyyy-MM-dd", "2022-05-06") + | EVAL year = DATE_EXTRACT("year", date) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.date_format', { + defaultMessage: 'DATE_FORMAT', + }), + description: ( + + + ### DATE_FORMAT + Returns a string representation of a date, in the provided format. + + \`\`\` + FROM employees + | KEEP first_name, last_name, hire_date + | EVAL hired = DATE_FORMAT("YYYY-MM-dd", hire_date) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.date_parse', { + defaultMessage: 'DATE_PARSE', + }), + description: ( + + + ### DATE_PARSE + Returns a date by parsing the second argument using the format specified in the first argument. + + \`\`\` + ROW date_string = "2022-05-06" + | EVAL date = DATE_PARSE("yyyy-MM-dd", date_string) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.date_trunc', { + defaultMessage: 'DATE_TRUNC', + }), + description: ( + + + ### DATE_TRUNC + Rounds down a date to the closest interval. + + \`\`\` + FROM employees + | KEEP first_name, last_name, hire_date + | EVAL year_hired = DATE_TRUNC(1 year, hire_date) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.e', { + defaultMessage: 'E', + }), + description: ( + + + ### E + Returns Euler's number. + + \`\`\` + ROW E() + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.ends_with', { + defaultMessage: 'ENDS_WITH', + }), + description: ( + + + ### ENDS_WITH + Returns a boolean that indicates whether a keyword string ends with another string. + + \`\`\` + FROM employees + | KEEP last_name + | EVAL ln_E = ENDS_WITH(last_name, "d") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.exp', { + defaultMessage: 'EXP', + }), + description: ( + + + ### EXP + Returns the value of e raised to the power of the given number. + + \`\`\` + ROW d = 5.0 + | EVAL s = EXP(d) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.floor', { + defaultMessage: 'FLOOR', + }), + description: ( + + + ### FLOOR + Round a number down to the nearest integer. + + \`\`\` + ROW a=1.8 + | EVAL a=FLOOR(a) + \`\`\` + Note: This is a noop for \`long\` (including unsigned) and \`integer\`. + For \`double\` this picks the closest \`double\` value to the integer + similar to Math.floor. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.from_base64', { + defaultMessage: 'FROM_BASE64', + }), + description: ( + + + ### FROM_BASE64 + Decode a base64 string. + + \`\`\` + row a = "ZWxhc3RpYw==" + | eval d = from_base64(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.greatest', { + defaultMessage: 'GREATEST', + }), + description: ( + + + ### GREATEST + Returns the maximum value from multiple columns. This is similar to \`MV_MAX\` + except it is intended to run on multiple columns at once. + + \`\`\` + ROW a = 10, b = 20 + | EVAL g = GREATEST(a, b) + \`\`\` + Note: When run on \`keyword\` or \`text\` fields, this returns the last string in alphabetical order. When run on \`boolean\` columns this will return \`true\` if any values are \`true\`. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.ip_prefix', { + defaultMessage: 'IP_PREFIX', + }), + description: ( + + + ### IP_PREFIX + Truncates an IP to a given prefix length. + + \`\`\` + row ip4 = to_ip("1.2.3.4"), ip6 = to_ip("fe80::cae2:65ff:fece:feb9") + | eval ip4_prefix = ip_prefix(ip4, 24, 0), ip6_prefix = ip_prefix(ip6, 0, 112); + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.least', { + defaultMessage: 'LEAST', + }), + description: ( + + + ### LEAST + Returns the minimum value from multiple columns. This is similar to \`MV_MIN\` except it is intended to run on multiple columns at once. + + \`\`\` + ROW a = 10, b = 20 + | EVAL l = LEAST(a, b) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.left', { + defaultMessage: 'LEFT', + }), + description: ( + + + ### LEFT + Returns the substring that extracts 'length' chars from 'string' starting from the left. + + \`\`\` + FROM employees + | KEEP last_name + | EVAL left = LEFT(last_name, 3) + | SORT last_name ASC + | LIMIT 5 + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.length', { + defaultMessage: 'LENGTH', + }), + description: ( + + + ### LENGTH + Returns the character length of a string. + + \`\`\` + FROM employees + | KEEP first_name, last_name + | EVAL fn_length = LENGTH(first_name) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.locate', { + defaultMessage: 'LOCATE', + }), + description: ( + + + ### LOCATE + Returns an integer that indicates the position of a keyword substring within another string. + Returns \`0\` if the substring cannot be found. + Note that string positions start from \`1\`. + + \`\`\` + row a = "hello" + | eval a_ll = locate(a, "ll") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.log', { + defaultMessage: 'LOG', + }), + description: ( + + + ### LOG + Returns the logarithm of a value to a base. The input can be any numeric value, the return value is always a double. + + Logs of zero, negative numbers, and base of one return \`null\` as well as a warning. + + \`\`\` + ROW base = 2.0, value = 8.0 + | EVAL s = LOG(base, value) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.log10', { + defaultMessage: 'LOG10', + }), + description: ( + + + ### LOG10 + Returns the logarithm of a value to base 10. The input can be any numeric value, the return value is always a double. + + Logs of 0 and negative numbers return \`null\` as well as a warning. + + \`\`\` + ROW d = 1000.0 + | EVAL s = LOG10(d) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.ltrim', { + defaultMessage: 'LTRIM', + }), + description: ( + + + ### LTRIM + Removes leading whitespaces from a string. + + \`\`\` + ROW message = " some text ", color = " red " + | EVAL message = LTRIM(message) + | EVAL color = LTRIM(color) + | EVAL message = CONCAT("'", message, "'") + | EVAL color = CONCAT("'", color, "'") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_append', { + defaultMessage: 'MV_APPEND', + }), + description: ( + + + ### MV_APPEND + Concatenates values of two multi-value fields. + + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_avg', { + defaultMessage: 'MV_AVG', + }), + description: ( + + + ### MV_AVG + Converts a multivalued field into a single valued field containing the average of all of the values. + + \`\`\` + ROW a=[3, 5, 1, 6] + | EVAL avg_a = MV_AVG(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_concat', { + defaultMessage: 'MV_CONCAT', + }), + description: ( + + + ### MV_CONCAT + Converts a multivalued string expression into a single valued column containing the concatenation of all values separated by a delimiter. + + \`\`\` + ROW a=["foo", "zoo", "bar"] + | EVAL j = MV_CONCAT(a, ", ") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_count', { + defaultMessage: 'MV_COUNT', + }), + description: ( + + + ### MV_COUNT + Converts a multivalued expression into a single valued column containing a count of the number of values. + + \`\`\` + ROW a=["foo", "zoo", "bar"] + | EVAL count_a = MV_COUNT(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_dedupe', { + defaultMessage: 'MV_DEDUPE', + }), + description: ( + + + ### MV_DEDUPE + Remove duplicate values from a multivalued field. + + \`\`\` + ROW a=["foo", "foo", "bar", "foo"] + | EVAL dedupe_a = MV_DEDUPE(a) + \`\`\` + Note: \`MV_DEDUPE\` may, but won't always, sort the values in the column. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_first', { + defaultMessage: 'MV_FIRST', + }), + description: ( + + + ### MV_FIRST + Converts a multivalued expression into a single valued column containing the + first value. This is most useful when reading from a function that emits + multivalued columns in a known order like \`SPLIT\`. + + The order that multivalued fields are read from + underlying storage is not guaranteed. It is *frequently* ascending, but don't + rely on that. If you need the minimum value use \`MV_MIN\` instead of + \`MV_FIRST\`. \`MV_MIN\` has optimizations for sorted values so there isn't a + performance benefit to \`MV_FIRST\`. + + \`\`\` + ROW a="foo;bar;baz" + | EVAL first_a = MV_FIRST(SPLIT(a, ";")) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_last', { + defaultMessage: 'MV_LAST', + }), + description: ( + + + ### MV_LAST + Converts a multivalue expression into a single valued column containing the last + value. This is most useful when reading from a function that emits multivalued + columns in a known order like \`SPLIT\`. + + The order that multivalued fields are read from + underlying storage is not guaranteed. It is *frequently* ascending, but don't + rely on that. If you need the maximum value use \`MV_MAX\` instead of + \`MV_LAST\`. \`MV_MAX\` has optimizations for sorted values so there isn't a + performance benefit to \`MV_LAST\`. + + \`\`\` + ROW a="foo;bar;baz" + | EVAL last_a = MV_LAST(SPLIT(a, ";")) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_max', { + defaultMessage: 'MV_MAX', + }), + description: ( + + + ### MV_MAX + Converts a multivalued expression into a single valued column containing the maximum value. + + \`\`\` + ROW a=[3, 5, 1] + | EVAL max_a = MV_MAX(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_median', { + defaultMessage: 'MV_MEDIAN', + }), + description: ( + + + ### MV_MEDIAN + Converts a multivalued field into a single valued field containing the median value. + + \`\`\` + ROW a=[3, 5, 1] + | EVAL median_a = MV_MEDIAN(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate( + 'languageDocumentationPopover.documentationESQL.mv_median_absolute_deviation', + { + defaultMessage: 'MV_MEDIAN_ABSOLUTE_DEVIATION', + } + ), + description: ( + + + ### MV_MEDIAN_ABSOLUTE_DEVIATION + Converts a multivalued field into a single valued field containing the median absolute deviation. + + It is calculated as the median of each data point's deviation from the median of the entire sample. That is, for a random variable \`X\`, the median absolute deviation is \`median(|median(X) - X|)\`. + + \`\`\` + ROW values = [0, 2, 5, 6] + | EVAL median_absolute_deviation = MV_MEDIAN_ABSOLUTE_DEVIATION(values), median = MV_MEDIAN(values) + \`\`\` + Note: If the field has an even number of values, the medians will be calculated as the average of the middle two values. If the value is not a floating point number, the averages are rounded towards 0. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_min', { + defaultMessage: 'MV_MIN', + }), + description: ( + + + ### MV_MIN + Converts a multivalued expression into a single valued column containing the minimum value. + + \`\`\` + ROW a=[2, 1] + | EVAL min_a = MV_MIN(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_percentile', { + defaultMessage: 'MV_PERCENTILE', + }), + description: ( + + + ### MV_PERCENTILE + Converts a multivalued field into a single valued field containing the value at which a certain percentage of observed values occur. + + \`\`\` + ROW values = [5, 5, 10, 12, 5000] + | EVAL p50 = MV_PERCENTILE(values, 50), median = MV_MEDIAN(values) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate( + 'languageDocumentationPopover.documentationESQL.mv_pseries_weighted_sum', + { + defaultMessage: 'MV_PSERIES_WEIGHTED_SUM', + } + ), + description: ( + + + ### MV_PSERIES_WEIGHTED_SUM + Converts a multivalued expression into a single-valued column by multiplying every element on the input list by its corresponding term in P-Series and computing the sum. + + \`\`\` + ROW a = [70.0, 45.0, 21.0, 21.0, 21.0] + | EVAL sum = MV_PSERIES_WEIGHTED_SUM(a, 1.5) + | KEEP sum + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_slice', { + defaultMessage: 'MV_SLICE', + }), + description: ( + + + ### MV_SLICE + Returns a subset of the multivalued field using the start and end index values. + + \`\`\` + row a = [1, 2, 2, 3] + | eval a1 = mv_slice(a, 1), a2 = mv_slice(a, 2, 3) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_sort', { + defaultMessage: 'MV_SORT', + }), + description: ( + + + ### MV_SORT + Sorts a multivalued field in lexicographical order. + + \`\`\` + ROW a = [4, 2, -3, 2] + | EVAL sa = mv_sort(a), sd = mv_sort(a, "DESC") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_sum', { + defaultMessage: 'MV_SUM', + }), + description: ( + + + ### MV_SUM + Converts a multivalued field into a single valued field containing the sum of all of the values. + + \`\`\` + ROW a=[3, 5, 6] + | EVAL sum_a = MV_SUM(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.mv_zip', { + defaultMessage: 'MV_ZIP', + }), + description: ( + + + ### MV_ZIP + Combines the values from two multivalued fields with a delimiter that joins them together. + + \`\`\` + ROW a = ["x", "y", "z"], b = ["1", "2"] + | EVAL c = mv_zip(a, b, "-") + | KEEP a, b, c + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.now', { + defaultMessage: 'NOW', + }), + description: ( + + + ### NOW + Returns current date and time. + + \`\`\` + ROW current_date = NOW() + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.pi', { + defaultMessage: 'PI', + }), + description: ( + + + ### PI + Returns Pi, the ratio of a circle's circumference to its diameter. + + \`\`\` + ROW PI() + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.pow', { + defaultMessage: 'POW', + }), + description: ( + + + ### POW + Returns the value of \`base\` raised to the power of \`exponent\`. + + \`\`\` + ROW base = 2.0, exponent = 2 + | EVAL result = POW(base, exponent) + \`\`\` + Note: It is still possible to overflow a double result here; in that case, null will be returned. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.repeat', { + defaultMessage: 'REPEAT', + }), + description: ( + + + ### REPEAT + Returns a string constructed by concatenating \`string\` with itself the specified \`number\` of times. + + \`\`\` + ROW a = "Hello!" + | EVAL triple_a = REPEAT(a, 3); + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.replace', { + defaultMessage: 'REPLACE', + }), + description: ( + + + ### REPLACE + The function substitutes in the string \`str\` any match of the regular expression \`regex\` + with the replacement string \`newStr\`. + + \`\`\` + ROW str = "Hello World" + | EVAL str = REPLACE(str, "World", "Universe") + | KEEP str + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.right', { + defaultMessage: 'RIGHT', + }), + description: ( + + + ### RIGHT + Return the substring that extracts 'length' chars from 'str' starting from the right. + + \`\`\` + FROM employees + | KEEP last_name + | EVAL right = RIGHT(last_name, 3) + | SORT last_name ASC + | LIMIT 5 + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.round', { + defaultMessage: 'ROUND', + }), + description: ( + + + ### ROUND + Rounds a number to the specified number of decimal places. + Defaults to 0, which returns the nearest integer. If the + precision is a negative number, rounds to the number of digits left + of the decimal point. + + \`\`\` + FROM employees + | KEEP first_name, last_name, height + | EVAL height_ft = ROUND(height * 3.281, 1) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.rtrim', { + defaultMessage: 'RTRIM', + }), + description: ( + + + ### RTRIM + Removes trailing whitespaces from a string. + + \`\`\` + ROW message = " some text ", color = " red " + | EVAL message = RTRIM(message) + | EVAL color = RTRIM(color) + | EVAL message = CONCAT("'", message, "'") + | EVAL color = CONCAT("'", color, "'") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.signum', { + defaultMessage: 'SIGNUM', + }), + description: ( + + + ### SIGNUM + Returns the sign of the given number. + It returns \`-1\` for negative numbers, \`0\` for \`0\` and \`1\` for positive numbers. + + \`\`\` + ROW d = 100.0 + | EVAL s = SIGNUM(d) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.sin', { + defaultMessage: 'SIN', + }), + description: ( + + + ### SIN + Returns the sine of an angle. + + \`\`\` + ROW a=1.8 + | EVAL sin=SIN(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.sinh', { + defaultMessage: 'SINH', + }), + description: ( + + + ### SINH + Returns the hyperbolic sine of a number. + + \`\`\` + ROW a=1.8 + | EVAL sinh=SINH(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.space', { + defaultMessage: 'SPACE', + }), + description: ( + + + ### SPACE + Returns a string made of \`number\` spaces. + + \`\`\` + ROW message = CONCAT("Hello", SPACE(1), "World!"); + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.split', { + defaultMessage: 'SPLIT', + }), + description: ( + + + ### SPLIT + Split a single valued string into multiple strings. + + \`\`\` + ROW words="foo;bar;baz;qux;quux;corge" + | EVAL word = SPLIT(words, ";") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.sqrt', { + defaultMessage: 'SQRT', + }), + description: ( + + + ### SQRT + Returns the square root of a number. The input can be any numeric value, the return value is always a double. + Square roots of negative numbers and infinities are null. + + \`\`\` + ROW d = 100.0 + | EVAL s = SQRT(d) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.st_contains', { + defaultMessage: 'ST_CONTAINS', + }), + description: ( + + + ### ST_CONTAINS + Returns whether the first geometry contains the second geometry. + This is the inverse of the \`ST_WITHIN\` function. + + \`\`\` + FROM airport_city_boundaries + | WHERE ST_CONTAINS(city_boundary, TO_GEOSHAPE("POLYGON((109.35 18.3, 109.45 18.3, 109.45 18.4, 109.35 18.4, 109.35 18.3))")) + | KEEP abbrev, airport, region, city, city_location + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.st_disjoint', { + defaultMessage: 'ST_DISJOINT', + }), + description: ( + + + ### ST_DISJOINT + Returns whether the two geometries or geometry columns are disjoint. + This is the inverse of the \`ST_INTERSECTS\` function. + In mathematical terms: ST_Disjoint(A, B) ⇔ A ⋂ B = ∅ + + \`\`\` + FROM airport_city_boundaries + | WHERE ST_DISJOINT(city_boundary, TO_GEOSHAPE("POLYGON((-10 -60, 120 -60, 120 60, -10 60, -10 -60))")) + | KEEP abbrev, airport, region, city, city_location + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.st_distance', { + defaultMessage: 'ST_DISTANCE', + }), + description: ( + + + ### ST_DISTANCE + Computes the distance between two points. + For cartesian geometries, this is the pythagorean distance in the same units as the original coordinates. + For geographic geometries, this is the circular distance along the great circle in meters. + + \`\`\` + FROM airports + | WHERE abbrev == "CPH" + | EVAL distance = ST_DISTANCE(location, city_location) + | KEEP abbrev, name, location, city_location, distance + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.st_intersects', { + defaultMessage: 'ST_INTERSECTS', + }), + description: ( + + + ### ST_INTERSECTS + Returns true if two geometries intersect. + They intersect if they have any point in common, including their interior points + (points along lines or within polygons). + This is the inverse of the \`ST_DISJOINT\` function. + In mathematical terms: ST_Intersects(A, B) ⇔ A ⋂ B ≠ ∅ + + \`\`\` + FROM airports + | WHERE ST_INTERSECTS(location, TO_GEOSHAPE("POLYGON((42 14, 43 14, 43 15, 42 15, 42 14))")) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.st_within', { + defaultMessage: 'ST_WITHIN', + }), + description: ( + + + ### ST_WITHIN + Returns whether the first geometry is within the second geometry. + This is the inverse of the \`ST_CONTAINS\` function. + + \`\`\` + FROM airport_city_boundaries + | WHERE ST_WITHIN(city_boundary, TO_GEOSHAPE("POLYGON((109.1 18.15, 109.6 18.15, 109.6 18.65, 109.1 18.65, 109.1 18.15))")) + | KEEP abbrev, airport, region, city, city_location + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.st_x', { + defaultMessage: 'ST_X', + }), + description: ( + + + ### ST_X + Extracts the \`x\` coordinate from the supplied point. + If the points is of type \`geo_point\` this is equivalent to extracting the \`longitude\` value. + + \`\`\` + ROW point = TO_GEOPOINT("POINT(42.97109629958868 14.7552534006536)") + | EVAL x = ST_X(point), y = ST_Y(point) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.st_y', { + defaultMessage: 'ST_Y', + }), + description: ( + + + ### ST_Y + Extracts the \`y\` coordinate from the supplied point. + If the points is of type \`geo_point\` this is equivalent to extracting the \`latitude\` value. + + \`\`\` + ROW point = TO_GEOPOINT("POINT(42.97109629958868 14.7552534006536)") + | EVAL x = ST_X(point), y = ST_Y(point) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.starts_with', { + defaultMessage: 'STARTS_WITH', + }), + description: ( + + + ### STARTS_WITH + Returns a boolean that indicates whether a keyword string starts with another string. + + \`\`\` + FROM employees + | KEEP last_name + | EVAL ln_S = STARTS_WITH(last_name, "B") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.substring', { + defaultMessage: 'SUBSTRING', + }), + description: ( + + + ### SUBSTRING + Returns a substring of a string, specified by a start position and an optional length. + + \`\`\` + FROM employees + | KEEP last_name + | EVAL ln_sub = SUBSTRING(last_name, 1, 3) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.tan', { + defaultMessage: 'TAN', + }), + description: ( + + + ### TAN + Returns the tangent of an angle. + + \`\`\` + ROW a=1.8 + | EVAL tan=TAN(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.tanh', { + defaultMessage: 'TANH', + }), + description: ( + + + ### TANH + Returns the hyperbolic tangent of a number. + + \`\`\` + ROW a=1.8 + | EVAL tanh=TANH(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.tau', { + defaultMessage: 'TAU', + }), + description: ( + + + ### TAU + Returns the ratio of a circle's circumference to its radius. + + \`\`\` + ROW TAU() + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_base64', { + defaultMessage: 'TO_BASE64', + }), + description: ( + + + ### TO_BASE64 + Encode a string to a base64 string. + + \`\`\` + row a = "elastic" + | eval e = to_base64(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_boolean', { + defaultMessage: 'TO_BOOLEAN', + }), + description: ( + + + ### TO_BOOLEAN + Converts an input value to a boolean value. + A string value of *true* will be case-insensitive converted to the Boolean *true*. + For anything else, including the empty string, the function will return *false*. + The numerical value of *0* will be converted to *false*, anything else will be converted to *true*. + + \`\`\` + ROW str = ["true", "TRuE", "false", "", "yes", "1"] + | EVAL bool = TO_BOOLEAN(str) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_cartesianpoint', { + defaultMessage: 'TO_CARTESIANPOINT', + }), + description: ( + + + ### TO_CARTESIANPOINT + Converts an input value to a \`cartesian_point\` value. + A string will only be successfully converted if it respects WKT Point format. + + \`\`\` + ROW wkt = ["POINT(4297.11 -1475.53)", "POINT(7580.93 2272.77)"] + | MV_EXPAND wkt + | EVAL pt = TO_CARTESIANPOINT(wkt) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_cartesianshape', { + defaultMessage: 'TO_CARTESIANSHAPE', + }), + description: ( + + + ### TO_CARTESIANSHAPE + Converts an input value to a \`cartesian_shape\` value. + A string will only be successfully converted if it respects WKT format. + + \`\`\` + ROW wkt = ["POINT(4297.11 -1475.53)", "POLYGON ((3339584.72 1118889.97, 4452779.63 4865942.27, 2226389.81 4865942.27, 1113194.90 2273030.92, 3339584.72 1118889.97))"] + | MV_EXPAND wkt + | EVAL geom = TO_CARTESIANSHAPE(wkt) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_dateperiod', { + defaultMessage: 'TO_DATEPERIOD', + }), + description: ( + + + ### TO_DATEPERIOD + Converts an input value into a \`date_period\` value. + + \`\`\` + row x = "2024-01-01"::datetime | eval y = x + "3 DAYS"::date_period, z = x - to_dateperiod("3 days"); + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_datetime', { + defaultMessage: 'TO_DATETIME', + }), + description: ( + + + ### TO_DATETIME + Converts an input value to a date value. + A string will only be successfully converted if it's respecting the format \`yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\`. + To convert dates in other formats, use \`DATE_PARSE\`. + + \`\`\` + ROW string = ["1953-09-02T00:00:00.000Z", "1964-06-02T00:00:00.000Z", "1964-06-02 00:00:00"] + | EVAL datetime = TO_DATETIME(string) + \`\`\` + Note: Note that when converting from nanosecond resolution to millisecond resolution with this function, the nanosecond date is truncated, not rounded. + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_degrees', { + defaultMessage: 'TO_DEGREES', + }), + description: ( + + + ### TO_DEGREES + Converts a number in radians to degrees. + + \`\`\` + ROW rad = [1.57, 3.14, 4.71] + | EVAL deg = TO_DEGREES(rad) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_double', { + defaultMessage: 'TO_DOUBLE', + }), + description: ( + + + ### TO_DOUBLE + Converts an input value to a double value. If the input parameter is of a date type, + its value will be interpreted as milliseconds since the Unix epoch, + converted to double. Boolean *true* will be converted to double *1.0*, *false* to *0.0*. + + \`\`\` + ROW str1 = "5.20128E11", str2 = "foo" + | EVAL dbl = TO_DOUBLE("520128000000"), dbl1 = TO_DOUBLE(str1), dbl2 = TO_DOUBLE(str2) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_geopoint', { + defaultMessage: 'TO_GEOPOINT', + }), + description: ( + + + ### TO_GEOPOINT + Converts an input value to a \`geo_point\` value. + A string will only be successfully converted if it respects WKT Point format. + + \`\`\` + ROW wkt = "POINT(42.97109630194 14.7552534413725)" + | EVAL pt = TO_GEOPOINT(wkt) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_geoshape', { + defaultMessage: 'TO_GEOSHAPE', + }), + description: ( + + + ### TO_GEOSHAPE + Converts an input value to a \`geo_shape\` value. + A string will only be successfully converted if it respects WKT format. + + \`\`\` + ROW wkt = "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))" + | EVAL geom = TO_GEOSHAPE(wkt) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_integer', { + defaultMessage: 'TO_INTEGER', + }), + description: ( + + + ### TO_INTEGER + Converts an input value to an integer value. + If the input parameter is of a date type, its value will be interpreted as milliseconds + since the Unix epoch, converted to integer. + Boolean *true* will be converted to integer *1*, *false* to *0*. + + \`\`\` + ROW long = [5013792, 2147483647, 501379200000] + | EVAL int = TO_INTEGER(long) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_ip', { + defaultMessage: 'TO_IP', + }), + description: ( + + + ### TO_IP + Converts an input string to an IP value. + + \`\`\` + ROW str1 = "1.1.1.1", str2 = "foo" + | EVAL ip1 = TO_IP(str1), ip2 = TO_IP(str2) + | WHERE CIDR_MATCH(ip1, "1.0.0.0/8") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_long', { + defaultMessage: 'TO_LONG', + }), + description: ( + + + ### TO_LONG + Converts an input value to a long value. If the input parameter is of a date type, + its value will be interpreted as milliseconds since the Unix epoch, converted to long. + Boolean *true* will be converted to long *1*, *false* to *0*. + + \`\`\` + ROW str1 = "2147483648", str2 = "2147483648.2", str3 = "foo" + | EVAL long1 = TO_LONG(str1), long2 = TO_LONG(str2), long3 = TO_LONG(str3) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_lower', { + defaultMessage: 'TO_LOWER', + }), + description: ( + + + ### TO_LOWER + Returns a new string representing the input string converted to lower case. + + \`\`\` + ROW message = "Some Text" + | EVAL message_lower = TO_LOWER(message) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_radians', { + defaultMessage: 'TO_RADIANS', + }), + description: ( + + + ### TO_RADIANS + Converts a number in degrees to radians. + + \`\`\` + ROW deg = [90.0, 180.0, 270.0] + | EVAL rad = TO_RADIANS(deg) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_string', { + defaultMessage: 'TO_STRING', + }), + description: ( + + + ### TO_STRING + Converts an input value into a string. + + \`\`\` + ROW a=10 + | EVAL j = TO_STRING(a) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_timeduration', { + defaultMessage: 'TO_TIMEDURATION', + }), + description: ( + + + ### TO_TIMEDURATION + Converts an input value into a \`time_duration\` value. + + \`\`\` + row x = "2024-01-01"::datetime | eval y = x + "3 hours"::time_duration, z = x - to_timeduration("3 hours"); + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_unsigned_long', { + defaultMessage: 'TO_UNSIGNED_LONG', + }), + description: ( + + + ### TO_UNSIGNED_LONG + Converts an input value to an unsigned long value. If the input parameter is of a date type, + its value will be interpreted as milliseconds since the Unix epoch, converted to unsigned long. + Boolean *true* will be converted to unsigned long *1*, *false* to *0*. + + \`\`\` + ROW str1 = "2147483648", str2 = "2147483648.2", str3 = "foo" + | EVAL long1 = TO_UNSIGNED_LONG(str1), long2 = TO_ULONG(str2), long3 = TO_UL(str3) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_upper', { + defaultMessage: 'TO_UPPER', + }), + description: ( + + + ### TO_UPPER + Returns a new string representing the input string converted to upper case. + + \`\`\` + ROW message = "Some Text" + | EVAL message_upper = TO_UPPER(message) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.to_version', { + defaultMessage: 'TO_VERSION', + }), + description: ( + + + ### TO_VERSION + Converts an input string to a version value. + + \`\`\` + ROW v = TO_VERSION("1.2.3") + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + // Do not edit manually... automatically generated by scripts/generate_esql_docs.ts + { + label: i18n.translate('languageDocumentationPopover.documentationESQL.trim', { + defaultMessage: 'TRIM', + }), + description: ( + + + ### TRIM + Removes leading and trailing whitespaces from a string. + + \`\`\` + ROW message = " some text ", color = " red " + | EVAL message = TRIM(message) + | EVAL color = TRIM(color) + \`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + ignoreTag: true, + } + )} + /> + ), + }, + ], +}; diff --git a/packages/kbn-language-documentation-popover/src/sections/index.ts b/packages/kbn-language-documentation-popover/src/sections/index.ts index d7804e6ea89ad..80b43fbcc0c82 100644 --- a/packages/kbn-language-documentation-popover/src/sections/index.ts +++ b/packages/kbn-language-documentation-popover/src/sections/index.ts @@ -18,7 +18,7 @@ export const getESQLDocsSections = async () => { sourceCommands, processingCommands, initialSection, - functions, + scalarFunctions, aggregationFunctions, groupingFunctions, operators, @@ -32,7 +32,7 @@ export const getESQLDocsSections = async () => { groups.push( sourceCommands, processingCommands, - functions, + scalarFunctions, aggregationFunctions, groupingFunctions, operators diff --git a/packages/kbn-mock-idp-plugin/server/index.ts b/packages/kbn-mock-idp-plugin/server/index.ts index 4fc152eaeaf31..04525e09ee310 100644 --- a/packages/kbn-mock-idp-plugin/server/index.ts +++ b/packages/kbn-mock-idp-plugin/server/index.ts @@ -17,6 +17,7 @@ export const config = { // The plugin should only be enabled in Serverless. enabled: offeringBasedSchema({ serverless: schema.boolean({ defaultValue: true }), + traditional: schema.boolean({ defaultValue: false }), options: { defaultValue: false }, }), }), diff --git a/packages/kbn-mock-idp-plugin/server/plugin.ts b/packages/kbn-mock-idp-plugin/server/plugin.ts index 82a416e390122..27d5b96a4cbfc 100644 --- a/packages/kbn-mock-idp-plugin/server/plugin.ts +++ b/packages/kbn-mock-idp-plugin/server/plugin.ts @@ -11,7 +11,11 @@ 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 { SERVERLESS_ROLES_ROOT_PATH, readRolesFromResource } from '@kbn/es'; +import { + SERVERLESS_ROLES_ROOT_PATH, + STATEFUL_ROLES_ROOT_PATH, + readRolesFromResource, +} from '@kbn/es'; import { resolve } from 'path'; import { CloudSetup } from '@kbn/cloud-plugin/server'; @@ -42,6 +46,11 @@ const readServerlessRoles = (projectType: string) => { } }; +const readStatefulRoles = () => { + const rolesResourcePath = resolve(STATEFUL_ROLES_ROOT_PATH, 'roles.yml'); + return readRolesFromResource(rolesResourcePath); +}; + export type CreateSAMLResponseParams = TypeOf; export const plugin: PluginInitializer< @@ -73,22 +82,18 @@ export const plugin: PluginInitializer< options: { authRequired: false }, }, (context, request, response) => { - const projectType = plugins.cloud.serverless?.projectType; - if (!projectType) { - return response.customError({ statusCode: 500, body: 'projectType is not defined' }); - } else { - try { - if (roles.length === 0) { - roles.push(...readServerlessRoles(projectType)); - } - return response.ok({ - body: { - roles, - }, - }); - } catch (err) { - return response.customError({ statusCode: 500, body: err.message }); + try { + if (roles.length === 0) { + const projectType = plugins.cloud?.serverless?.projectType; + roles.push(...(projectType ? readServerlessRoles(projectType) : readStatefulRoles())); } + return response.ok({ + body: { + roles, + }, + }); + } catch (err) { + return response.customError({ statusCode: 500, body: err.message }); } } ); diff --git a/packages/kbn-monaco/src/esql/lib/hover/hover.test.ts b/packages/kbn-monaco/src/esql/lib/hover/hover.test.ts index 9794c76886441..35a62303339d0 100644 --- a/packages/kbn-monaco/src/esql/lib/hover/hover.test.ts +++ b/packages/kbn-monaco/src/esql/lib/hover/hover.test.ts @@ -84,7 +84,11 @@ function createCustomCallbackMocks( function createModelAndPosition(text: string, string: string) { return { - model: { getValue: () => text } as monaco.editor.ITextModel, + model: { + getValue: () => text, + getLineCount: () => text.split('\n').length, + getLineMaxColumn: (lineNumber: number) => text.split('\n')[lineNumber - 1].length, + } as unknown as monaco.editor.ITextModel, // bumo the column by one as the internal logic has a -1 offset when converting frmo monaco position: { lineNumber: 1, column: text.lastIndexOf(string) + 1 } as monaco.Position, }; @@ -206,13 +210,17 @@ describe('hover', () => { 'nonExistentFn', createFunctionContent ); - testSuggestions(`from a | stats avg(round(numberField))`, 'round', createFunctionContent); + testSuggestions(`from a | stats avg(round(numberField))`, 'round', () => { + return [ + '**Acceptable types**: **double** | **integer** | **long**', + ...createFunctionContent('round'), + ]; + }); testSuggestions(`from a | stats avg(round(numberField))`, 'avg', createFunctionContent); - testSuggestions( - `from a | stats avg(nonExistentFn(numberField))`, - 'nonExistentFn', - createFunctionContent - ); + testSuggestions(`from a | stats avg(nonExistentFn(numberField))`, 'nonExistentFn', () => [ + '**Acceptable types**: **double** | **integer** | **long**', + ...createFunctionContent('nonExistentFn'), + ]); testSuggestions(`from a | where round(numberField) > 0`, 'round', createFunctionContent); }); }); diff --git a/packages/kbn-monaco/src/esql/lib/hover/hover.ts b/packages/kbn-monaco/src/esql/lib/hover/hover.ts index 2e36dd4941588..a8854481aba1d 100644 --- a/packages/kbn-monaco/src/esql/lib/hover/hover.ts +++ b/packages/kbn-monaco/src/esql/lib/hover/hover.ts @@ -8,7 +8,7 @@ */ import { i18n } from '@kbn/i18n'; -import type { AstProviderFn } from '@kbn/esql-ast'; +import type { AstProviderFn, ESQLAstItem } from '@kbn/esql-ast'; import { getAstContext, getFunctionDefinition, @@ -18,24 +18,153 @@ import { getCommandDefinition, type ESQLCallbacks, getPolicyHelper, + collectVariables, + ESQLRealField, } from '@kbn/esql-validation-autocomplete'; -import type { monaco } from '../../../monaco_imports'; +import { correctQuerySyntax } from '@kbn/esql-validation-autocomplete/src/shared/helpers'; +import type { EditorContext } from '@kbn/esql-validation-autocomplete/src/autocomplete/types'; +import { + getQueryForFields, + getValidSignaturesAndTypesToSuggestNext, +} from '@kbn/esql-validation-autocomplete/src/autocomplete/helper'; +import { buildQueryUntilPreviousCommand } from '@kbn/esql-validation-autocomplete/src/shared/resources_helpers'; +import { getFieldsByTypeRetriever } from '@kbn/esql-validation-autocomplete/src/autocomplete/autocomplete'; +import { + TIME_SYSTEM_DESCRIPTIONS, + TIME_SYSTEM_PARAMS, +} from '@kbn/esql-validation-autocomplete/src/autocomplete/factories'; +import { isESQLFunction, isESQLNamedParamLiteral } from '@kbn/esql-ast/src/types'; import { monacoPositionToOffset } from '../shared/utils'; +import { monaco } from '../../../monaco_imports'; -export async function getHoverItem( +const ACCEPTABLE_TYPES_HOVER = i18n.translate('monaco.esql.hover.acceptableTypes', { + defaultMessage: 'Acceptable types', +}); + +async function getHoverItemForFunction( model: monaco.editor.ITextModel, position: monaco.Position, token: monaco.CancellationToken, astProvider: AstProviderFn, resourceRetriever?: ESQLCallbacks ) { - const innerText = model.getValue(); - const offset = monacoPositionToOffset(innerText, position); + const context: EditorContext = { + triggerCharacter: ' ', + triggerKind: 1, + }; - const { ast } = await astProvider(innerText); + const fullText = model.getValue(); + const offset = monacoPositionToOffset(fullText, position); + const innerText = fullText.substring(0, offset); + + const correctedQuery = correctQuerySyntax(innerText, context); + const { ast } = await astProvider(correctedQuery); const astContext = getAstContext(innerText, ast, offset); + + const { node } = astContext; + const commands = ast; + + if (isESQLFunction(node) && astContext.type === 'function') { + const queryForFields = getQueryForFields( + buildQueryUntilPreviousCommand(ast, correctedQuery), + ast + ); + const { getFieldsMap } = getFieldsByTypeRetriever(queryForFields, resourceRetriever); + + const fnDefinition = getFunctionDefinition(node.name); + // early exit on no hit + if (!fnDefinition) { + return undefined; + } + const fieldsMap: Map = await getFieldsMap(); + const anyVariables = collectVariables(commands, fieldsMap, innerText); + + const references = { + fields: fieldsMap, + variables: anyVariables, + }; + + const { typesToSuggestNext, enrichedArgs } = getValidSignaturesAndTypesToSuggestNext( + node, + references, + fnDefinition, + fullText, + offset + ); + + const hoveredArg: ESQLAstItem & { + dataType: string; + } = enrichedArgs[enrichedArgs.length - 1]; + const contents = []; + if (hoveredArg && isESQLNamedParamLiteral(hoveredArg)) { + const bestMatch = TIME_SYSTEM_PARAMS.find((p) => p.startsWith(hoveredArg.text)); + // We only know if it's start or end after first 3 characters (?t_s or ?t_e) + if (hoveredArg.text.length > 3 && bestMatch) { + Object.entries(TIME_SYSTEM_DESCRIPTIONS).forEach(([key, value]) => { + contents.push({ + value: `**${key}**: ${value}`, + }); + }); + } + } + + if (typesToSuggestNext.length > 0) { + contents.push({ + value: `**${ACCEPTABLE_TYPES_HOVER}**: ${typesToSuggestNext + .map( + ({ type, constantOnly }) => + `${constantOnly ? '_constant_ ' : ''}**${type}**` + + // If function arg is a constant date, helpfully suggest named time system params + (constantOnly && type === 'date' ? ` | ${TIME_SYSTEM_PARAMS.join(' | ')}` : '') + ) + .join(' | ')}`, + }); + } + const hints = + contents.length > 0 + ? { + range: new monaco.Range( + 1, + 1, + model.getLineCount(), + model.getLineMaxColumn(model.getLineCount()) + ), + contents, + } + : undefined; + return hints; + } +} + +export async function getHoverItem( + model: monaco.editor.ITextModel, + position: monaco.Position, + token: monaco.CancellationToken, + astProvider: AstProviderFn, + resourceRetriever?: ESQLCallbacks +) { + const fullText = model.getValue(); + const offset = monacoPositionToOffset(fullText, position); + + const { ast } = await astProvider(fullText); + const astContext = getAstContext(fullText, ast, offset); + const { getPolicyMetadata } = getPolicyHelper(resourceRetriever); + let hoverContent: monaco.languages.Hover = { + contents: [], + }; + const hoverItemsForFunction = await getHoverItemForFunction( + model, + position, + token, + astProvider, + resourceRetriever + ); + if (hoverItemsForFunction) { + hoverContent = hoverItemsForFunction; + } + if (['newCommand', 'list'].includes(astContext.type)) { return { contents: [] }; } @@ -44,12 +173,12 @@ export async function getHoverItem( const fnDefinition = getFunctionDefinition(astContext.node.name); if (fnDefinition) { - return { - contents: [ + hoverContent.contents.push( + ...[ { value: getFunctionSignatures(fnDefinition)[0].declaration }, { value: fnDefinition.description }, - ], - }; + ] + ); } } @@ -58,8 +187,8 @@ export async function getHoverItem( if (isSourceItem(astContext.node) && astContext.node.sourceType === 'policy') { const policyMetadata = await getPolicyMetadata(astContext.node.name); if (policyMetadata) { - return { - contents: [ + hoverContent.contents.push( + ...[ { value: `${i18n.translate('monaco.esql.hover.policyIndexes', { defaultMessage: '**Indexes**', @@ -75,8 +204,8 @@ export async function getHoverItem( defaultMessage: '**Fields**', })}: ${policyMetadata.enrichFields.join(', ')}`, }, - ], - }; + ] + ); } } if (isSettingItem(astContext.node)) { @@ -86,18 +215,17 @@ export async function getHoverItem( ); if (settingDef) { const mode = settingDef.values.find(({ name }) => name === astContext.node!.name)!; - return { - contents: [ + hoverContent.contents.push( + ...[ { value: settingDef.description }, { value: `**${mode.name}**: ${mode.description}`, }, - ], - }; + ] + ); } } } } - - return { contents: [] }; + return hoverContent; } diff --git a/packages/kbn-openapi-generator/src/template_service/templates/zod_operation_schema.handlebars b/packages/kbn-openapi-generator/src/template_service/templates/zod_operation_schema.handlebars index 80ca766585c03..759b0d9294b8a 100644 --- a/packages/kbn-openapi-generator/src/template_service/templates/zod_operation_schema.handlebars +++ b/packages/kbn-openapi-generator/src/template_service/templates/zod_operation_schema.handlebars @@ -34,7 +34,7 @@ export const {{@key}}: z.ZodType<{{@key}}, ZodTypeDef, {{@key}}Input> = {{> zod_ {{#if (shouldCastExplicitly this)}} {{!-- We need this temporary type to infer from it below, but in the end we want to export as a casted {{@key}} type --}} {{!-- error TS7056: The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed. --}} -const {{@key}}Internal = {{> zod_schema_item}}; +export const {{@key}}Internal = {{> zod_schema_item}}; export type {{@key}} = z.infer; export const {{@key}} = {{@key}}Internal as z.ZodType<{{@key}}>; diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index aea38badef492..2dbc5ed9acea8 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -86,6 +86,7 @@ pageLoadAssetSize: inspector: 148711 integrationAssistant: 19524 interactiveSetup: 80000 + inventory: 27430 investigate: 17970 investigateApp: 91898 kibanaOverview: 56279 diff --git a/packages/kbn-router-to-openapispec/openapi-types.d.ts b/packages/kbn-router-to-openapispec/openapi-types.d.ts new file mode 100644 index 0000000000000..90c034a855fdc --- /dev/null +++ b/packages/kbn-router-to-openapispec/openapi-types.d.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +// eslint-disable-next-line import/no-extraneous-dependencies +export * from 'openapi-types'; + +declare module 'openapi-types' { + export namespace OpenAPIV3 { + export interface BaseSchemaObject { + // Custom OpenAPI field added by Kibana for a new field at the shema level. + 'x-discontinued'?: string; + } + } +} diff --git a/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap b/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap index a3c634f582d43..818c0502ad774 100644 --- a/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap +++ b/packages/kbn-router-to-openapispec/src/__snapshots__/generate_oas.test.ts.snap @@ -164,6 +164,7 @@ Object { "deprecated": true, "description": "deprecated foo", "type": "string", + "x-discontinued": "route discontinued version or date", }, "foo": Object { "type": "string", @@ -224,6 +225,7 @@ OK response oas-test-version-2", "tags": Array [ "versioned", ], + "x-discontinued": "route discontinued version or date", }, }, "/foo/{id}/{path*}": Object { @@ -596,6 +598,7 @@ OK response oas-test-version-2", "deprecated": true, "description": "deprecated foo", "type": "string", + "x-discontinued": "route discontinued version or date", }, "foo": Object { "type": "string", diff --git a/packages/kbn-router-to-openapispec/src/generate_oas.test.fixture.ts b/packages/kbn-router-to-openapispec/src/generate_oas.test.fixture.ts index 1310ea250f972..b3f20da38915b 100644 --- a/packages/kbn-router-to-openapispec/src/generate_oas.test.fixture.ts +++ b/packages/kbn-router-to-openapispec/src/generate_oas.test.fixture.ts @@ -34,6 +34,7 @@ export const sharedOas = { '/bar': { get: { deprecated: true, + 'x-discontinued': 'route discontinued version or date', operationId: '%2Fbar#0', parameters: [ { diff --git a/packages/kbn-router-to-openapispec/src/generate_oas.test.util.ts b/packages/kbn-router-to-openapispec/src/generate_oas.test.util.ts index ebee2635e4459..898f234cdc310 100644 --- a/packages/kbn-router-to-openapispec/src/generate_oas.test.util.ts +++ b/packages/kbn-router-to-openapispec/src/generate_oas.test.util.ts @@ -64,6 +64,7 @@ export const getVersionedRouterDefaults = (bodySchema?: RuntimeSchema) => ({ summary: 'versioned route', access: 'public', deprecated: true, + discontinued: 'route discontinued version or date', options: { tags: ['ignore-me', 'oas-tag:versioned'], }, @@ -79,7 +80,13 @@ export const getVersionedRouterDefaults = (bodySchema?: RuntimeSchema) => ({ schema.object({ foo: schema.string(), deprecatedFoo: schema.maybe( - schema.string({ meta: { description: 'deprecated foo', deprecated: true } }) + schema.string({ + meta: { + description: 'deprecated foo', + deprecated: true, + 'x-discontinued': 'route discontinued version or date', + }, + }) ), }), }, diff --git a/packages/kbn-router-to-openapispec/src/generate_oas.ts b/packages/kbn-router-to-openapispec/src/generate_oas.ts index 97c18aeec6aeb..8bc3333193624 100644 --- a/packages/kbn-router-to-openapispec/src/generate_oas.ts +++ b/packages/kbn-router-to-openapispec/src/generate_oas.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import type { OpenAPIV3 } from 'openapi-types'; import type { CoreVersionedRouter, Router } from '@kbn/core-http-router-server-internal'; +import type { OpenAPIV3 } from 'openapi-types'; import { OasConverter } from './oas_converter'; import { createOperationIdCounter } from './operation_id_counter'; import { processRouter } from './process_router'; diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/parse.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/parse.ts index 6d1784d57f576..2caf40d04e510 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/parse.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/parse.ts @@ -9,8 +9,8 @@ import Joi from 'joi'; import joiToJsonParse from 'joi-to-json'; -import type { OpenAPIV3 } from 'openapi-types'; import { omit } from 'lodash'; +import type { OpenAPIV3 } from 'openapi-types'; import { createCtx, postProcessMutations } from './post_process_mutations'; import type { IContext } from './post_process_mutations'; diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/index.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/index.ts index f8322611d8547..7253492eca4ca 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/index.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/index.ts @@ -11,7 +11,7 @@ import Joi from 'joi'; import { metaFields } from '@kbn/config-schema'; import type { OpenAPIV3 } from 'openapi-types'; import { parse } from '../../parse'; -import { deleteField, stripBadDefault, processDeprecated } from './utils'; +import { deleteField, stripBadDefault, processDeprecated, processDiscontinued } from './utils'; import { IContext } from '../context'; const { @@ -58,13 +58,14 @@ export const processMap = (ctx: IContext, schema: OpenAPIV3.SchemaObject): void export const processAllTypes = (schema: OpenAPIV3.SchemaObject): void => { processDeprecated(schema); + processDiscontinued(schema); stripBadDefault(schema); }; export const processAnyType = (schema: OpenAPIV3.SchemaObject): void => { // Map schema to an empty object: `{}` for (const key of Object.keys(schema)) { - deleteField(schema as Record, key); + deleteField(schema as unknown as Record, key); } }; diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.ts index 4a8de19287471..5b5a176d8b59e 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/object.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import type { OpenAPIV3 } from 'openapi-types'; import { metaFields } from '@kbn/config-schema'; +import type { OpenAPIV3 } from 'openapi-types'; import { deleteField, stripBadDefault } from './utils'; const { META_FIELD_X_OAS_OPTIONAL } = metaFields; diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/utils.ts b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/utils.ts index a3f4a0bba9e38..abce6d470a35d 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/utils.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/kbn_config_schema/post_process_mutations/mutations/utils.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import type { OpenAPIV3 } from 'openapi-types'; import { metaFields } from '@kbn/config-schema'; +import type { OpenAPIV3 } from 'openapi-types'; export const stripBadDefault = (schema: OpenAPIV3.SchemaObject): void => { if (schema.default?.special === 'deep') { @@ -35,9 +35,16 @@ export const processDeprecated = (schema: OpenAPIV3.SchemaObject): void => { } }; +export const processDiscontinued = (schema: OpenAPIV3.SchemaObject): void => { + if (metaFields.META_FIELD_X_OAS_DISCONTINUED in schema) { + schema['x-discontinued'] = schema[metaFields.META_FIELD_X_OAS_DISCONTINUED] as string; + deleteField(schema, metaFields.META_FIELD_X_OAS_DISCONTINUED); + } +}; + /** Just for type convenience */ -export const deleteField = (schema: Record, field: string): void => { - delete schema[field]; +export const deleteField = (schema: object, field: string): void => { + delete (schema as Record)[field]; }; export const isAnyType = (schema: OpenAPIV3.SchemaObject): boolean => { diff --git a/packages/kbn-router-to-openapispec/src/oas_converter/zod/lib.ts b/packages/kbn-router-to-openapispec/src/oas_converter/zod/lib.ts index 655119decdd1a..7d247ace892b5 100644 --- a/packages/kbn-router-to-openapispec/src/oas_converter/zod/lib.ts +++ b/packages/kbn-router-to-openapispec/src/oas_converter/zod/lib.ts @@ -8,9 +8,10 @@ */ import { z, isZod } from '@kbn/zod'; -import type { OpenAPIV3 } from 'openapi-types'; // eslint-disable-next-line import/no-extraneous-dependencies import zodToJsonSchema from 'zod-to-json-schema'; +import type { OpenAPIV3 } from 'openapi-types'; + import { KnownParameters } from '../../type'; import { validatePathParameters } from '../common'; diff --git a/packages/kbn-router-to-openapispec/src/process_router.test.ts b/packages/kbn-router-to-openapispec/src/process_router.test.ts index 67c9a23dcae27..22e03efdf08fc 100644 --- a/packages/kbn-router-to-openapispec/src/process_router.test.ts +++ b/packages/kbn-router-to-openapispec/src/process_router.test.ts @@ -86,7 +86,7 @@ describe('processRouter', () => { getRoutes: () => [ { path: '/foo', - options: {}, + options: { access: 'internal', deprecated: true, discontinued: 'discontinued router' }, handler: jest.fn(), validationSchemas: { request: { body: schema.object({}) } }, }, diff --git a/packages/kbn-router-to-openapispec/src/process_router.ts b/packages/kbn-router-to-openapispec/src/process_router.ts index 6bf41397f65c6..4437e35ea1f3e 100644 --- a/packages/kbn-router-to-openapispec/src/process_router.ts +++ b/packages/kbn-router-to-openapispec/src/process_router.ts @@ -66,6 +66,7 @@ export const processRouter = ( tags: route.options.tags ? extractTags(route.options.tags) : [], ...(route.options.description ? { description: route.options.description } : {}), ...(route.options.deprecated ? { deprecated: route.options.deprecated } : {}), + ...(route.options.discontinued ? { 'x-discontinued': route.options.discontinued } : {}), requestBody: !!validationSchemas?.body ? { content: { diff --git a/packages/kbn-router-to-openapispec/src/process_versioned_router.test.ts b/packages/kbn-router-to-openapispec/src/process_versioned_router.test.ts index 2ad1b2feb879a..9addfdf22da01 100644 --- a/packages/kbn-router-to-openapispec/src/process_versioned_router.test.ts +++ b/packages/kbn-router-to-openapispec/src/process_versioned_router.test.ts @@ -153,6 +153,8 @@ const createTestRoute: () => VersionedRouterRoute = () => ({ method: 'get', options: { access: 'public', + deprecated: true, + discontinued: 'discontinued versioned router', options: { body: { access: ['application/test+json'] } as any }, }, handlers: [ diff --git a/packages/kbn-router-to-openapispec/src/process_versioned_router.ts b/packages/kbn-router-to-openapispec/src/process_versioned_router.ts index 6aeed11e6d71f..97b92f92fde57 100644 --- a/packages/kbn-router-to-openapispec/src/process_versioned_router.ts +++ b/packages/kbn-router-to-openapispec/src/process_versioned_router.ts @@ -98,6 +98,7 @@ export const processVersionedRouter = ( tags: route.options.options?.tags ? extractTags(route.options.options.tags) : [], ...(route.options.description ? { description: route.options.description } : {}), ...(route.options.deprecated ? { deprecated: route.options.deprecated } : {}), + ...(route.options.discontinued ? { 'x-discontinued': route.options.discontinued } : {}), requestBody: hasBody ? { content: hasVersionFilter diff --git a/packages/kbn-router-to-openapispec/src/type.ts b/packages/kbn-router-to-openapispec/src/type.ts index 75bf966e62a09..09dc247e5a5c9 100644 --- a/packages/kbn-router-to-openapispec/src/type.ts +++ b/packages/kbn-router-to-openapispec/src/type.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import type { OpenAPIV3 } from 'openapi-types'; - +import type { OpenAPIV3 } from '../openapi-types'; +export type { OpenAPIV3 } from '../openapi-types'; export interface KnownParameters { [paramName: string]: { optional: boolean }; } diff --git a/packages/kbn-router-to-openapispec/src/util.test.ts b/packages/kbn-router-to-openapispec/src/util.test.ts index c72cc746ec91c..79b4ddf8eba84 100644 --- a/packages/kbn-router-to-openapispec/src/util.test.ts +++ b/packages/kbn-router-to-openapispec/src/util.test.ts @@ -14,6 +14,7 @@ import { getXsrfHeaderForMethod, mergeResponseContent, prepareRoutes, + getPathParameters, } from './util'; import { assignToPaths, extractTags } from './util'; @@ -230,3 +231,23 @@ describe('getXsrfHeaderForMethod', () => { expect(getXsrfHeaderForMethod(method as RouteMethod, options)).toEqual(expected); }); }); + +describe('getPathParameters', () => { + test.each([ + ['', {}], + ['/', {}], + ['{}', {}], + ['{{}', {}], + ['{badinput', {}], + ['{ok}', { ok: { optional: false } }], + ['{ok?}', { ok: { optional: true } }], + ['{ok??}', {}], + ['/api/{path}/is/{cool}', { path: { optional: false }, cool: { optional: false } }], + [ + '/{required}/and/{optional?}', + { required: { optional: false }, optional: { optional: true } }, + ], + ])('%s', (input, output) => { + expect(getPathParameters(input)).toEqual(output); + }); +}); diff --git a/packages/kbn-router-to-openapispec/src/util.ts b/packages/kbn-router-to-openapispec/src/util.ts index c30d11fa27e15..1aa2a080ccc18 100644 --- a/packages/kbn-router-to-openapispec/src/util.ts +++ b/packages/kbn-router-to-openapispec/src/util.ts @@ -62,7 +62,7 @@ export const buildGlobalTags = (paths: OpenAPIV3.PathsObject, additionalTags: st }; export const getPathParameters = (path: string): KnownParameters => { - return Array.from(path.matchAll(/\{(.+?)\}/g)).reduce((acc, [_, key]) => { + return Array.from(path.matchAll(/\{([^{}?]+\??)\}/g)).reduce((acc, [_, key]) => { const optional = key.endsWith('?'); acc[optional ? key.slice(0, key.length - 1) : key] = { optional }; return acc; diff --git a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap index 87aab754d5867..4ab1374ec2565 100644 --- a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap +++ b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap @@ -1,659 +1,224 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`FieldComponent should allow user to clear values if isClearable is true 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
+
+
+
-
-
- -
-
- - -
-
+
-
-
-
- , - "container":
-
-
-
-
- -
-
+ - -
+
-
, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
+
`; exports[`FieldComponent should render the component disabled if isDisabled is true 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
-
-
-
-
-
- -
-
-
-
-
-
- , - "container":
+
+
-
- -
+
-
, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
+
`; exports[`FieldComponent should render the component enabled and displays the selected field correctly 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
+
+
+
-
-
- -
-
- -
-
+
-
-
-
- , - "container":
-
-
-
-
- -
-
- -
+
-
, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
+
`; exports[`FieldComponent should render the loading spinner if isLoading is true when clicked 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
+
+
+
-
-
- -
-
- -
-
+
-
-
-
- , - "container":
-
-
-
-
- -
-
- -
+
-
, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
+
`; diff --git a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/index.test.tsx b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/index.test.tsx index e028a83ce1423..b795abc5842f2 100644 --- a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/index.test.tsx +++ b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/index.test.tsx @@ -31,7 +31,7 @@ describe('FieldComponent', () => { selectedField={getField('machine.os.raw')} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); const comboBox = wrapper.getByTestId('fieldAutocompleteComboBox'); const input = within(comboBox).getByRole('combobox'); expect(input).toHaveAttribute('value', 'machine.os.raw'); @@ -52,7 +52,7 @@ describe('FieldComponent', () => { selectedField={getField('machine.os.raw')} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('fieldAutocompleteComboBox').querySelector('input')).toBeDisabled(); }); it('should render the loading spinner if isLoading is true when clicked', () => { @@ -72,7 +72,7 @@ describe('FieldComponent', () => { /> ); const fieldAutocompleteComboBox = wrapper.getByTestId('fieldAutocompleteComboBox'); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); fireEvent.click(fieldAutocompleteComboBox); expect(wrapper.getByRole('progressbar')).toBeInTheDocument(); }); @@ -92,7 +92,7 @@ describe('FieldComponent', () => { selectedField={getField('machine.os.raw')} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('comboBoxClearButton')).toBeInTheDocument(); }); it('should change the selected value', async () => { diff --git a/packages/kbn-securitysolution-autocomplete/src/field_value_match/index.test.tsx b/packages/kbn-securitysolution-autocomplete/src/field_value_match/index.test.tsx index 1247a9cd3d5bd..e83d79b180e90 100644 --- a/packages/kbn-securitysolution-autocomplete/src/field_value_match/index.test.tsx +++ b/packages/kbn-securitysolution-autocomplete/src/field_value_match/index.test.tsx @@ -32,6 +32,13 @@ describe('AutocompleteFieldMatchComponent', () => { .fn() .mockResolvedValue([false, true, ['value 3', 'value 4'], jest.fn()]); + const findEuiComboBox = () => + wrapper.find(EuiComboBox).props() as unknown as { + onChange: (a: EuiComboBoxOptionOption[]) => void; + onSearchChange: (a: string) => void; + onCreateOption: (a: string) => void; + }; + beforeEach(() => { (useFieldValueAutocomplete as jest.Mock).mockReturnValue([ false, @@ -171,7 +178,7 @@ describe('AutocompleteFieldMatchComponent', () => { ).toEqual('127.0.0.1'); }); - test('it invokes "onChange" when new value created', async () => { + test('it invokes "onChange" when new value created', () => { const mockOnChange = jest.fn(); wrapper = mount( { /> ); - ( - wrapper.find(EuiComboBox).props() as unknown as { - onCreateOption: (a: string) => void; - } - ).onCreateOption('127.0.0.1'); + findEuiComboBox().onCreateOption('127.0.0.1'); expect(mockOnChange).toHaveBeenCalledWith('127.0.0.1'); }); - test('it invokes "onChange" when new value selected', async () => { + test('it invokes "onChange" when new value selected', () => { const mockOnChange = jest.fn(); wrapper = mount( { /> ); - ( - wrapper.find(EuiComboBox).props() as unknown as { - onChange: (a: EuiComboBoxOptionOption[]) => void; - } - ).onChange([{ label: 'value 1' }]); + findEuiComboBox().onChange([{ label: 'value 1' }]); expect(mockOnChange).toHaveBeenCalledWith('value 1'); }); + test('it invokes "onChange" with empty value (i.e. clears selection) when new value searched', () => { + const mockOnChange = jest.fn(); + wrapper = mount( + + ); + + act(() => { + findEuiComboBox().onSearchChange('value 12'); + }); + + expect(mockOnChange).toHaveBeenCalledWith(''); + }); + test('should show the warning helper text if the new value contains spaces when change', async () => { (useFieldValueAutocomplete as jest.Mock).mockReturnValue([ false, @@ -259,13 +286,7 @@ describe('AutocompleteFieldMatchComponent', () => { /> ); - await waitFor(() => - ( - wrapper.find(EuiComboBox).props() as unknown as { - onChange: (a: EuiComboBoxOptionOption[]) => void; - } - ).onChange([{ label: ' value 1 ' }]) - ); + await waitFor(() => findEuiComboBox().onChange([{ label: ' value 1 ' }])); wrapper.update(); expect(mockOnChange).toHaveBeenCalledWith(' value 1 '); @@ -293,11 +314,7 @@ describe('AutocompleteFieldMatchComponent', () => { /> ); act(() => { - ( - wrapper.find(EuiComboBox).props() as unknown as { - onSearchChange: (a: string) => void; - } - ).onSearchChange('value 1'); + findEuiComboBox().onSearchChange('value 1'); }); expect(useFieldValueAutocomplete).toHaveBeenCalledWith({ @@ -313,6 +330,54 @@ describe('AutocompleteFieldMatchComponent', () => { selectedField: getField('machine.os.raw'), }); }); + + test('it refreshes autocomplete with search query when input field is cleared', () => { + wrapper = mount( + + ); + + act(() => { + findEuiComboBox().onSearchChange('value 1'); + }); + act(() => { + findEuiComboBox().onSearchChange(''); + }); + + // 1st call is initial render, 2nd call sets the search query: + expect(useFieldValueAutocomplete).toHaveBeenNthCalledWith(2, { + autocompleteService: autocompleteStartMock, + fieldValue: 'windows', + indexPattern: { fields, id: '1234', title: 'logstash-*' }, + operatorType: 'match', + query: 'value 1', + selectedField: getField('machine.os.raw'), + }); + // last call is the refresh when input field is cleared + expect(useFieldValueAutocomplete).toHaveBeenLastCalledWith({ + autocompleteService: autocompleteStartMock, + fieldValue: 'windows', + indexPattern: { fields, id: '1234', title: 'logstash-*' }, + operatorType: 'match', + query: '', + selectedField: getField('machine.os.raw'), + }); + }); + test('should show the warning helper text if the new value contains spaces when searching a new query', () => { wrapper = mount( { /> ); act(() => { - ( - wrapper.find(EuiComboBox).props() as unknown as { - onSearchChange: (a: string) => void; - } - ).onSearchChange(' value 1'); + findEuiComboBox().onSearchChange(' value 1'); }); wrapper.update(); @@ -345,6 +406,7 @@ describe('AutocompleteFieldMatchComponent', () => { expect(euiFormHelptext.length).toBeTruthy(); expect(euiFormHelptext.text()).toEqual('Warning: there is a space'); }); + test('should show the warning helper text if selectedValue contains spaces when editing', () => { wrapper = mount( { expect(euiFormHelptext.length).toBeTruthy(); expect(euiFormHelptext.text()).toEqual('Warning: there is a space'); }); + test('should not show the warning helper text if selectedValue is falsy', () => { wrapper = mount( -
- , - "container":
, - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; +exports[`ExceptionItemCardComments should not render comments when the length is falsy 1`] = `
`; exports[`ExceptionItemCardComments should render comments panel closed 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
+
+
+
- + +
-
- , - "container":
-
- -
-
-
-
    -
  1. +
+
-
-

- some old comment -

-
+

+ some old comment +

- -
  • +
  • +
  • +
    +
    +
    -
    -

    - some old comment -

    -
    +

    + some old comment +

    -
  • - -
    +
    + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`ExceptionItemCardComments should render comments panel opened when accordion is clicked 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    +
    +
    -
    -
    - -
    -
    -
    -
      -
    1. -
      -
      - -
      -
      -
      -
      -
      -

      - some old comment -

      -
      -
      -
      -
    2. -
    3. -
      -
      - -
      -
      -
      -
      -
      -

      - some old comment -

      -
      -
      -
      -
    4. -
    -
    + Show comments (2)
    -
    -
    + +
    -
    - , - "container":
    -
    - -
    -
    -
    -
      -
    1. +
    +
    -
    -

    - some old comment -

    -
    +

    + some old comment +

    - -
  • +
  • +
  • +
    +
    +
    -
    -

    - some old comment -

    -
    +

    + some old comment +

    -
  • - -
    +
    + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/comments/comments.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/comments/comments.test.tsx index 9cedd50ab6171..c8c8e92cd6c70 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/comments/comments.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/comments/comments.test.tsx @@ -19,7 +19,7 @@ describe('ExceptionItemCardComments', () => { const wrapper = render( ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.queryByTestId('ExceptionItemCardCommentsContainer')).not.toBeInTheDocument(); }); @@ -31,7 +31,7 @@ describe('ExceptionItemCardComments', () => { dataTestSubj="ExceptionItemCardCommentsContainer" /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('ExceptionItemCardCommentsContainer')).toHaveTextContent( i18n.exceptionItemCardCommentsAccordion(comments.length) @@ -52,6 +52,6 @@ describe('ExceptionItemCardComments', () => { expect(wrapper.getByTestId('accordionContentPanel')).toBeVisible(); expect(wrapper.getByTestId('accordionCommentList')).toBeVisible(); expect(wrapper.getByTestId('accordionCommentList')).toHaveTextContent('some old comment'); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); }); }); diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/entry_content/__snapshots__/entry_content.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/entry_content/__snapshots__/entry_content.test.tsx.snap index 9927750e4f84e..f814be75fa63e 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/entry_content/__snapshots__/entry_content.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/entry_content/__snapshots__/entry_content.test.tsx.snap @@ -1,164 +1,56 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`EntryContent should render a nested value 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    -
    - - - -
    - - - - - - - - included in - - - - list_id - - -
    -
    -
    -
    -
    - , - "container":
    +
    +
    + + +
    + + -
    - - - + included in + - - included in - - - - list_id - + list_id -
    +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/entry_content/entry_content.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/entry_content/entry_content.test.tsx index 7fc34c59521fb..7eb141493ef40 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/entry_content/entry_content.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/entry_content/entry_content.test.tsx @@ -53,6 +53,6 @@ describe('EntryContent', () => { expect(wrapper.getByTestId('EntryContentNestedEntry')).toBeInTheDocument(); expect(wrapper.getByTestId('nstedEntryIcon')).toBeInTheDocument(); expect(wrapper.getByTestId('entryValueExpression')).toHaveTextContent('list_id'); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); }); }); diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/os_conditions/__snapshots__/os_conditions.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/os_conditions/__snapshots__/os_conditions.test.tsx.snap index 1ace7211d5e5f..3aa50a6d0a2fb 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/os_conditions/__snapshots__/os_conditions.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/os_conditions/__snapshots__/os_conditions.test.tsx.snap @@ -1,467 +1,126 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`OsCondition should render one OS_LABELS 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    +
    + + - - - - - - OS - - - - - IS - - - - Mac - - - -
    -
    - , - "container":
    -
    - + + + OS + + + + - - - - OS - + IS + - - IS - - - - Mac - + Mac - -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} + +
    +
    +
    `; exports[`OsCondition should render two OS_LABELS 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    +
    + + + + + + OS + + + - - - - - - OS - - - - - IS - - - - Mac, Windows - - - -
    -
    - , - "container":
    -
    - - - - - OS - + IS + - - IS - - - - Mac, Windows - + Mac, Windows - -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} + +
    +
    +
    `; exports[`OsCondition should return any os sent 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    +
    + + + + + + OS + + + - - - - - - OS - - - - - IS - - - - MacPro - - - -
    -
    - , - "container":
    -
    - - - - - OS - + IS + - - IS - - - - MacPro - + MacPro - -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} + +
    +
    +
    `; -exports[`OsCondition should return empty body 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    - , - "container":
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; +exports[`OsCondition should return empty body 1`] = `
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/os_conditions/os_conditions.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/os_conditions/os_conditions.test.tsx index 593eb06659fab..3aea8d5ed0065 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/os_conditions/os_conditions.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/conditions/os_conditions/os_conditions.test.tsx @@ -20,7 +20,7 @@ describe('OsCondition', () => { expect(wrapper.getByTestId('osValue')).toHaveTextContent( `${i18n.CONDITION_OPERATOR_TYPE_MATCH} ${OS_LABELS.macos}` ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); }); it('should render two OS_LABELS', () => { const wrapper = render(); @@ -28,11 +28,11 @@ describe('OsCondition', () => { expect(wrapper.getByTestId('osValue')).toHaveTextContent( `${i18n.CONDITION_OPERATOR_TYPE_MATCH} ${OS_LABELS.macos}, ${OS_LABELS.windows}` ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); }); it('should return empty body', () => { const wrapper = render(); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); }); it('should return any os sent', () => { const wrapper = render(); @@ -40,6 +40,6 @@ describe('OsCondition', () => { expect(wrapper.getByTestId('osValue')).toHaveTextContent( `${i18n.CONDITION_OPERATOR_TYPE_MATCH} MacPro` ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); }); }); diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/details_info/__snapshots__/details_info.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/details_info/__snapshots__/details_info.test.tsx.snap index 66e6115e76a09..09b6237cc7cc8 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/details_info/__snapshots__/details_info.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/details_info/__snapshots__/details_info.test.tsx.snap @@ -1,235 +1,63 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`MetaInfoDetails should render lastUpdate as JSX Element 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    +
    +
    -
    -
    - created_by -
    -
    -
    - - - -

    - Last update value -

    -
    -
    -
    -
    -
    -
    - by -
    -
    -
    -
    -
    - - - - value - - - -
    -
    -
    + created_by
    - , - "container":
    -
    -
    - created_by -
    -
    -
    - -

    - Last update value -

    -
    +

    + Last update value +

    -
    -
    -
    - by -
    -
    + +
    +
    -
    -
    - - - - value - - - -
    -
    + by
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; - -exports[`MetaInfoDetails should render lastUpdate as string 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    -
    - created_by -
    -
    -
    - last update + value
    -
    -
    - by -
    -
    -
    -
    -
    - - - - value - - - -
    -
    -
    - , - "container":
    +
    +
    +`; + +exports[`MetaInfoDetails should render lastUpdate as string 1`] = ` +
    +
    -
    - created_by -
    + created_by
    -
    +
    + - - last update - + last update -
    + +
    +
    -
    - by -
    + by
    +
    +
    -
    - - value - + value -
    +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/details_info/details_info.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/details_info/details_info.test.tsx index 1f2cd6d3e57d2..cbb48e172322e 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/details_info/details_info.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/details_info/details_info.test.tsx @@ -21,7 +21,7 @@ describe('MetaInfoDetails', () => { lastUpdateValue="value" /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('MetaInfoDetailslastUpdate')).toHaveTextContent('last update'); }); it('should render lastUpdate as JSX Element', () => { @@ -33,7 +33,7 @@ describe('MetaInfoDetails', () => { lastUpdateValue="value" /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('MetaInfoDetailslastUpdate')).toHaveTextContent('Last update value'); }); }); diff --git a/packages/kbn-securitysolution-exception-list-components/src/generate_linked_rules_menu_item/__snapshots__/generate_linked_rules_menu_item.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/generate_linked_rules_menu_item/__snapshots__/generate_linked_rules_menu_item.test.tsx.snap index a4e5a45683de8..7cdcf14d17aad 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/generate_linked_rules_menu_item/__snapshots__/generate_linked_rules_menu_item.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/generate_linked_rules_menu_item/__snapshots__/generate_linked_rules_menu_item.test.tsx.snap @@ -1,247 +1,71 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`generateLinedRulesMenuItems should render the first linked rules with left icon and does not apply the css if the length is 1 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    +
    +
    - -
    -
    - -
    - -
    -
    -
    -
    - , - "container":
    -
    - + +
    - -
    -
    - + Simple Rule Query +
    - -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    + +
    +
    `; exports[`generateLinedRulesMenuItems should render the second linked rule and apply the css when the length is > 1 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    - - - -
    -
    - , - "container":
    -
    +
    + -
    - + Simple Rule Query 2 +
    -
    -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    + +
    +
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/generate_linked_rules_menu_item/generate_linked_rules_menu_item.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/generate_linked_rules_menu_item/generate_linked_rules_menu_item.test.tsx index 22696644d31dd..01f708a0f6bdc 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/generate_linked_rules_menu_item/generate_linked_rules_menu_item.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/generate_linked_rules_menu_item/generate_linked_rules_menu_item.test.tsx @@ -47,7 +47,7 @@ describe('generateLinedRulesMenuItems', () => { result.map((link) => { const wrapper = render(link); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('generateLinedRulesMenuItemsTestActionItem1a2b3c')); expect(wrapper.getByTestId('generateLinedRulesMenuItemsTestLeftIcon')); }); @@ -56,7 +56,7 @@ describe('generateLinedRulesMenuItems', () => { const result: ReactElement[] = getSecurityLinkAction(dataTestSubj); const wrapper = render(result[1]); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('generateLinedRulesMenuItemsTestActionItem2a2b3c')); }); }); diff --git a/packages/kbn-securitysolution-exception-list-components/src/header_menu/__snapshots__/header_menu.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/header_menu/__snapshots__/header_menu.test.tsx.snap index 5f87fe1383634..d7becb3e8ddc2 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/header_menu/__snapshots__/header_menu.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/header_menu/__snapshots__/header_menu.test.tsx.snap @@ -1,865 +1,211 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`HeaderMenu should not render icon 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - -
    -
    -
    - , - "container":
    +
    +
    -
    - -
    +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`HeaderMenu should render button icon disabled 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - -
    -
    -
    -
    -
    - -
    - , - "container":
    +
    +
    -
    - -
    +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`HeaderMenu should render button icon with default settings 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - -
    -
    -
    - , - "container":
    +
    +
    -
    - -
    +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`HeaderMenu should render custom Actions 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - -
    -
    -
    - , - "container":
    +
    +
    -
    - -
    + color="inherit" + data-euiicon-type="boxesHorizontal" + /> + + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`HeaderMenu should render empty button icon with actions and open the popover when clicked 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - -
    -
    -
    - , - "container":
    +
    +
    -
    - -
    + class="eui-textTruncate euiButtonEmpty__text" + /> + + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`HeaderMenu should render empty button icon with actions and should not open the popover when clicked if disableActions 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - -
    -
    -
    - , - "container":
    +
    +
    -
    - -
    + class="eui-textTruncate euiButtonEmpty__text" + /> + + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`HeaderMenu should render empty button icon with different icon settings 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - -
    -
    -
    - , - "container":
    +
    +
    -
    - -
    + class="eui-textTruncate euiButtonEmpty__text" + /> + + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/header_menu/header_menu.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/header_menu/header_menu.test.tsx index e680f259a39c5..7e14b503721b5 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/header_menu/header_menu.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/header_menu/header_menu.test.tsx @@ -19,7 +19,7 @@ describe('HeaderMenu', () => { ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('ButtonIcon')).toBeInTheDocument(); expect(wrapper.queryByTestId('EmptyButton')).not.toBeInTheDocument(); @@ -28,7 +28,7 @@ describe('HeaderMenu', () => { it('should not render icon', () => { const wrapper = render(); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('ButtonIcon')).toBeInTheDocument(); expect(wrapper.queryByTestId('EmptyButton')).not.toBeInTheDocument(); @@ -44,7 +44,7 @@ describe('HeaderMenu', () => { ); fireEvent.click(wrapper.getByTestId('ButtonIcon')); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('ActionItemdelete')).toBeDisabled(); expect(wrapper.getByTestId('ActionItemedit')).toBeEnabled(); }); @@ -60,7 +60,7 @@ describe('HeaderMenu', () => { /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('EmptyButton')).toBeInTheDocument(); expect(wrapper.queryByTestId('ButtonIcon')).not.toBeInTheDocument(); @@ -79,7 +79,7 @@ describe('HeaderMenu', () => { /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('EmptyButton')).toBeInTheDocument(); expect(wrapper.queryByTestId('ButtonIcon')).not.toBeInTheDocument(); @@ -99,7 +99,7 @@ describe('HeaderMenu', () => { /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('EmptyButton')).toBeInTheDocument(); expect(wrapper.queryByTestId('ButtonIcon')).not.toBeInTheDocument(); @@ -129,7 +129,7 @@ describe('HeaderMenu', () => { /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('EmptyButton')).toBeInTheDocument(); fireEvent.click(wrapper.getByTestId('EmptyButton')); diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/__snapshots__/list_header.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/list_header/__snapshots__/list_header.test.tsx.snap index 4a8527faa5096..b6c22f01f14b8 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/__snapshots__/list_header.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/__snapshots__/list_header.test.tsx.snap @@ -1,60 +1,98 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ExceptionListHeader should render edit modal 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    +
    +
    +
    + +
    +
    - + List Name + +
    +
    + +
    +
    +
    -
    -

    +
    - List Name + List description
    -

    -
    -
    -

    +

    -
    -
    - - List description - -
    -
    - -
    -
    -
    -
    - List ID - : -
    -
    - List_Id -
    -
    + List ID + :
    -

    +
    + List_Id +
    +
    -
    +

    +
    +
    +
    +
    -
    -
    +
    +
    +
    + + +
    +
    +
    -
    -
    -
    - -
    -
    -
    -
    +
    -
    -
    +
    +
    +`; + +exports[`ExceptionListHeader should render the List Header with name, default description and actions 1`] = ` +
    +
    +
    - -
    - , - "container":
    -
    -
    -
    - -
    -
    -

    - List Name + Linked to 0 rules
    -
    -

    -
    -
    -

    - - List description - -
    -
    -
    -
    - List ID - : -
    -
    - List_Id -
    -
    -

    +
    -
    +
    +
    +
    +
    +
    +`; + +exports[`ExceptionListHeader should render the List Header with name, default description and disabled actions because of the ReadOnly mode 1`] = ` +
    +
    +
    +
    + +
    +
    +
    +

    -
    -
    - - Linked to 0 rules - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    + List Name +
    +
    -
    -

    -
    -
    -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; - -exports[`ExceptionListHeader should render the List Header with name, default description and actions 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    -
    - +
    -
    -

    +
    - List Name + Add a description
    - -
    + />
    -

    -
    -
    -

    +

    -
    -
    - - Add a description - -
    -
    - -
    -
    -
    -
    - List ID - : -
    -
    - List_Id -
    -
    + List ID + :
    -

    -
    -
    -
    -
    -
    -
    - - Linked to 0 rules - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    + List_Id
    -
    +

    -
    -
    -
    - , - "container":
    -
    -
    -
    - -
    -

    - List Name + Linked to 0 rules
    -
    -

    -
    -
    -

    - - Add a description - -
    -
    -
    -
    - List ID - : -
    -
    - List_Id -
    -
    -
    -

    -
    -
    -
    -
    -
    -
    -
    - - Linked to 0 rules - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    + +
    +
    `; -exports[`ExceptionListHeader should render the List Header with name, default description and disabled actions because of the ReadOnly mode 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    +
    +
    +
    + +
    +
    - + List Name + +
    +
    +
    +
    -
    -

    +
    - List Name + Add a description
    -

    -
    -
    -

    +

    -
    -
    - - Add a description - -
    -
    -
    -
    -
    - List ID - : -
    -
    - List_Id -
    -
    + List ID + : +
    +
    + List_Id
    -

    +
    -
    +

    +
    +
    +
    +
    -
    -
    - - Linked to 0 rules - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - , - "container":
    -
    -
    -
    - -
    -
    -
    -

    -
    -
    - - List Name + Linked to 0 rules
    -
    -

    -
    -
    -

    -

    - - Add a description - -
    -
    -
    -
    -
    - List ID - : -
    -
    - List_Id -
    -
    -
    -

    -
    -
    -
    -
    -
    -
    -
    - - Linked to 0 rules - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; - -exports[`ExceptionListHeader should render the List Header with name, default description and disabled actions because user can not edit details 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    -
    - -
    -
    -
    -

    -
    -
    - - List Name - -
    -
    -
    -

    -
    -
    -

    -

    -
    -
    - Add a description - -
    -
    -
    -
    -
    - List ID - : -
    -
    - List_Id -
    -
    -
    -

    -
    -
    -
    -
    -
    -
    -
    - - Linked to 0 rules - -
    -
    -
    -
    - -
    -
    + aria-hidden="true" + class="euiButtonIcon__icon" + color="inherit" + data-euiicon-type="boxesHorizontal" + /> +
    @@ -1787,324 +815,9 @@ Object {
    -
    -
    -
    -
    -
    - -
    - , - "container":
    -
    -
    -
    - -
    -
    -
    -

    -
    -
    - - List Name - -
    -
    -
    -

    -
    -
    -

    -

    -
    -
    - - Add a description - -
    -
    -
    -
    -
    - List ID - : -
    -
    - List_Id -
    -
    -
    -

    -
    -
    -
    -
    -
    -
    -
    - - Linked to 0 rules - -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} + +
    +
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/edit_modal/__snapshots__/edit_modal.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/list_header/edit_modal/__snapshots__/edit_modal.test.tsx.snap index b333aa10d1872..bafe2d021ee61 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/edit_modal/__snapshots__/edit_modal.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/edit_modal/__snapshots__/edit_modal.test.tsx.snap @@ -1,225 +1,3 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`EditModal should render the title and description from listDetails 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - -
    -
    - , - "container":
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; +exports[`EditModal should render the title and description from listDetails 1`] = `
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/edit_modal/edit_modal.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/list_header/edit_modal/edit_modal.test.tsx index 08ff52626c1cc..39692e35394ec 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/edit_modal/edit_modal.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/edit_modal/edit_modal.test.tsx @@ -25,7 +25,7 @@ describe('EditModal', () => { onCancel={onCancel} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('editModalTitle')).toHaveTextContent('list name'); }); it('should call onSave when submitting the form', () => { diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/list_header.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/list_header/list_header.test.tsx index d4efec385f168..9ceb648dfa7e1 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/list_header.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/list_header.test.tsx @@ -47,7 +47,7 @@ describe('ExceptionListHeader', () => { backOptions={{ pageId: '', path: '', onNavigate }} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); fireEvent.click(wrapper.getByTestId('RightSideMenuItemsMenuActionsItems')); expect(wrapper.queryByTestId('RightSideMenuItemsMenuActionsButtonIcon')).toBeDisabled(); expect(wrapper.getByTestId('DescriptionText')).toHaveTextContent( @@ -80,7 +80,7 @@ describe('ExceptionListHeader', () => { ); expect(wrapper.queryByTestId('RightSideMenuItemsMenuActionsButtonIcon')).toBeEnabled(); fireEvent.click(wrapper.getByTestId('RightSideMenuItemsMenuActionsButtonIcon')); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.queryByTestId('RightSideMenuItemsMenuActionsActionItem1')).toBeEnabled(); expect(wrapper.queryByTestId('RightSideMenuItemsMenuActionsActionItem2')).toBeDisabled(); @@ -103,7 +103,7 @@ describe('ExceptionListHeader', () => { backOptions={{ pageId: '', path: '', onNavigate }} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); fireEvent.click(wrapper.getByTestId('RightSideMenuItemsContainer')); expect(wrapper.getByTestId('DescriptionText')).toHaveTextContent( i18n.EXCEPTION_LIST_HEADER_DESCRIPTION @@ -134,7 +134,7 @@ describe('ExceptionListHeader', () => { backOptions={{ pageId: '', path: '', onNavigate }} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('EditModal')).toBeInTheDocument(); }); it('should go back the page path when back button is clicked', () => { diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/__snapshots__/menu_items.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/__snapshots__/menu_items.test.tsx.snap index a08e9f336802a..e66aed7689cc4 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/__snapshots__/menu_items.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/__snapshots__/menu_items.test.tsx.snap @@ -1,1156 +1,357 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`MenuItems should not render Manage rules 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    - , - "container":
    +
    +
    -
    - -
    -
    -
    -
    -
    -
    - -
    + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; - -exports[`MenuItems should not render linkedRules HeaderMenu component, instead should render a text 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    - - Linked to 0 rules - -
    -
    -
    -
    -
    - -
    -
    -
    - , - "container":
    +
    +
    +`; + +exports[`MenuItems should not render linkedRules HeaderMenu component, instead should render a text 1`] = ` +
    +
    -
    - - Linked to 0 rules - -
    -
    +
    +
    + -
    -
    -
    -
    - -
    -
    -
    + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; - -exports[`MenuItems should render all menu actions enabled 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    - - Linked to 0 rules - -
    -
    -
    -
    -
    - -
    -
    -
    +
    +
    +`; + +exports[`MenuItems should render all menu actions enabled 1`] = ` +
    +
    -
    - + Linked to 0 rules +
    - , - "container":
    -
    - Linked to 0 rules - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    -
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} -`; - -exports[`MenuItems should render delete action disabled when "canUserEditList" is "false" 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    + +
    - , - "container":
    +
    +
    +`; + +exports[`MenuItems should render delete action disabled when "canUserEditList" is "false" 1`] = ` +
    +
    -
    - -
    + + +
    +
    +
    -
    - -
    +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`MenuItems should render linkedRules, manageRules and menuActions 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    +
    +
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    - , - "container":
    -
    -
    -
    - -
    -
    -
    -
    - -
    + + +
    +
    -
    - -
    +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/menu_items.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/menu_items.test.tsx index b4e05e519f35c..16072bab295ab 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/menu_items.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/list_header/menu_items/menu_items.test.tsx @@ -30,7 +30,7 @@ describe('MenuItems', () => { onManageRules={onManageRules} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('LinkedRulesMenuItems')).toHaveTextContent('Linked to 1 rules'); expect(wrapper.getByTestId('LinkRulesButton')).toBeInTheDocument(); expect(wrapper.getByTestId('MenuActionsButtonIcon')).toBeInTheDocument(); @@ -47,7 +47,7 @@ describe('MenuItems', () => { onManageRules={onManageRules} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.queryByTestId('LinkedRulesMenuItems')).not.toBeInTheDocument(); expect(wrapper.getByTestId('noLinkedRules')).toBeInTheDocument(); }); @@ -64,7 +64,7 @@ describe('MenuItems', () => { /> ); fireEvent.click(wrapper.getByTestId('MenuActionsButtonIcon')); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('MenuActionsActionItem1')).toBeEnabled(); expect(wrapper.getByTestId('MenuActionsActionItem2')).toBeEnabled(); expect(wrapper.getByTestId('MenuActionsActionItem3')).toBeEnabled(); @@ -83,7 +83,7 @@ describe('MenuItems', () => { /> ); fireEvent.click(wrapper.getByTestId('MenuActionsButtonIcon')); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('MenuActionsActionItem1')).toBeEnabled(); expect(wrapper.getByTestId('MenuActionsActionItem2')).toBeDisabled(); expect(wrapper.getByTestId('MenuActionsActionItem3')).toBeDisabled(); @@ -101,7 +101,7 @@ describe('MenuItems', () => { onManageRules={onManageRules} /> ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.queryByTestId('LinkRulesButton')).not.toBeInTheDocument(); }); it('should call onManageRules', () => { diff --git a/packages/kbn-securitysolution-exception-list-components/src/text_with_edit/__snapshots__/text_with_edit.test.tsx.snap b/packages/kbn-securitysolution-exception-list-components/src/text_with_edit/__snapshots__/text_with_edit.test.tsx.snap index 2f06c1efcee6d..b988d7429bf5e 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/text_with_edit/__snapshots__/text_with_edit.test.tsx.snap +++ b/packages/kbn-securitysolution-exception-list-components/src/text_with_edit/__snapshots__/text_with_edit.test.tsx.snap @@ -1,219 +1,57 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`TextWithEdit should not render the edit icon when isReadonly is true 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    - - Test - -
    -
    -
    -
    - , - "container":
    +
    +
    -
    - - Test - -
    -
    + Test +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    +
    `; exports[`TextWithEdit should render the edit icon when isReadonly is false 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    +
    +
    + -
    - - Test - -
    -
    - -
    -
    + Test +
    - , - "container":
    -
    - Test - -
    -
    - -
    + aria-hidden="true" + class="euiButtonIcon__icon" + color="inherit" + data-euiicon-type="pencil" + /> +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; diff --git a/packages/kbn-securitysolution-exception-list-components/src/text_with_edit/text_with_edit.test.tsx b/packages/kbn-securitysolution-exception-list-components/src/text_with_edit/text_with_edit.test.tsx index 93fcdd1e11e96..eab0eb7817d8c 100644 --- a/packages/kbn-securitysolution-exception-list-components/src/text_with_edit/text_with_edit.test.tsx +++ b/packages/kbn-securitysolution-exception-list-components/src/text_with_edit/text_with_edit.test.tsx @@ -16,7 +16,7 @@ describe('TextWithEdit', () => { const wrapper = render( ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('TextWithEditTestText')).toHaveTextContent('Test'); expect(wrapper.queryByTestId('TextWithEditTestEditIcon')).not.toBeInTheDocument(); }); @@ -24,7 +24,7 @@ describe('TextWithEdit', () => { const wrapper = render( ); - expect(wrapper).toMatchSnapshot(); + expect(wrapper.container).toMatchSnapshot(); expect(wrapper.getByTestId('TextWithEditTestText')).toHaveTextContent('Test'); expect(wrapper.getByTestId('TextWithEditTestEditIcon')).toBeInTheDocument(); }); diff --git a/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_item_entry.gen.ts b/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_item_entry.gen.ts index 6b6a76defde58..0b7f0233ba429 100644 --- a/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_item_entry.gen.ts +++ b/packages/kbn-securitysolution-exceptions-common/api/model/exception_list_item_entry.gen.ts @@ -60,7 +60,7 @@ export const ExceptionListItemEntryExists = z.object({ operator: ExceptionListItemEntryOperator, }); -const ExceptionListItemEntryNestedEntryItemInternal = z.union([ +export const ExceptionListItemEntryNestedEntryItemInternal = z.union([ ExceptionListItemEntryMatch, ExceptionListItemEntryMatchAny, ExceptionListItemEntryExists, @@ -89,7 +89,7 @@ export const ExceptionListItemEntryMatchWildcard = z.object({ operator: ExceptionListItemEntryOperator, }); -const ExceptionListItemEntryInternal = z.discriminatedUnion('type', [ +export const ExceptionListItemEntryInternal = z.discriminatedUnion('type', [ ExceptionListItemEntryMatch, ExceptionListItemEntryMatchAny, ExceptionListItemEntryList, diff --git a/packages/kbn-server-route-repository-client/index.ts b/packages/kbn-server-route-repository-client/index.ts index 4b9042c58e794..db8f6cebfbc56 100644 --- a/packages/kbn-server-route-repository-client/index.ts +++ b/packages/kbn-server-route-repository-client/index.ts @@ -9,6 +9,7 @@ export { createRepositoryClient } from './src/create_repository_client'; export { isHttpFetchError } from './src/is_http_fetch_error'; +export { isRequestAbortedError } from './src/is_request_aborted_error'; export type { DefaultClientOptions, diff --git a/packages/kbn-server-route-repository-client/src/create_observable_from_http_response.ts b/packages/kbn-server-route-repository-client/src/create_observable_from_http_response.ts new file mode 100644 index 0000000000000..1690244ca19a7 --- /dev/null +++ b/packages/kbn-server-route-repository-client/src/create_observable_from_http_response.ts @@ -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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { createParser } from 'eventsource-parser'; +import { Observable, throwError } from 'rxjs'; + +export interface StreamedHttpResponse { + response?: { body: ReadableStream | null | undefined }; +} + +class NoReadableStreamError extends Error { + constructor() { + super(`No readable stream found in response`); + } +} + +export function isNoReadableStreamError(error: any): error is NoReadableStreamError { + return error instanceof NoReadableStreamError; +} + +export function createObservableFromHttpResponse( + response: StreamedHttpResponse +): Observable { + const rawResponse = response.response; + + const body = rawResponse?.body; + if (!body) { + return throwError(() => { + throw new NoReadableStreamError(); + }); + } + + return new Observable((subscriber) => { + const parser = createParser((event) => { + if (event.type === 'event') { + subscriber.next(event.data); + } + }); + + const readStream = async () => { + const reader = body.getReader(); + const decoder = new TextDecoder(); + + // Function to process each chunk + const processChunk = ({ + done, + value, + }: ReadableStreamReadResult): Promise => { + if (done) { + return Promise.resolve(); + } + + parser.feed(decoder.decode(value, { stream: true })); + + return reader.read().then(processChunk); + }; + + // Start reading the stream + return reader.read().then(processChunk); + }; + + readStream() + .then(() => { + subscriber.complete(); + }) + .catch((error) => { + subscriber.error(error); + }); + }); +} diff --git a/packages/kbn-server-route-repository-client/src/create_repository_client.ts b/packages/kbn-server-route-repository-client/src/create_repository_client.ts index d060480c262de..015db2b9948d8 100644 --- a/packages/kbn-server-route-repository-client/src/create_repository_client.ts +++ b/packages/kbn-server-route-repository-client/src/create_repository_client.ts @@ -11,28 +11,52 @@ import type { CoreSetup, CoreStart } from '@kbn/core-lifecycle-browser'; import { RouteRepositoryClient, ServerRouteRepository, - DefaultClientOptions, formatRequest, } from '@kbn/server-route-repository-utils'; +import { httpResponseIntoObservable } from '@kbn/sse-utils-client'; +import { from } from 'rxjs'; +import { HttpFetchOptions, HttpFetchQuery, HttpResponse } from '@kbn/core-http-browser'; +import { omit } from 'lodash'; export function createRepositoryClient< TRepository extends ServerRouteRepository, - TClientOptions extends Record = DefaultClientOptions ->(core: CoreStart | CoreSetup) { + TClientOptions extends HttpFetchOptions = {} +>(core: CoreStart | CoreSetup): RouteRepositoryClient { + const fetch = ( + endpoint: string, + params: { path?: Record; body?: unknown; query?: HttpFetchQuery } | undefined, + options: TClientOptions + ) => { + const { method, pathname, version } = formatRequest(endpoint, params?.path); + + return core.http[method](pathname, { + ...options, + body: params && params.body ? JSON.stringify(params.body) : undefined, + query: params?.query, + version, + }); + }; + return { - fetch: (endpoint, optionsWithParams) => { - const { params, ...options } = (optionsWithParams ?? { params: {} }) as unknown as { - params?: Partial>; - }; + fetch: (endpoint, ...args) => { + const allOptions = args[0] ?? {}; + const params = 'params' in allOptions ? (allOptions.params as Record) : {}; + const otherOptions = omit(allOptions, 'params') as TClientOptions; - const { method, pathname, version } = formatRequest(endpoint, params?.path); + return fetch(endpoint, params, otherOptions) as any; + }, + stream: (endpoint, ...args) => { + const allOptions = args[0] ?? {}; + const params = 'params' in allOptions ? (allOptions.params as Record) : {}; + const otherOptions = omit(allOptions, 'params') as TClientOptions; - return core.http[method](pathname, { - ...options, - body: params && params.body ? JSON.stringify(params.body) : undefined, - query: params?.query, - version, - }); + return from( + fetch(endpoint, params, { + ...otherOptions, + asResponse: true, + rawResponse: true, + }) as Promise + ).pipe(httpResponseIntoObservable()) as any; }, - } as { fetch: RouteRepositoryClient }; + }; } diff --git a/packages/kbn-server-route-repository-client/src/is_request_aborted_error.ts b/packages/kbn-server-route-repository-client/src/is_request_aborted_error.ts new file mode 100644 index 0000000000000..3ab33ebac821c --- /dev/null +++ b/packages/kbn-server-route-repository-client/src/is_request_aborted_error.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { get } from 'lodash'; + +export function isRequestAbortedError(error: unknown): error is Error { + return get(error, 'name') === 'AbortError'; +} diff --git a/packages/kbn-server-route-repository-client/tsconfig.json b/packages/kbn-server-route-repository-client/tsconfig.json index 8e70ce9851750..e1ce8a6572b75 100644 --- a/packages/kbn-server-route-repository-client/tsconfig.json +++ b/packages/kbn-server-route-repository-client/tsconfig.json @@ -17,5 +17,6 @@ "@kbn/server-route-repository-utils", "@kbn/core-lifecycle-browser", "@kbn/core-http-browser", + "@kbn/sse-utils-client", ] } diff --git a/packages/kbn-server-route-repository-utils/src/typings.ts b/packages/kbn-server-route-repository-utils/src/typings.ts index 6974c27a3de7e..35a2f41054c99 100644 --- a/packages/kbn-server-route-repository-utils/src/typings.ts +++ b/packages/kbn-server-route-repository-utils/src/typings.ts @@ -17,43 +17,14 @@ import type { RouteConfigOptions, RouteMethod, } from '@kbn/core/server'; +import type { ServerSentEvent } from '@kbn/sse-utils'; import { z } from '@kbn/zod'; import * as t from 'io-ts'; -import { RequiredKeys } from 'utility-types'; +import { Observable } from 'rxjs'; +import { Readable } from 'stream'; +import { RequiredKeys, ValuesType } from 'utility-types'; -type PathMaybeOptional }> = RequiredKeys< - T['path'] -> extends never - ? { path?: T['path'] } - : { path: T['path'] }; - -type QueryMaybeOptional }> = RequiredKeys< - T['query'] -> extends never - ? { query?: T['query'] } - : { query: T['query'] }; - -type BodyMaybeOptional }> = RequiredKeys< - T['body'] -> extends never - ? { body?: T['body'] } - : { body: T['body'] }; - -type ParamsMaybeOptional< - TPath extends Record, - TQuery extends Record, - TBody extends Record -> = PathMaybeOptional<{ path: TPath }> & - QueryMaybeOptional<{ query: TQuery }> & - BodyMaybeOptional<{ body: TBody }>; - -type ZodMaybeOptional = ParamsMaybeOptional< - T['path'], - T['query'], - T['body'] ->; - -type MaybeOptional }> = RequiredKeys< +type MaybeOptional }> = RequiredKeys< T['params'] > extends never ? { params?: T['params'] } @@ -64,19 +35,19 @@ type WithoutIncompatibleMethods = Omit t.Encoder; }; -export type ZodParamsObject = z.ZodObject<{ +export interface RouteParams { path?: any; query?: any; body?: any; +} + +export type ZodParamsObject = z.ZodObject<{ + path?: z.ZodSchema; + query?: z.ZodSchema; + body?: z.ZodSchema; }>; -export type IoTsParamsObject = WithoutIncompatibleMethods< - t.Type<{ - path?: any; - query?: any; - body?: any; - }> ->; +export type IoTsParamsObject = WithoutIncompatibleMethods>; export type RouteParamsRT = IoTsParamsObject | ZodParamsObject; @@ -97,22 +68,98 @@ type ValidateEndpoint = string extends TEndpoint : false : false; +type IsAny = 1 | 0 extends (T extends never ? 1 : 0) ? true : false; + +// this ensures only plain objects can be returned, if it's not one +// of the other allowed types. here's how it works: +// - if it's a function, it's invalid +// - if it's a primitive, it's valid +// - if it's an array, it's valid +// - if it's a record, walk it once and apply above principles +// we don't recursively walk because of circular references in object types +// we also don't check arrays, as the goal is to not be able to return +// things like classes and functions at the top level. specifically, +// this code is intended to allow for Observable but +// to disallow Observable. + +type ValidateSerializableValue = IsAny extends true + ? 1 + : T extends Function + ? 0 + : T extends Record + ? TWalkRecursively extends true + ? ValuesType<{ + [key in keyof T]: ValidateSerializableValue; + }> + : 1 + : T extends string | number | boolean | null | undefined + ? 1 + : T extends any[] + ? 1 + : 0; + +type GuardAgainstInvalidRecord = 0 extends ValidateSerializableValue ? never : T; + +type ServerRouteHandlerReturnTypeWithoutRecord = + | Observable + | Readable + | IKibanaResponse + | string + | number + | boolean + | null + | void; + +type ServerRouteHandlerReturnType = ServerRouteHandlerReturnTypeWithoutRecord | Record; + +type ServerRouteHandler< + TRouteHandlerResources extends ServerRouteHandlerResources, + TRouteParamsRT extends RouteParamsRT | undefined, + TReturnType extends ServerRouteHandlerReturnType +> = ( + options: TRouteHandlerResources & + (TRouteParamsRT extends RouteParamsRT ? DecodedRequestParamsOfType : {}) +) => Promise< + TReturnType extends ServerRouteHandlerReturnTypeWithoutRecord + ? TReturnType + : GuardAgainstInvalidRecord +>; + +export type CreateServerRouteFactory< + TRouteHandlerResources extends ServerRouteHandlerResources, + TRouteCreateOptions extends ServerRouteCreateOptions +> = < + TEndpoint extends string, + TReturnType extends ServerRouteHandlerReturnType, + TRouteParamsRT extends RouteParamsRT | undefined = undefined +>( + options: { + endpoint: ValidateEndpoint extends true ? TEndpoint : never; + handler: ServerRouteHandler; + params?: TRouteParamsRT; + } & TRouteCreateOptions +) => Record< + TEndpoint, + ServerRoute< + TEndpoint, + TRouteParamsRT, + TRouteHandlerResources, + Awaited, + TRouteCreateOptions + > +>; + export type ServerRoute< TEndpoint extends string, TRouteParamsRT extends RouteParamsRT | undefined, TRouteHandlerResources extends ServerRouteHandlerResources, - TReturnType, + TReturnType extends ServerRouteHandlerReturnType, TRouteCreateOptions extends ServerRouteCreateOptions -> = ValidateEndpoint extends true - ? { - endpoint: TEndpoint; - params?: TRouteParamsRT; - handler: ({}: TRouteHandlerResources & - (TRouteParamsRT extends RouteParamsRT - ? DecodedRequestParamsOfType - : {})) => Promise; - } & TRouteCreateOptions - : never; +> = { + endpoint: TEndpoint; + handler: ServerRouteHandler; +} & TRouteCreateOptions & + (TRouteParamsRT extends RouteParamsRT ? { params: TRouteParamsRT } : {}); export type ServerRouteRepository = Record< string, @@ -124,22 +171,22 @@ type ClientRequestParamsOfType = ? MaybeOptional<{ params: t.OutputOf; }> - : TRouteParamsRT extends z.Schema + : TRouteParamsRT extends z.ZodSchema ? MaybeOptional<{ - params: ZodMaybeOptional>; + params: z.input; }> - : {}; + : never; type DecodedRequestParamsOfType = TRouteParamsRT extends t.Mixed ? MaybeOptional<{ params: t.TypeOf; }> - : TRouteParamsRT extends z.Schema + : TRouteParamsRT extends z.ZodSchema ? MaybeOptional<{ - params: ZodMaybeOptional>; + params: z.output; }> - : {}; + : never; export type EndpointOf = keyof TServerRouteRepository; @@ -186,24 +233,36 @@ export type ClientRequestParamsOf< > ? TRouteParamsRT extends RouteParamsRT ? ClientRequestParamsOfType - : {} + : TRouteParamsRT extends undefined + ? {} + : never : never; type MaybeOptionalArgs> = RequiredKeys extends never ? [T] | [] : [T]; -export type RouteRepositoryClient< +export interface RouteRepositoryClient< TServerRouteRepository extends ServerRouteRepository, - TAdditionalClientOptions extends Record = DefaultClientOptions -> = >( - endpoint: TEndpoint, - ...args: MaybeOptionalArgs< - ClientRequestParamsOf & TAdditionalClientOptions - > -) => Promise>; - -export type DefaultClientOptions = HttpFetchOptions; + TAdditionalClientOptions extends Record +> { + fetch>( + endpoint: TEndpoint, + ...args: MaybeOptionalArgs< + ClientRequestParamsOf & TAdditionalClientOptions + > + ): Promise>; + stream>( + endpoint: TEndpoint, + ...args: MaybeOptionalArgs< + ClientRequestParamsOf & TAdditionalClientOptions + > + ): ReturnOf extends Observable + ? TReturnType extends ServerSentEvent + ? Observable + : never + : never; +} interface CoreRouteHandlerResources { request: KibanaRequest; @@ -211,6 +270,8 @@ interface CoreRouteHandlerResources { context: RequestHandlerContext; } +export type DefaultClientOptions = HttpFetchOptions; + export interface DefaultRouteHandlerResources extends CoreRouteHandlerResources { logger: Logger; } diff --git a/packages/kbn-server-route-repository-utils/tsconfig.json b/packages/kbn-server-route-repository-utils/tsconfig.json index cb5d9846f6cc8..593d368856aa6 100644 --- a/packages/kbn-server-route-repository-utils/tsconfig.json +++ b/packages/kbn-server-route-repository-utils/tsconfig.json @@ -16,9 +16,10 @@ "target/**/*" ], "kbn_references": [ - "@kbn/core-http-browser", "@kbn/core-http-server", "@kbn/core", "@kbn/zod", + "@kbn/core-http-browser", + "@kbn/sse-utils", ] } diff --git a/packages/kbn-server-route-repository/README.md b/packages/kbn-server-route-repository/README.md index c34cf6654ba43..5b8307f2d066b 100644 --- a/packages/kbn-server-route-repository/README.md +++ b/packages/kbn-server-route-repository/README.md @@ -5,6 +5,7 @@ Utility functions for creating a typed server route repository, and a typed clie ## Overview There are three main functions that make up this package: + 1. `createServerRouteFactory` 2. `registerRoutes` 3. `createRepositoryClient` @@ -22,6 +23,7 @@ By exporting the type of the repository from the server to the browser (make sur In the server side, we'll start by creating the route factory, to make things easier it is recommended to keep this in its own file and export it. > server/create_my_plugin_server_route.ts + ```javascript import { createServerRouteFactory } from '@kbn/server-route-repository'; import { @@ -40,17 +42,18 @@ The two generic arguments are optional, this example shows a "default" setup whi Next, let's create a minimal route. > server/my_route.ts + ```javascript import { createMyPluginServerRoute } from './create_my_plugin_server_route'; export const myRoute = createMyPluginServerRoute({ - endpoint: 'GET /internal/my_plugin/route', - handler: async (resources) => { - const { request, context, response, logger } = resources; - return response.ok({ - body: 'Hello, my route!', - }); - }, + endpoint: 'GET /internal/my_plugin/route', + handler: async (resources) => { + const { request, context, response, logger } = resources; + return response.ok({ + body: 'Hello, my route!', + }); + }, }); ``` @@ -87,11 +90,12 @@ We also export the type of the repository, we'll need this for the client which The client can be created either in `setup` or `start`. > browser/plugin.ts + ```javascript import { createRepositoryClient, isHttpFetchError, DefaultClientOptions } from '@kbn/server-route-repository-client'; import type { MyPluginRouteRepository } from '../server/plugin'; -export type MyPluginRepositoryClient = +export type MyPluginRepositoryClient = ReturnType>; class MyPlugin implements Plugin { @@ -116,10 +120,10 @@ class MyPlugin implements Plugin { This example prints 'Hello, my route!' and the type of the response is **inferred** to this. We pass in the type of the repository that we (_type_) imported from the server. The second generic parameter for `createRepositoryClient` is optional. -We also export the type of the client itself so we can use it to type the client as we pass it around. +We also export the type of the client itself so we can use it to type the client as we pass it around. When using the client's `fetch` function, the first argument is the route to call and this is auto completed to only the available routes. -The second argument is optional in this case but allows you to send in any extra options. +The second argument is optional in this case but allows you to send in any extra options. The client translates the endpoint and the options (including request parameters) to the right Core HTTP request. @@ -159,19 +163,20 @@ The `params` object is added to the route resources. `path`, `query` and `body` are validated before your handler is called and the types are **inferred** inside of the handler. When calling this endpoint, it will look like this: + ```javascript client('POST /internal/my_plugin/route/{my_path_param}', { - params: { - path: { - my_path_param: 'some_path_value', - }, - query: { - my_query_param: 'some_query_value', - }, - body: { - my_body_param: 'some_body_value', - }, + params: { + path: { + my_path_param: 'some_path_value', + }, + query: { + my_query_param: 'some_query_value', }, + body: { + my_body_param: 'some_body_value', + }, + }, }).then(console.log); ``` @@ -213,9 +218,9 @@ const myRoute = createMyPluginServerRoute({ const result = coinFlip(); if (result === 'heads') { - throw teapot(); + throw teapot(); } else { - return 'Hello, my route!'; + return 'Hello, my route!'; } }, }); @@ -235,7 +240,7 @@ export interface MyPluginRouteDependencies { myDependency: MyDependency; } -export const createMyPluginServerRoute = +export const createMyPluginServerRoute = createServerRouteFactory(); ``` @@ -244,14 +249,16 @@ If you don't want your route to have access to the default resources, you could Then we use the same type when calling `registerRoutes` ```javascript -registerRoutes({ +registerRoutes < + MyPluginRouteDependencies > + { core, logger, repository, dependencies: { - myDependency: new MyDependency(), + myDependency: new MyDependency(), }, -}); + }; ``` This way, when creating a route, you will have `myDependency` available in the route resources. @@ -260,13 +267,13 @@ This way, when creating a route, you will have `myDependency` available in the r import { createMyPluginServerRoute } from './create_my_plugin_server_route'; export const myRoute = createMyPluginServerRoute({ - endpoint: 'GET /internal/my_plugin/route', - handler: async (resources) => { - const { request, context, response, logger, myDependency } = resources; - return response.ok({ - body: myDependency.sayHello(), - }); - }, + endpoint: 'GET /internal/my_plugin/route', + handler: async (resources) => { + const { request, context, response, logger, myDependency } = resources; + return response.ok({ + body: myDependency.sayHello(), + }); + }, }); ``` @@ -295,21 +302,22 @@ export const createMyPluginServerRoute = createServerRouteFactory< If you don't want your route to have access to the options provided by Core HTTP, you could pass in only `MyPluginRouteCreateOptions`. You can then specify this option when creating the route. + ```javascript import { createMyPluginServerRoute } from './create_my_plugin_server_route'; export const myRoute = createMyPluginServerRoute({ - options: { - access: 'internal', - }, - isDangerous: true, - endpoint: 'GET /internal/my_plugin/route', - handler: async (resources) => { - const { request, context, response, logger } = resources; - return response.ok({ - body: 'Hello, my route!', - }); - }, + options: { + access: 'internal', + }, + isDangerous: true, + endpoint: 'GET /internal/my_plugin/route', + handler: async (resources) => { + const { request, context, response, logger } = resources; + return response.ok({ + body: 'Hello, my route!', + }); + }, }); ``` @@ -346,3 +354,37 @@ class MyPlugin implements Plugin { ``` If you don't want your route to have access to the options provided by Core HTTP, you could pass in only `MyPluginClientOptions`. + +## Streaming + +@kbn/server-route-repository supports streaming events as well. It uses server-sent events (SSE) for this. To use it, simply return an Observable in the route handler: + +```javascript +import { createMyPluginServerRoute } from './create_my_plugin_server_route'; +import { ServerSentEvent } from '@kbn/sse-utils'; + +export const myRoute = createMyPluginServerRoute({ + endpoint: 'GET /internal/my_plugin/streaming_route', + handler: async (resources) => { + const { request, context, response, logger } = resources; + return of({ + type: 'my_event' as const, + data: { + myData: {} + } + }) + }, +}); +``` + +This will create a Node.js response stream where events are emitted as soon as the Observable emits them. Errors are automatically serialized, deserialized and thrown. See @kbn/sse-utils for more details. + +To parse the event stream in the browser, use the `stream` method on the repository client. It returns a typed Observable: + +```javascript +myPluginRepositoryClient.stream('GET /internal/my_plugin/streaming_route').subscribe({ + next: (value /*:{ type: 'my_event', data: { myData: {} }}*/) => { + console.log(value); + }, +}); +``` diff --git a/packages/kbn-server-route-repository/src/create_server_route_factory.ts b/packages/kbn-server-route-repository/src/create_server_route_factory.ts index 67f3f465f6830..be375bd069480 100644 --- a/packages/kbn-server-route-repository/src/create_server_route_factory.ts +++ b/packages/kbn-server-route-repository/src/create_server_route_factory.ts @@ -7,33 +7,17 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { - RouteParamsRT, - ServerRoute, +import type { + DefaultRouteCreateOptions, + DefaultRouteHandlerResources, ServerRouteCreateOptions, ServerRouteHandlerResources, - DefaultRouteHandlerResources, - DefaultRouteCreateOptions, } from '@kbn/server-route-repository-utils'; +import type { CreateServerRouteFactory } from '@kbn/server-route-repository-utils/src/typings'; export function createServerRouteFactory< TRouteHandlerResources extends ServerRouteHandlerResources = DefaultRouteHandlerResources, TRouteCreateOptions extends ServerRouteCreateOptions = DefaultRouteCreateOptions ->(): < - TEndpoint extends string, - TReturnType, - TRouteParamsRT extends RouteParamsRT | undefined = undefined ->( - route: ServerRoute< - TEndpoint, - TRouteParamsRT, - TRouteHandlerResources, - TReturnType, - TRouteCreateOptions - > -) => Record< - TEndpoint, - ServerRoute -> { +>(): CreateServerRouteFactory { return (route) => ({ [route.endpoint]: route } as any); } diff --git a/packages/kbn-server-route-repository/src/make_zod_validation_object.ts b/packages/kbn-server-route-repository/src/make_zod_validation_object.ts index 3467fcb58d353..23d50e5bdb25c 100644 --- a/packages/kbn-server-route-repository/src/make_zod_validation_object.ts +++ b/packages/kbn-server-route-repository/src/make_zod_validation_object.ts @@ -7,7 +7,7 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ZodObject, ZodAny } from '@kbn/zod'; +import { z, ZodObject } from '@kbn/zod'; import { ZodParamsObject } from '@kbn/server-route-repository-utils'; import { noParamsValidationObject } from './validation_objects'; @@ -19,7 +19,7 @@ export function makeZodValidationObject(params: ZodParamsObject) { }; } -function asStrict(schema: ZodAny) { +function asStrict(schema: z.Schema) { if (schema instanceof ZodObject) { return schema.strict(); } else { diff --git a/packages/kbn-server-route-repository/src/register_routes.ts b/packages/kbn-server-route-repository/src/register_routes.ts index 4b55defa9c5df..5e0fa51a4544f 100644 --- a/packages/kbn-server-route-repository/src/register_routes.ts +++ b/packages/kbn-server-route-repository/src/register_routes.ts @@ -20,8 +20,11 @@ import { ZodParamsObject, parseEndpoint, } from '@kbn/server-route-repository-utils'; +import { observableIntoEventSourceStream } from '@kbn/sse-utils-server'; import { isZod } from '@kbn/zod'; import { merge } from 'lodash'; +import { Observable, isObservable } from 'rxjs'; +import { ServerSentEvent } from '@kbn/sse-utils'; import { passThroughValidationObject, noParamsValidationObject } from './validation_objects'; import { validateAndDecodeParams } from './validate_and_decode_params'; import { makeZodValidationObject } from './make_zod_validation_object'; @@ -89,6 +92,10 @@ export function registerRoutes>({ if (isKibanaResponse(result)) { return result; + } else if (isObservable(result)) { + return response.ok({ + body: observableIntoEventSourceStream(result as Observable), + }); } else { const body = result || {}; return response.ok({ body }); diff --git a/packages/kbn-server-route-repository/src/test_types.ts b/packages/kbn-server-route-repository/src/test_types.ts index d35237651711b..acef5a524eb6b 100644 --- a/packages/kbn-server-route-repository/src/test_types.ts +++ b/packages/kbn-server-route-repository/src/test_types.ts @@ -11,6 +11,7 @@ import * as t from 'io-ts'; import { z } from '@kbn/zod'; import { kibanaResponseFactory } from '@kbn/core/server'; import { EndpointOf, ReturnOf, RouteRepositoryClient } from '@kbn/server-route-repository-utils'; +import { Observable, of } from 'rxjs'; import { createServerRouteFactory } from './create_server_route_factory'; import { decodeRequestParams } from './decode_request_params'; @@ -98,13 +99,12 @@ createServerRouteFactory<{}, { options: { tags: string[] } }>()({ }); // Public APIs should be versioned -// @ts-expect-error createServerRouteFactory<{}, { options: { tags: string[] } }>()({ + // @ts-expect-error endpoint: 'GET /api/endpoint_with_params', options: { tags: [], }, - // @ts-expect-error handler: async (resources) => {}, }); @@ -116,6 +116,15 @@ createServerRouteFactory<{}, { options: { tags: string[] } }>()({ handler: async (resources) => {}, }); +// cannot return observables that are not in the SSE structure +const route = createServerRouteFactory<{}, {}>()({ + endpoint: 'POST /internal/endpoint_returning_observable_without_sse_structure', + // @ts-expect-error + handler: async () => { + return of({ streamed_response: true }); + }, +}); + const createServerRoute = createServerRouteFactory<{}, {}>(); const repository = { @@ -201,6 +210,12 @@ const repository = { }); }, }), + ...createServerRoute({ + endpoint: 'POST /internal/endpoint_returning_observable', + handler: async () => { + return of({ type: 'foo' as const, streamed_response: true }); + }, + }), }; type TestRepository = typeof repository; @@ -248,21 +263,21 @@ const client: TestClient = {} as any; // It should respect any additional create options. // @ts-expect-error Property 'timeout' is missing -client('GET /internal/endpoint_without_params', {}); +client.fetch('GET /internal/endpoint_without_params', {}); -client('GET /internal/endpoint_without_params', { +client.fetch('GET /internal/endpoint_without_params', { timeout: 1, }); // It does not allow params for routes without a params codec -client('GET /internal/endpoint_without_params', { +client.fetch('GET /internal/endpoint_without_params', { // @ts-expect-error Object literal may only specify known properties, and 'params' does not exist in type params: {}, timeout: 1, }); // It requires params for routes with a params codec -client('GET /internal/endpoint_with_params', { +client.fetch('GET /internal/endpoint_with_params', { params: { // @ts-expect-error property 'serviceName' is missing in type '{}' path: {}, @@ -270,7 +285,7 @@ client('GET /internal/endpoint_with_params', { timeout: 1, }); -client('GET /internal/endpoint_with_params_zod', { +client.fetch('GET /internal/endpoint_with_params_zod', { params: { // @ts-expect-error property 'serviceName' is missing in type '{}' path: {}, @@ -279,16 +294,16 @@ client('GET /internal/endpoint_with_params_zod', { }); // Params are optional if the codec has no required keys -client('GET /internal/endpoint_with_optional_params', { +client.fetch('GET /internal/endpoint_with_optional_params', { timeout: 1, }); -client('GET /internal/endpoint_with_optional_params_zod', { +client.fetch('GET /internal/endpoint_with_optional_params_zod', { timeout: 1, }); // If optional, an error will still occur if the params do not match -client('GET /internal/endpoint_with_optional_params', { +client.fetch('GET /internal/endpoint_with_optional_params', { timeout: 1, params: { // @ts-expect-error Object literal may only specify known properties, and 'path' does not exist in type @@ -296,7 +311,7 @@ client('GET /internal/endpoint_with_optional_params', { }, }); -client('GET /internal/endpoint_with_optional_params_zod', { +client.fetch('GET /internal/endpoint_with_optional_params_zod', { timeout: 1, params: { // @ts-expect-error Object literal may only specify known properties, and 'path' does not exist in type @@ -305,57 +320,65 @@ client('GET /internal/endpoint_with_optional_params_zod', { }); // The return type is correctly inferred -client('GET /internal/endpoint_with_params', { - params: { - path: { - serviceName: '', +client + .fetch('GET /internal/endpoint_with_params', { + params: { + path: { + serviceName: '', + }, }, - }, - timeout: 1, -}).then((res) => { - assertType<{ - noParamsForMe: boolean; - // @ts-expect-error Property 'noParamsForMe' is missing in type - }>(res); - - assertType<{ - yesParamsForMe: boolean; - }>(res); -}); - -client('GET /internal/endpoint_with_params_zod', { - params: { - path: { - serviceName: '', + timeout: 1, + }) + .then((res) => { + assertType<{ + noParamsForMe: boolean; + // @ts-expect-error Property 'noParamsForMe' is missing in type + }>(res); + + assertType<{ + yesParamsForMe: boolean; + }>(res); + }); + +client + .fetch('GET /internal/endpoint_with_params_zod', { + params: { + path: { + serviceName: '', + }, }, - }, - timeout: 1, -}).then((res) => { - assertType<{ - noParamsForMe: boolean; - // @ts-expect-error Property 'noParamsForMe' is missing in type - }>(res); - - assertType<{ - yesParamsForMe: boolean; - }>(res); -}); - -client('GET /internal/endpoint_returning_result', { - timeout: 1, -}).then((res) => { - assertType<{ - result: boolean; - }>(res); -}); - -client('GET /internal/endpoint_returning_kibana_response', { - timeout: 1, -}).then((res) => { - assertType<{ - result: boolean; - }>(res); -}); + timeout: 1, + }) + .then((res) => { + assertType<{ + noParamsForMe: boolean; + // @ts-expect-error Property 'noParamsForMe' is missing in type + }>(res); + + assertType<{ + yesParamsForMe: boolean; + }>(res); + }); + +client + .fetch('GET /internal/endpoint_returning_result', { + timeout: 1, + }) + .then((res) => { + assertType<{ + result: boolean; + }>(res); + }); + +client + .fetch('GET /internal/endpoint_returning_kibana_response', { + timeout: 1, + }) + .then((res) => { + assertType<{ + result: boolean; + }>(res); + }); // decodeRequestParams should return the type of the codec that is passed assertType<{ path: { serviceName: string } }>( @@ -384,3 +407,9 @@ assertType<{ path: { serviceName: boolean } }>( t.type({ path: t.type({ serviceName: t.string }) }) ) ); + +assertType>( + client.stream('POST /internal/endpoint_returning_observable', { + timeout: 10, + }) +); diff --git a/packages/kbn-server-route-repository/tsconfig.json b/packages/kbn-server-route-repository/tsconfig.json index bb8a0847c39b6..0e11a0f095897 100644 --- a/packages/kbn-server-route-repository/tsconfig.json +++ b/packages/kbn-server-route-repository/tsconfig.json @@ -21,6 +21,8 @@ "@kbn/logging-mocks", "@kbn/server-route-repository-utils", "@kbn/zod", + "@kbn/sse-utils-server", + "@kbn/sse-utils", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-sse-utils-client/README.md b/packages/kbn-sse-utils-client/README.md new file mode 100644 index 0000000000000..8c0c2ac37d486 --- /dev/null +++ b/packages/kbn-sse-utils-client/README.md @@ -0,0 +1,3 @@ +# @kbn/sse-utils-client + +See @kbn/sse-utils. diff --git a/src/plugins/visualizations/public/react_embeddable/index.ts b/packages/kbn-sse-utils-client/index.ts similarity index 85% rename from src/plugins/visualizations/public/react_embeddable/index.ts rename to packages/kbn-sse-utils-client/index.ts index 77f7ee433a996..c074be46c5257 100644 --- a/src/plugins/visualizations/public/react_embeddable/index.ts +++ b/packages/kbn-sse-utils-client/index.ts @@ -7,4 +7,4 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -export { getVisualizeEmbeddableFactory } from './visualize_embeddable'; +export { httpResponseIntoObservable } from './src/http_response_into_observable'; diff --git a/packages/kbn-sse-utils-client/jest.config.js b/packages/kbn-sse-utils-client/jest.config.js new file mode 100644 index 0000000000000..29aa22cc6dc30 --- /dev/null +++ b/packages/kbn-sse-utils-client/jest.config.js @@ -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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../..', + roots: ['/packages/kbn-sse-utils-client'], +}; diff --git a/packages/kbn-sse-utils-client/kibana.jsonc b/packages/kbn-sse-utils-client/kibana.jsonc new file mode 100644 index 0000000000000..eda99336320f3 --- /dev/null +++ b/packages/kbn-sse-utils-client/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/sse-utils-client", + "owner": "@elastic/obs-knowledge-team" +} diff --git a/packages/kbn-sse-utils-client/package.json b/packages/kbn-sse-utils-client/package.json new file mode 100644 index 0000000000000..b33f0b27d5644 --- /dev/null +++ b/packages/kbn-sse-utils-client/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/sse-utils-client", + "private": true, + "version": "1.0.0", + "license": "Elastic License 2.0 OR AGPL-3.0-only OR SSPL-1.0" +} \ No newline at end of file diff --git a/packages/kbn-sse-utils-client/src/create_observable_from_http_response.ts b/packages/kbn-sse-utils-client/src/create_observable_from_http_response.ts new file mode 100644 index 0000000000000..814a528535c75 --- /dev/null +++ b/packages/kbn-sse-utils-client/src/create_observable_from_http_response.ts @@ -0,0 +1,83 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { createParser } from 'eventsource-parser'; +import { Observable, throwError } from 'rxjs'; +import { createSSEInternalError, ServerSentEvent, ServerSentEventError } from '@kbn/sse-utils'; +import { ServerSentErrorEvent } from '@kbn/sse-utils/src/errors'; + +export interface StreamedHttpResponse { + response?: { body: ReadableStream | null | undefined }; +} + +export function createObservableFromHttpResponse( + response: StreamedHttpResponse +): Observable { + const rawResponse = response.response; + + const body = rawResponse?.body; + if (!body) { + return throwError(() => { + throw createSSEInternalError(`No readable stream found in response`); + }); + } + + return new Observable((subscriber) => { + const parser = createParser((event) => { + if (event.type === 'event') + try { + const data = JSON.parse(event.data); + if (event.event === 'error') { + const errorData = data as Omit; + subscriber.error( + new ServerSentEventError( + errorData.error.code, + errorData.error.message, + errorData.error.meta + ) + ); + } else { + subscriber.next({ type: event.event || 'event', ...data } as T); + } + } catch (error) { + subscriber.error(createSSEInternalError(`Failed to parse JSON`)); + } + }); + + const readStream = async () => { + const reader = body.getReader(); + const decoder = new TextDecoder(); + + // Function to process each chunk + const processChunk = ({ + done, + value, + }: ReadableStreamReadResult): Promise => { + if (done) { + return Promise.resolve(); + } + + parser.feed(decoder.decode(value, { stream: true })); + + return reader.read().then(processChunk); + }; + + // Start reading the stream + return reader.read().then(processChunk); + }; + + readStream() + .then(() => { + subscriber.complete(); + }) + .catch((error) => { + subscriber.error(error); + }); + }); +} diff --git a/packages/kbn-sse-utils-client/src/http_response_into_observable.test.ts b/packages/kbn-sse-utils-client/src/http_response_into_observable.test.ts new file mode 100644 index 0000000000000..c4e3bd86efdd7 --- /dev/null +++ b/packages/kbn-sse-utils-client/src/http_response_into_observable.test.ts @@ -0,0 +1,69 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { lastValueFrom, of, toArray } from 'rxjs'; +import { httpResponseIntoObservable } from './http_response_into_observable'; +import type { StreamedHttpResponse } from './create_observable_from_http_response'; +import { ServerSentEventErrorCode } from '@kbn/sse-utils/src/errors'; + +function toSse(...events: Array<{ type: string } & Record>) { + return events.map((event) => { + const { type, ...rest } = event; + return new TextEncoder().encode(`event: ${type}\ndata: ${JSON.stringify(rest)}\n\n`); + }); +} + +describe('httpResponseIntoObservable', () => { + it('parses SSE output', async () => { + const events = [ + { + type: 'chatCompletionChunk', + content: 'Hello', + }, + { + type: 'chatCompletionChunk', + content: 'Hello again', + }, + ]; + + const messages = await lastValueFrom( + of({ + response: { + // @ts-expect-error + body: ReadableStream.from(toSse(...events)), + }, + }).pipe(httpResponseIntoObservable(), toArray()) + ); + + expect(messages).toEqual(events); + }); + + it('throws serialized errors', async () => { + const events = [ + { + type: 'error', + error: { + code: ServerSentEventErrorCode.internalError, + message: 'Internal error', + }, + }, + ]; + + await expect(async () => { + await lastValueFrom( + of({ + response: { + // @ts-expect-error + body: ReadableStream.from(toSse(...events)), + }, + }).pipe(httpResponseIntoObservable(), toArray()) + ); + }).rejects.toThrowError(`Internal error`); + }); +}); diff --git a/packages/kbn-sse-utils-client/src/http_response_into_observable.ts b/packages/kbn-sse-utils-client/src/http_response_into_observable.ts new file mode 100644 index 0000000000000..b72a0e3939e05 --- /dev/null +++ b/packages/kbn-sse-utils-client/src/http_response_into_observable.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { OperatorFunction, switchMap } from 'rxjs'; +import type { ServerSentEvent } from '@kbn/sse-utils/src/events'; +import { + createObservableFromHttpResponse, + StreamedHttpResponse, +} from './create_observable_from_http_response'; + +export function httpResponseIntoObservable< + T extends ServerSentEvent = ServerSentEvent +>(): OperatorFunction { + return switchMap((response) => createObservableFromHttpResponse(response)); +} diff --git a/packages/kbn-sse-utils-client/tsconfig.json b/packages/kbn-sse-utils-client/tsconfig.json new file mode 100644 index 0000000000000..fa695dc1d0f59 --- /dev/null +++ b/packages/kbn-sse-utils-client/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react" + ] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/sse-utils", + ] +} diff --git a/packages/kbn-sse-utils-server/README.md b/packages/kbn-sse-utils-server/README.md new file mode 100644 index 0000000000000..3c5aa4cc4e9dc --- /dev/null +++ b/packages/kbn-sse-utils-server/README.md @@ -0,0 +1,3 @@ +# @kbn/sse-utils-server + +See @kbn/sse-utils. diff --git a/packages/kbn-sse-utils-server/index.ts b/packages/kbn-sse-utils-server/index.ts new file mode 100644 index 0000000000000..ec2c60a2fe81b --- /dev/null +++ b/packages/kbn-sse-utils-server/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +export { observableIntoEventSourceStream } from './src/observable_into_event_source_stream'; diff --git a/packages/kbn-sse-utils-server/jest.config.js b/packages/kbn-sse-utils-server/jest.config.js new file mode 100644 index 0000000000000..a2fe0d9caa7d3 --- /dev/null +++ b/packages/kbn-sse-utils-server/jest.config.js @@ -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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../..', + roots: ['/packages/kbn-sse-utils-server'], +}; diff --git a/packages/kbn-sse-utils-server/kibana.jsonc b/packages/kbn-sse-utils-server/kibana.jsonc new file mode 100644 index 0000000000000..9e06e575b7989 --- /dev/null +++ b/packages/kbn-sse-utils-server/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/sse-utils-server", + "owner": "@elastic/obs-knowledge-team" +} diff --git a/packages/kbn-sse-utils-server/package.json b/packages/kbn-sse-utils-server/package.json new file mode 100644 index 0000000000000..34c4f9c0a7c9e --- /dev/null +++ b/packages/kbn-sse-utils-server/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/sse-utils-server", + "private": true, + "version": "1.0.0", + "license": "Elastic License 2.0 OR AGPL-3.0-only OR SSPL-1.0" +} \ No newline at end of file diff --git a/packages/kbn-sse-utils-server/src/observable_into_event_source_stream.ts b/packages/kbn-sse-utils-server/src/observable_into_event_source_stream.ts new file mode 100644 index 0000000000000..e0d653e44dabc --- /dev/null +++ b/packages/kbn-sse-utils-server/src/observable_into_event_source_stream.ts @@ -0,0 +1,38 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { map, Observable } from 'rxjs'; +import { PassThrough } from 'stream'; +import { ServerSentEvent } from '@kbn/sse-utils'; + +export function observableIntoEventSourceStream(source$: Observable): PassThrough { + const withSerializedEvents$ = source$.pipe( + map((event) => { + const { type, ...rest } = event; + return `event: ${type}\ndata: ${JSON.stringify(rest)}\n\n`; + }) + ); + + const stream = new PassThrough(); + + withSerializedEvents$.subscribe({ + next: (line) => { + stream.write(line); + }, + complete: () => { + stream.end(); + }, + error: (error) => { + stream.write(`event: error\ndata: ${JSON.stringify(error)}\n\n`); + stream.end(); + }, + }); + + return stream; +} diff --git a/packages/kbn-sse-utils-server/tsconfig.json b/packages/kbn-sse-utils-server/tsconfig.json new file mode 100644 index 0000000000000..9053749c5898b --- /dev/null +++ b/packages/kbn-sse-utils-server/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/sse-utils", + ] +} diff --git a/packages/kbn-sse-utils/README.md b/packages/kbn-sse-utils/README.md new file mode 100644 index 0000000000000..ad6dbf8b67c00 --- /dev/null +++ b/packages/kbn-sse-utils/README.md @@ -0,0 +1,57 @@ +# @kbn/sse-utils + +This package exports utility functions that can be used to format and parse server-sent events(SSE). SSE is useful when streaming data back to the browser as part of a long-running process, such as LLM-based inference. It can convert an Observable that emits values of type `ServerSentEvent` into a response stream on the server, emitting lines in an SSE-compatible format, and it can convert an SSE response stream back into deserialized event. + +## Server + +On the server, you can use `observableIntoEventSourceStream` to convert an Observable that emits `ServerSentEvent` values into a Node.js response stream: + +```ts +import { observableIntoEventSourceStream } from '@kbn/sse-utils-server'; + +function myRequestHandler( + context: RequestHandlerContext, + request: KibanaRequest, + response: KibanaResponseFactory +) { + return response.ok({ + body: observableIntoEventSourceStream( + of({ + type: 'my_event_type', + data: { + anyData: {}, + }, + }) + ), + }); +} +``` + +All emitted values have to be of `ServerSentEvent` type: + +```ts +type ServerSentEvent = { + type: string; + data: Record; +}; +``` + +Any error that occurs in the Observable is written to the stream as an event, and the stream is closed. + +## Client + +On the client, you can use `http `@elastic/core-http-browser` to convert the stream of events back into an Observable: + +```ts +import { httpResponseIntoObservable } from '@kbn/sse-utils-client'; +function streamEvents(http: Http) { + from( + http.post('/internal/my_event_stream', { + asResponse: true, + rawResponse: true, + }) + ).pipe(httpResponseIntoObservable()); +} +``` + +Any serialized error events from the stream are de-serialized, and thrown as an error in the Observable. diff --git a/packages/kbn-sse-utils/index.ts b/packages/kbn-sse-utils/index.ts new file mode 100644 index 0000000000000..0a9bf36fb000e --- /dev/null +++ b/packages/kbn-sse-utils/index.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +export { + createSSERequestError, + createSSEInternalError, + isSSEError, + isSSEInternalError, + isSSERequestError, + ServerSentEventError, +} from './src/errors'; + +export type { ServerSentEvent, ServerSentEventBase } from './src/events'; diff --git a/packages/kbn-sse-utils/jest.config.js b/packages/kbn-sse-utils/jest.config.js new file mode 100644 index 0000000000000..73de8aa4d38bb --- /dev/null +++ b/packages/kbn-sse-utils/jest.config.js @@ -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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +module.exports = { + preset: '@kbn/test/jest_node', + rootDir: '../..', + roots: ['/packages/kbn-sse-utils'], +}; diff --git a/packages/kbn-sse-utils/kibana.jsonc b/packages/kbn-sse-utils/kibana.jsonc new file mode 100644 index 0000000000000..3bd583763b4d8 --- /dev/null +++ b/packages/kbn-sse-utils/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/sse-utils", + "owner": "@elastic/obs-knowledge-team" +} diff --git a/packages/kbn-sse-utils/package.json b/packages/kbn-sse-utils/package.json new file mode 100644 index 0000000000000..b91a2c72afefa --- /dev/null +++ b/packages/kbn-sse-utils/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/sse-utils", + "private": true, + "version": "1.0.0", + "license": "Elastic License 2.0 OR AGPL-3.0-only OR SSPL-1.0" +} \ No newline at end of file diff --git a/packages/kbn-sse-utils/src/errors.ts b/packages/kbn-sse-utils/src/errors.ts new file mode 100644 index 0000000000000..5c6c69ff0ef60 --- /dev/null +++ b/packages/kbn-sse-utils/src/errors.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { i18n } from '@kbn/i18n'; +import { ServerSentEventBase, ServerSentEventType } from './events'; + +export enum ServerSentEventErrorCode { + internalError = 'internalError', + requestError = 'requestError', +} + +export class ServerSentEventError< + TCode extends string, + TMeta extends Record | undefined +> extends Error { + constructor(public code: TCode, message: string, public meta: TMeta) { + super(message); + } + + toJSON(): ServerSentErrorEvent { + return { + type: ServerSentEventType.error, + error: { + code: this.code, + message: this.message, + meta: this.meta, + }, + }; + } +} + +export type ServerSentErrorEvent = ServerSentEventBase< + ServerSentEventType.error, + { + error: { + code: string; + message: string; + meta?: Record; + }; + } +>; + +export type ServerSentEventInternalError = ServerSentEventError< + ServerSentEventErrorCode.internalError, + {} +>; + +export type ServerSentEventRequestError = ServerSentEventError< + ServerSentEventErrorCode.requestError, + { status: number } +>; + +export function createSSEInternalError( + message: string = i18n.translate('sse.internalError', { + defaultMessage: 'An internal error occurred', + }) +): ServerSentEventInternalError { + return new ServerSentEventError(ServerSentEventErrorCode.internalError, message, {}); +} + +export function createSSERequestError( + message: string, + status: number +): ServerSentEventRequestError { + return new ServerSentEventError(ServerSentEventErrorCode.requestError, message, { + status, + }); +} + +export function isSSEError( + error: unknown +): error is ServerSentEventError | undefined> { + return error instanceof ServerSentEventError; +} + +export function isSSEInternalError(error: unknown): error is ServerSentEventInternalError { + return isSSEError(error) && error.code === ServerSentEventErrorCode.internalError; +} + +export function isSSERequestError(error: unknown): error is ServerSentEventRequestError { + return isSSEError(error) && error.code === ServerSentEventErrorCode.requestError; +} diff --git a/packages/kbn-sse-utils/src/events.ts b/packages/kbn-sse-utils/src/events.ts new file mode 100644 index 0000000000000..26ed688a709be --- /dev/null +++ b/packages/kbn-sse-utils/src/events.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +export type ServerSentEventBase< + TEventType extends string, + TData extends Record +> = keyof TData extends 'type' + ? never + : TData & { + type: TEventType; + }; + +export enum ServerSentEventType { + error = 'error', + data = 'data', +} + +export type ServerSentEvent = ServerSentEventBase>; diff --git a/packages/kbn-sse-utils/tsconfig.json b/packages/kbn-sse-utils/tsconfig.json new file mode 100644 index 0000000000000..b38926e5f25ba --- /dev/null +++ b/packages/kbn-sse-utils/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/i18n", + ] +} diff --git a/packages/kbn-storybook/src/webpack.config.ts b/packages/kbn-storybook/src/webpack.config.ts index fb901692e7f66..94302fdc19c41 100644 --- a/packages/kbn-storybook/src/webpack.config.ts +++ b/packages/kbn-storybook/src/webpack.config.ts @@ -120,6 +120,18 @@ export default ({ config: storybookConfig }: { config: Configuration }) => { sassOptions: { includePaths: [resolve(REPO_ROOT, 'node_modules')], quietDeps: true, + logger: { + warn: (message: string, warning: any) => { + // Muted - see https://github.com/elastic/kibana/issues/190345 for tracking remediation + if (warning?.deprecationType?.id === 'mixed-decls') return; + + if (warning.deprecation) + return process.stderr.write( + `DEPRECATION WARNING: ${message}\n${warning.stack}` + ); + process.stderr.write('WARNING: ' + message); + }, + }, }, }, }, diff --git a/packages/kbn-text-based-editor/src/editor_footer/index.tsx b/packages/kbn-text-based-editor/src/editor_footer/index.tsx index cb62cde29ca02..5827f24bd84e1 100644 --- a/packages/kbn-text-based-editor/src/editor_footer/index.tsx +++ b/packages/kbn-text-based-editor/src/editor_footer/index.tsx @@ -10,15 +10,27 @@ import React, { memo, useState, useCallback, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiText, EuiFlexGroup, EuiFlexItem, EuiCode, EuiButtonIcon } from '@elastic/eui'; +import { + EuiText, + EuiFlexGroup, + EuiFlexItem, + EuiCode, + EuiButtonIcon, + EuiButtonEmpty, +} from '@elastic/eui'; import { Interpolation, Theme, css } from '@emotion/react'; -import { LanguageDocumentationInline } from '@kbn/language-documentation-popover'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import { + LanguageDocumentationInline, + LanguageDocumentationFlyout, +} from '@kbn/language-documentation-popover'; import { getLimitFromESQLQuery } from '@kbn/esql-utils'; import { type MonacoMessage } from '../helpers'; import { ErrorsWarningsFooterPopover } from './errors_warnings_popover'; import { QueryHistoryAction, QueryHistory } from './query_history'; import { SubmitFeedbackComponent } from './feedback_component'; import { QueryWrapComponent } from './query_wrap_component'; +import type { TextBasedEditorDeps } from '../types'; const isMac = navigator.platform.toLowerCase().indexOf('mac') >= 0; const COMMAND_KEY = isMac ? '⌘' : '^'; @@ -48,6 +60,8 @@ interface EditorFooterProps { isSpaceReduced?: boolean; hideTimeFilterInfo?: boolean; hideQueryHistory?: boolean; + isInCompactMode?: boolean; + displayDocumentationAsFlyout?: boolean; } export const EditorFooter = memo(function EditorFooter({ @@ -70,9 +84,13 @@ export const EditorFooter = memo(function EditorFooter({ isLanguageComponentOpen, setIsLanguageComponentOpen, hideQueryHistory, + isInCompactMode, + displayDocumentationAsFlyout, measuredContainerWidth, code, }: EditorFooterProps) { + const kibana = useKibana(); + const { docLinks } = kibana.services; const [isErrorPopoverOpen, setIsErrorPopoverOpen] = useState(false); const [isWarningPopoverOpen, setIsWarningPopoverOpen] = useState(false); @@ -278,6 +296,26 @@ export const EditorFooter = memo(function EditorFooter({ )} + {displayDocumentationAsFlyout && !Boolean(editorIsInline) && ( + <> + toggleLanguageComponent()} + css={css` + cursor: pointer; + `} + /> + + + )} {Boolean(editorIsInline) && ( diff --git a/packages/kbn-text-based-editor/src/text_based_languages_editor.test.tsx b/packages/kbn-text-based-editor/src/text_based_languages_editor.test.tsx index ff8253646980c..0855d0326263f 100644 --- a/packages/kbn-text-based-editor/src/text_based_languages_editor.test.tsx +++ b/packages/kbn-text-based-editor/src/text_based_languages_editor.test.tsx @@ -138,6 +138,18 @@ describe('TextBasedLanguagesEditor', () => { expect(component.find('[data-test-subj="TextBasedLangEditor-run-query"]').length).not.toBe(0); }); + it('should render the doc icon if the displayDocumentationAsFlyout is true', async () => { + const newProps = { + ...props, + displayDocumentationAsFlyout: true, + editorIsInline: false, + }; + const component = mount(renderTextBasedLanguagesEditorComponent({ ...newProps })); + expect(component.find('[data-test-subj="TextBasedLangEditor-documentation"]').length).not.toBe( + 0 + ); + }); + it('should not render the run query text if the hideRunQueryText prop is set to true', async () => { const newProps = { ...props, 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 04fce72cfc9c1..c6f8002644318 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 @@ -77,6 +77,7 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ hideTimeFilterInfo, hideQueryHistory, hasOutline, + displayDocumentationAsFlyout, }: TextBasedLanguagesEditorProps) { const popoverRef = useRef(null); const datePickerOpenStatusRef = useRef(false); @@ -562,6 +563,9 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ onLayoutChangeRef.current = onLayoutChange; const codeEditorOptions: CodeEditorProps['options'] = { + hover: { + above: false, + }, accessibilitySupport: 'off', autoIndent: 'none', automaticLayout: true, @@ -765,6 +769,12 @@ export const TextBasedLanguagesEditor = memo(function TextBasedLanguagesEditor({ hideQueryHistory={hideHistoryComponent} resizableContainerButton={resizableContainerButton} resizableContainerHeight={resizableContainerHeight} + displayDocumentationAsFlyout={displayDocumentationAsFlyout} + /> + {createPortal( Object.keys(popoverPosition).length !== 0 && popoverPosition.constructor === Object && ( diff --git a/packages/kbn-text-based-editor/src/types.ts b/packages/kbn-text-based-editor/src/types.ts index 4dabf29308486..2789ff9f7572c 100644 --- a/packages/kbn-text-based-editor/src/types.ts +++ b/packages/kbn-text-based-editor/src/types.ts @@ -11,7 +11,7 @@ import type { CoreStart } from '@kbn/core/public'; import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import type { AggregateQuery } from '@kbn/es-query'; import type { ExpressionsStart } from '@kbn/expressions-plugin/public'; -import type { IndexManagementPluginSetup } from '@kbn/index-management'; +import type { IndexManagementPluginSetup } from '@kbn/index-management-shared-types'; import type { FieldsMetadataPublicStart } from '@kbn/fields-metadata-plugin/public'; export interface TextBasedLanguagesEditorProps { @@ -61,6 +61,9 @@ export interface TextBasedLanguagesEditorProps { /** adds border in the editor **/ hasOutline?: boolean; + + /** adds a documentation icon in the footer which opens the inline docs as a flyout **/ + displayDocumentationAsFlyout?: boolean; } export interface TextBasedEditorDeps { diff --git a/packages/kbn-text-based-editor/tsconfig.json b/packages/kbn-text-based-editor/tsconfig.json index 808fb6e48d836..f78895eab32e4 100644 --- a/packages/kbn-text-based-editor/tsconfig.json +++ b/packages/kbn-text-based-editor/tsconfig.json @@ -23,7 +23,7 @@ "@kbn/data-plugin", "@kbn/expressions-plugin", "@kbn/data-views-plugin", - "@kbn/index-management", + "@kbn/index-management-shared-types", "@kbn/code-editor", "@kbn/fields-metadata-plugin", "@kbn/esql-validation-autocomplete", diff --git a/packages/kbn-ts-projects/ts_projects.ts b/packages/kbn-ts-projects/ts_projects.ts index a7b96009b0b27..2eeeb4ce01c38 100644 --- a/packages/kbn-ts-projects/ts_projects.ts +++ b/packages/kbn-ts-projects/ts_projects.ts @@ -19,7 +19,5 @@ export const TS_PROJECTS = TsProject.loadAll({ // are present or up-to-date, and users likely won't know how to manage either, so the // type check is explicitly disabled in this project for now '.buildkite/tsconfig.json', - - 'x-pack/plugins/threat_intelligence/cypress/tsconfig.json', ], }); diff --git a/packages/kbn-unified-data-table/__mocks__/external_control_columns.tsx b/packages/kbn-unified-data-table/__mocks__/external_control_columns.tsx index 8da8aeff5357f..0d787cde89bef 100644 --- a/packages/kbn-unified-data-table/__mocks__/external_control_columns.tsx +++ b/packages/kbn-unified-data-table/__mocks__/external_control_columns.tsx @@ -18,7 +18,7 @@ import { EuiSpacer, EuiDataGridControlColumn, } from '@elastic/eui'; -import type { RowControlColumn } from '../src/types'; +import { RowControlColumn } from '@kbn/discover-utils'; const SelectionHeaderCell = () => { return ( @@ -128,6 +128,7 @@ export const mockRowAdditionalLeadingControls = ['visBarVerticalStacked', 'heart { alert(`Example "${iconType}" control clicked. Row index: ${rowProps.rowIndex}`); diff --git a/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/get_additional_row_control_columns.ts b/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/get_additional_row_control_columns.ts index 110535f9f7bde..98746de31701a 100644 --- a/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/get_additional_row_control_columns.ts +++ b/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/get_additional_row_control_columns.ts @@ -8,7 +8,7 @@ */ import type { EuiDataGridControlColumn } from '@elastic/eui'; -import type { RowControlColumn } from '../../../types'; +import { RowControlColumn } from '@kbn/discover-utils'; import { getRowControlColumn } from './row_control_column'; import { getRowMenuControlColumn } from './row_menu_control_column'; diff --git a/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_control_column.test.tsx b/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_control_column.test.tsx index 77941d8573e0c..0cd04436a528a 100644 --- a/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_control_column.test.tsx +++ b/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_control_column.test.tsx @@ -25,7 +25,12 @@ describe('getRowControlColumn', () => { id: 'test_row_control', headerAriaLabel: 'row control', renderControl: jest.fn((Control, rowProps) => ( - + )), }; const rowControlColumn = getRowControlColumn(props); diff --git a/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_control_column.tsx b/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_control_column.tsx index b345411e181c7..a1adb1e9a0d76 100644 --- a/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_control_column.tsx +++ b/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_control_column.tsx @@ -15,8 +15,8 @@ import { EuiScreenReaderOnly, EuiToolTip, } from '@elastic/eui'; +import { RowControlColumn, RowControlProps } from '@kbn/discover-utils'; import { DataTableRowControl, Size } from '../../data_table_row_control'; -import type { RowControlColumn, RowControlProps } from '../../../types'; import { DEFAULT_CONTROL_COLUMN_WIDTH } from '../../../constants'; import { useControlColumn } from '../../../hooks/use_control_column'; @@ -30,10 +30,18 @@ export const RowControlCell = ({ const Control: React.FC = useMemo( () => - ({ 'data-test-subj': dataTestSubj, color, disabled, label, iconType, onClick }) => { + ({ + 'data-test-subj': dataTestSubj, + color, + disabled, + iconType, + label, + onClick, + tooltipContent, + }) => { return ( - + { id: 'test_row_menu_control', headerAriaLabel: 'row control', renderControl: jest.fn((Control, rowProps) => ( - + )), }; const rowMenuControlColumn = getRowMenuControlColumn([ diff --git a/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_menu_control_column.tsx b/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_menu_control_column.tsx index ca60c94e68ca1..34d4118956c7a 100644 --- a/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_menu_control_column.tsx +++ b/packages/kbn-unified-data-table/src/components/custom_control_columns/additional_row_control/row_menu_control_column.tsx @@ -20,8 +20,8 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { css } from '@emotion/react'; +import { RowControlColumn, RowControlProps } from '@kbn/discover-utils'; import { DataTableRowControl, Size } from '../../data_table_row_control'; -import type { RowControlColumn, RowControlProps } from '../../../types'; import { DEFAULT_CONTROL_COLUMN_WIDTH } from '../../../constants'; import { useControlColumn } from '../../../hooks/use_control_column'; 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 2b582b965892a..556e445eda4b9 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table.tsx @@ -39,7 +39,12 @@ import { import type { ToastsStart, IUiSettingsClient } from '@kbn/core/public'; import type { Serializable } from '@kbn/utility-types'; import type { DataTableRecord } from '@kbn/discover-utils/types'; -import { getShouldShowFieldHandler } from '@kbn/discover-utils'; +import { + RowControlColumn, + getShouldShowFieldHandler, + canPrependTimeFieldColumn, + getVisibleColumns, +} from '@kbn/discover-utils'; import type { DataViewFieldEditorStart } from '@kbn/data-view-field-editor-plugin/public'; import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; import type { ThemeServiceStart } from '@kbn/react-kibana-context-common'; @@ -53,7 +58,6 @@ import { DataTableColumnsMeta, CustomCellRenderer, CustomGridColumnsConfiguration, - RowControlColumn, } from '../types'; import { getDisplayedColumns } from '../utils/columns'; import { convertValueToString } from '../utils/convert_value_to_string'; @@ -62,8 +66,6 @@ import { getRenderCellValueFn } from '../utils/get_render_cell_value'; import { getEuiGridColumns, getLeadControlColumns, - getVisibleColumns, - canPrependTimeFieldColumn, SELECT_ROW, OPEN_DETAILS, } from './data_table_columns'; 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 23fcd85de1020..4853201af4b48 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,17 +8,9 @@ */ import React from 'react'; -import { dataViewMock } from '@kbn/discover-utils/src/__mocks__'; -import type { DataView } from '@kbn/data-views-plugin/public'; -import type { DatatableColumnType } from '@kbn/expressions-plugin/common'; -import { - deserializeHeaderRowHeight, - getEuiGridColumns, - getVisibleColumns, - canPrependTimeFieldColumn, -} from './data_table_columns'; +import { getVisibleColumns } from '@kbn/discover-utils'; +import { deserializeHeaderRowHeight, getEuiGridColumns } from './data_table_columns'; import { dataViewWithTimefieldMock } from '../../__mocks__/data_view_with_timefield'; -import { dataViewWithoutTimefieldMock } from '../../__mocks__/data_view_without_timefield'; import { dataTableContextMock } from '../../__mocks__/table_context'; import { servicesMock } from '../../__mocks__/services'; import { ROWS_HEIGHT_OPTIONS } from '../constants'; @@ -180,179 +172,6 @@ describe('Data table columns', function () { }); }); - describe('getVisibleColumns', () => { - it('returns grid columns without time column when data view has no timestamp field', () => { - const actual = getVisibleColumns(['extension', 'message'], dataViewMock, true) as string[]; - expect(actual).toEqual(['extension', 'message']); - }); - - it('returns grid columns without time column when showTimeCol is falsy', () => { - const actual = getVisibleColumns( - ['extension', 'message'], - dataViewWithTimefieldMock, - false - ) as string[]; - expect(actual).toEqual(['extension', 'message']); - }); - - it('returns grid columns with time column when data view has timestamp field', () => { - const actual = getVisibleColumns( - ['extension', 'message'], - dataViewWithTimefieldMock, - true - ) as string[]; - expect(actual).toEqual(['timestamp', 'extension', 'message']); - }); - }); - - describe('canPrependTimeFieldColumn', () => { - function buildColumnTypes(dataView: DataView) { - const columnsMeta: Record< - string, - { type: DatatableColumnType; esType?: string | undefined } - > = {}; - for (const field of dataView.fields) { - columnsMeta[field.name] = { type: field.type as DatatableColumnType }; - } - return columnsMeta; - } - - describe('dataView with timeField', () => { - it('should forward showTimeCol if no _source columns is passed', () => { - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['extension', 'message'], - dataViewWithTimefieldMock.timeFieldName, - buildColumnTypes(dataViewWithTimefieldMock), - showTimeCol, - false - ) - ).toBe(showTimeCol); - } - }); - - it('should return false if no _source columns is passed, text-based datasource', () => { - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['extension', 'message'], - dataViewWithTimefieldMock.timeFieldName, - buildColumnTypes(dataViewWithTimefieldMock), - showTimeCol, - true - ) - ).toBe(false); - } - }); - - it('should forward showTimeCol if _source column is passed', () => { - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['_source'], - dataViewWithTimefieldMock.timeFieldName, - buildColumnTypes(dataViewWithTimefieldMock), - showTimeCol, - false - ) - ).toBe(showTimeCol); - } - }); - - it('should forward showTimeCol if _source column is passed, text-based datasource', () => { - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['_source'], - dataViewWithTimefieldMock.timeFieldName, - buildColumnTypes(dataViewWithTimefieldMock), - showTimeCol, - true - ) - ).toBe(showTimeCol); - } - }); - - it('should return false if _source column is passed but time field is not returned, text-based datasource', () => { - // ... | DROP @timestamp test case - const columnsMeta = buildColumnTypes(dataViewWithTimefieldMock); - if (dataViewWithTimefieldMock.timeFieldName) { - delete columnsMeta[dataViewWithTimefieldMock.timeFieldName]; - } - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['_source'], - dataViewWithTimefieldMock.timeFieldName, - columnsMeta, - showTimeCol, - true - ) - ).toBe(false); - } - }); - }); - - describe('dataView without timeField', () => { - it('should return false if no _source columns is passed', () => { - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['extension', 'message'], - dataViewWithoutTimefieldMock.timeFieldName, - buildColumnTypes(dataViewWithoutTimefieldMock), - showTimeCol, - false - ) - ).toBe(false); - } - }); - - it('should return false if no _source columns is passed, text-based datasource', () => { - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['extension', 'message'], - dataViewWithoutTimefieldMock.timeFieldName, - buildColumnTypes(dataViewWithoutTimefieldMock), - showTimeCol, - true - ) - ).toBe(false); - } - }); - - it('should return false if _source column is passed', () => { - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['_source'], - dataViewWithoutTimefieldMock.timeFieldName, - buildColumnTypes(dataViewWithoutTimefieldMock), - showTimeCol, - false - ) - ).toBe(false); - } - }); - - it('should return false if _source column is passed, text-based datasource', () => { - for (const showTimeCol of [true, false]) { - expect( - canPrependTimeFieldColumn( - ['_source'], - dataViewWithoutTimefieldMock.timeFieldName, - buildColumnTypes(dataViewWithoutTimefieldMock), - showTimeCol, - true - ) - ).toBe(false); - } - }); - }); - }); - describe('column tokens', () => { it('returns eui grid columns with tokens', async () => { const actual = getEuiGridColumns({ 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 10f55431faa71..4ef0636093f8d 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 @@ -358,39 +358,3 @@ export function getEuiGridColumns({ }) ); } - -export function canPrependTimeFieldColumn( - columns: string[], - timeFieldName: string | undefined, - columnsMeta: DataTableColumnsMeta | undefined, - showTimeCol: boolean, - isPlainRecord: boolean -) { - if (!showTimeCol || !timeFieldName) { - return false; - } - - if (isPlainRecord) { - return !!columnsMeta && timeFieldName in columnsMeta && columns.includes('_source'); - } - - return true; -} - -export function getVisibleColumns( - columns: string[], - dataView: DataView, - shouldPrependTimeFieldColumn: boolean -) { - const timeFieldName = dataView.timeFieldName; - - if ( - shouldPrependTimeFieldColumn && - timeFieldName && - !columns.find((col) => col === timeFieldName) - ) { - return [timeFieldName, ...columns]; - } - - return columns; -} diff --git a/packages/kbn-unified-data-table/src/types.ts b/packages/kbn-unified-data-table/src/types.ts index a020a896130f3..ca5f4f8a83882 100644 --- a/packages/kbn-unified-data-table/src/types.ts +++ b/packages/kbn-unified-data-table/src/types.ts @@ -7,19 +7,12 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import type { ReactElement, FC } from 'react'; -import type { - EuiDataGridCellValueElementProps, - EuiDataGridColumn, - IconType, - EuiButtonIconProps, -} from '@elastic/eui'; +import type { ReactElement } from 'react'; +import type { EuiDataGridCellValueElementProps, 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'; -import type { EuiDataGridControlColumn } from '@elastic/eui/src/components/datagrid/data_grid_types'; -import type { DatatableColumnMeta } from '@kbn/expressions-plugin/common'; - +export type { DataTableColumnsMeta } from '@kbn/discover-utils/src/types'; export type { DataGridDensity } from './constants'; /** @@ -45,17 +38,6 @@ export type ValueToStringConverter = ( options?: { compatibleWithCSV?: boolean } ) => { formattedString: string; withFormula: boolean }; -/** - * Custom column types per column name - */ -export type DataTableColumnsMeta = Record< - string, - { - type: DatatableColumnMeta['type']; - esType?: DatatableColumnMeta['esType']; - } ->; - export type DataGridCellValueElementProps = EuiDataGridCellValueElementProps & { row: DataTableRecord; dataView: DataView; @@ -78,26 +60,3 @@ export type CustomGridColumnsConfiguration = Record< string, (props: CustomGridColumnProps) => EuiDataGridColumn >; - -export interface RowControlRowProps { - rowIndex: number; - record: DataTableRecord; -} - -export interface RowControlProps { - 'data-test-subj'?: string; - color?: EuiButtonIconProps['color']; - disabled?: boolean; - label: string; - iconType: IconType; - onClick: ((props: RowControlRowProps) => void) | undefined; -} - -export type RowControlComponent = FC; - -export interface RowControlColumn { - id: string; - headerAriaLabel: string; - headerCellRender?: EuiDataGridControlColumn['headerCellRender']; - renderControl: (Control: RowControlComponent, props: RowControlRowProps) => ReactElement; -} diff --git a/packages/kbn-unified-doc-viewer/src/services/types.ts b/packages/kbn-unified-doc-viewer/src/services/types.ts index 88b5824c6837f..04d88ba256a37 100644 --- a/packages/kbn-unified-doc-viewer/src/services/types.ts +++ b/packages/kbn-unified-doc-viewer/src/services/types.ts @@ -9,8 +9,11 @@ import type { DataView, DataViewField } from '@kbn/data-views-plugin/public'; import type { AggregateQuery, Query } from '@kbn/es-query'; -import type { DataTableRecord, IgnoredReason } from '@kbn/discover-utils/types'; -import type { DatatableColumnMeta } from '@kbn/expressions-plugin/common'; +import type { + DataTableRecord, + DataTableColumnsMeta, + IgnoredReason, +} from '@kbn/discover-utils/types'; import { DocViewsRegistry } from './doc_views_registry'; export interface FieldMapping { @@ -36,13 +39,7 @@ export interface DocViewRenderProps { * If not provided, types will be derived by default from the dataView field types. * For displaying text-based search results, define column types (which are available separately in the fetch request) here. */ - columnsMeta?: Record< - string, - { - type: DatatableColumnMeta['type']; - esType?: DatatableColumnMeta['esType']; - } - >; + columnsMeta?: DataTableColumnsMeta; query?: Query | AggregateQuery; textBasedHits?: DataTableRecord[]; hideActionsColumn?: boolean; diff --git a/packages/kbn-unified-doc-viewer/tsconfig.json b/packages/kbn-unified-doc-viewer/tsconfig.json index 05bb4f1539598..e9429af74bd74 100644 --- a/packages/kbn-unified-doc-viewer/tsconfig.json +++ b/packages/kbn-unified-doc-viewer/tsconfig.json @@ -24,6 +24,5 @@ "@kbn/i18n", "@kbn/react-field", "@kbn/field-utils", - "@kbn/expressions-plugin", ] } 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 d588b2b98b1d7..238022fb150f4 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 @@ -205,7 +205,7 @@ export const UnifiedFieldListSidebarComponent: React.FC['onSupportedFieldFilter'] = useCallback( - (field) => { + (field: DataViewField) => { return shouldShowField( field, searchMode, diff --git a/packages/kbn-visualization-ui-components/components/query_input/filter_query_input.tsx b/packages/kbn-visualization-ui-components/components/query_input/filter_query_input.tsx index c8280a6edd288..997016ef0b833 100644 --- a/packages/kbn-visualization-ui-components/components/query_input/filter_query_input.tsx +++ b/packages/kbn-visualization-ui-components/components/query_input/filter_query_input.tsx @@ -121,7 +121,7 @@ export function FilterQueryInput({ } )} > - {inputFilter?.query || + {(inputFilter?.query as string) || i18n.translate( 'visualizationUiComponents.filterQueryInput.emptyFilterQuery', { diff --git a/src/core/server/integration_tests/saved_objects/migrations/group1/7.7.2_xpack_100k.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group1/7.7.2_xpack_100k.test.ts index 2a2b4d1e9c8e6..3cd7451e71014 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group1/7.7.2_xpack_100k.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group1/7.7.2_xpack_100k.test.ts @@ -29,7 +29,8 @@ async function removeLogFile() { /** Number of SO documents dropped during the migration because they belong to an unused type */ const UNUSED_SO_COUNT = 5; -describe('migration from 7.7.2-xpack with 100k objects', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration from 7.7.2-xpack with 100k objects', () => { let esServer: TestElasticsearchUtils; let root: Root; let coreStart: InternalCoreStart; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_failed_action_tasks.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_failed_action_tasks.test.ts index 8c59d16ecebf7..7575cc4c93dba 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_failed_action_tasks.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_failed_action_tasks.test.ts @@ -24,7 +24,8 @@ async function removeLogFile() { await fs.unlink(logFilePath).catch(() => void 0); } -describe('migration from 7.13 to 7.14+ with many failed action_tasks', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration from 7.13 to 7.14+ with many failed action_tasks', () => { describe('if mappings are incompatible (reindex required)', () => { let esServer: TestElasticsearchUtils; let root: Root; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_transform_failures.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_transform_failures.test.ts index 1ea48ead856d8..c186b4c0613ef 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_transform_failures.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_transform_failures.test.ts @@ -38,7 +38,8 @@ async function removeLogFile() { await asyncUnlink(logFilePath).catch(() => void 0); } -describe('migration v2', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2', () => { let esServer: TestElasticsearchUtils; let root: Root; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_unknown_types.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_unknown_types.test.ts index 6922678d68f64..25698f9b63f68 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_unknown_types.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group1/7_13_0_unknown_types.test.ts @@ -28,7 +28,8 @@ async function removeLogFile() { await fs.unlink(logFilePath).catch(() => void 0); } -describe('migration v2', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2', () => { let esServer: TestElasticsearchUtils; let root: Root; let startES: () => Promise; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/batch_size_bytes.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/batch_size_bytes.test.ts index 9f820db3c58dd..a360fd4114d91 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/batch_size_bytes.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/batch_size_bytes.test.ts @@ -56,7 +56,8 @@ async function fetchDocuments(esClient: ElasticsearchClient, index: string) { const assertMigratedDocuments = (arr: any[], target: any[]) => target.every((v) => arr.includes(v)); -describe('migration v2', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2', () => { let esServer: TestElasticsearchUtils; let root: Root; let startES: () => Promise; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/batch_size_bytes_exceeds_es_content_length.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/batch_size_bytes_exceeds_es_content_length.test.ts index 5773974b422f0..f08765a24052c 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/batch_size_bytes_exceeds_es_content_length.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/batch_size_bytes_exceeds_es_content_length.test.ts @@ -25,7 +25,8 @@ async function removeLogFile() { await fs.unlink(logFilePath).catch(() => void 0); } -describe('migration v2', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2', () => { let esServer: TestElasticsearchUtils; let root: Root; let startES: () => Promise; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/check_target_mappings.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/check_target_mappings.test.ts index caef926ea9417..4c0721eb04e6f 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/check_target_mappings.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/check_target_mappings.test.ts @@ -21,7 +21,8 @@ import { const logFilePath = Path.join(__dirname, 'check_target_mappings.log'); -describe('migration v2 - CHECK_TARGET_MAPPINGS', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2 - CHECK_TARGET_MAPPINGS', () => { let esServer: TestElasticsearchUtils; let root: Root; let logs: string; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/collects_corrupt_docs.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/collects_corrupt_docs.test.ts index 64ef05753aa9f..2e78229709060 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/collects_corrupt_docs.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/collects_corrupt_docs.test.ts @@ -28,7 +28,8 @@ async function removeLogFile() { await asyncUnlink(logFilePath).catch(() => void 0); } -describe('migration v2 with corrupt saved object documents', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2 with corrupt saved object documents', () => { let esServer: TestElasticsearchUtils; let root: Root; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/corrupt_outdated_docs.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/corrupt_outdated_docs.test.ts index 34ec41a2a1703..b342882f468b3 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/corrupt_outdated_docs.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/corrupt_outdated_docs.test.ts @@ -26,7 +26,8 @@ async function removeLogFile() { await asyncUnlink(logFilePath).catch(() => void 0); } -describe('migration v2 with corrupt saved object documents', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2 with corrupt saved object documents', () => { let esServer: TestElasticsearchUtils; let root: Root; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group2/outdated_docs.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group2/outdated_docs.test.ts index 7a8b093489ab0..2c45dab10dff2 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group2/outdated_docs.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group2/outdated_docs.test.ts @@ -27,7 +27,8 @@ async function removeLogFile() { await asyncUnlink(logFilePath).catch(() => void 0); } -describe('migration v2', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2', () => { let esServer: TestElasticsearchUtils; let root: Root; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts index e0c09dd751901..7b90206b5e8ae 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/actions/actions.test.ts @@ -60,7 +60,8 @@ const { startES } = createTestServers({ }); let esServer: TestElasticsearchUtils; -describe('migration actions', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration actions', () => { let client: ElasticsearchClient; let esCapabilities: ReturnType; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/incompatible_cluster_routing_allocation.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/incompatible_cluster_routing_allocation.test.ts index ee6c499da7ce8..b4d1aaa24675c 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/incompatible_cluster_routing_allocation.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/incompatible_cluster_routing_allocation.test.ts @@ -97,7 +97,8 @@ async function updateRoutingAllocations( }); } -describe('incompatible_cluster_routing_allocation', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('incompatible_cluster_routing_allocation', () => { let client: ElasticsearchClient; let root: Root; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/migration_from_older_v1.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/migration_from_older_v1.test.ts index 118ea76a13f21..f9918966e9576 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/migration_from_older_v1.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/migration_from_older_v1.test.ts @@ -59,7 +59,8 @@ async function fetchDocuments(esClient: ElasticsearchClient, index: string) { .sort(sortByTypeAndId); } -describe('migrating from 7.3.0-xpack which used v1 migrations', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migrating from 7.3.0-xpack which used v1 migrations', () => { const migratedIndex = `.kibana_${kibanaVersion}_001`; const originalIndex = `.kibana_1`; // v1 migrations index diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/multiple_es_nodes.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/multiple_es_nodes.test.ts index 490dea4c06be6..e7ffab2b7c7ac 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/multiple_es_nodes.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/multiple_es_nodes.test.ts @@ -95,7 +95,8 @@ function createRoot({ logFileName, hosts }: RootConfig) { }); } -describe('migration v2', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2', () => { let esServer: TestElasticsearchUtils; let root: Root; const migratedIndexAlias = `.kibana_${pkg.version}`; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/read_batch_size.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/read_batch_size.test.ts index 8a233839f2696..e6c22469e1fbe 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/read_batch_size.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/read_batch_size.test.ts @@ -18,7 +18,8 @@ import { startElasticsearch } from '../kibana_migrator_test_kit'; const logFilePath = Path.join(__dirname, 'read_batch_size.log'); -describe('migration v2 - read batch size', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2 - read batch size', () => { let esServer: TestElasticsearchUtils; let root: Root; let logs: string; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/rewriting_id.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/rewriting_id.test.ts index 15b718b53d715..7e7c6c13465cd 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/rewriting_id.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/rewriting_id.test.ts @@ -93,8 +93,8 @@ function createRoot() { ); } -// FAILING: https://github.com/elastic/kibana/issues/98351 -describe('migration v2', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('migration v2', () => { let esServer: TestElasticsearchUtils; let root: Root; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group3/split_failed_to_clone.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group3/split_failed_to_clone.test.ts index 7e96ad44ace61..c37640cfe9569 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group3/split_failed_to_clone.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group3/split_failed_to_clone.test.ts @@ -61,7 +61,8 @@ const RELOCATE_TYPES: Record = { export const logFilePath = Path.join(__dirname, 'split_failed_to_clone.test.log'); -describe('when splitting .kibana into multiple indices and one clone fails', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('when splitting .kibana into multiple indices and one clone fails', () => { let esServer: TestElasticsearchUtils['es']; let typeRegistry: ISavedObjectTypeRegistry; let migratorTestKitFactory: () => Promise; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group5/active_delete_multiple_instances.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group5/active_delete_multiple_instances.test.ts index bff36e29d08b5..f74c62734b288 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group5/active_delete_multiple_instances.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group5/active_delete_multiple_instances.test.ts @@ -37,7 +37,8 @@ const dataArchive = Path.join(__dirname, '..', 'archives', '1m_dummy_so.zip'); jest.setTimeout(24 * 3600 * 100); -describe('multiple migrator instances running in parallel', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('multiple migrator instances running in parallel', () => { it.skip('enable and focus this test (it.skip => fit), and run it, in order to create a baseline archive', async () => { // generate DOCUMENTS_PER_TYPE documents of each type const documents: SavedObjectsBulkCreateObject[] = ['server', 'basic', 'deprecated', 'complex'] diff --git a/src/core/server/integration_tests/saved_objects/migrations/group5/dot_kibana_split.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group5/dot_kibana_split.test.ts index 015e29788287c..3b9d647b25166 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group5/dot_kibana_split.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group5/dot_kibana_split.test.ts @@ -46,7 +46,8 @@ const PARALLEL_MIGRATORS = 6; export const logFilePathFirstRun = Path.join(__dirname, 'dot_kibana_split_1st_run.test.log'); export const logFilePathSecondRun = Path.join(__dirname, 'dot_kibana_split_2nd_run.test.log'); -describe('split .kibana index into multiple system indices', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('split .kibana index into multiple system indices', () => { let esServer: TestElasticsearchUtils['es']; let typeRegistry: ISavedObjectTypeRegistry; diff --git a/src/core/server/integration_tests/saved_objects/migrations/group6/single_migrator_failures.test.ts b/src/core/server/integration_tests/saved_objects/migrations/group6/single_migrator_failures.test.ts index 67fcc7c29260b..bb6b47b3eb6e0 100644 --- a/src/core/server/integration_tests/saved_objects/migrations/group6/single_migrator_failures.test.ts +++ b/src/core/server/integration_tests/saved_objects/migrations/group6/single_migrator_failures.test.ts @@ -28,7 +28,8 @@ import { getElasticsearchClientWrapperFactory } from '../elasticsearch_client_wr export const logFilePathFirstRun = Path.join(__dirname, 'dot_kibana_split_1st_run.test.log'); export const logFilePathSecondRun = Path.join(__dirname, 'dot_kibana_split_2nd_run.test.log'); -describe('split .kibana index into multiple system indices', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('split .kibana index into multiple system indices', () => { let esServer: TestElasticsearchUtils['es']; let typeRegistry: ISavedObjectTypeRegistry; diff --git a/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker b/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker index e2ffab235f34e..841be2f775336 100755 --- a/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker +++ b/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker @@ -238,6 +238,7 @@ kibana_vars=( xpack.alerting.rules.run.actions.max xpack.alerting.rules.run.alerts.max xpack.alerting.rules.run.actions.connectorTypeOverrides + xpack.alerting.maxScheduledPerMinute xpack.alerts.healthCheck.interval xpack.alerts.invalidateApiKeysTask.interval xpack.alerts.invalidateApiKeysTask.removalDelay diff --git a/src/dev/build/tasks/os_packages/docker_generator/run.ts b/src/dev/build/tasks/os_packages/docker_generator/run.ts index 38219ebc5d7d8..23010717fe495 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/run.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/run.ts @@ -51,7 +51,7 @@ export async function runDockerGenerator( */ if (flags.baseImage === 'wolfi') baseImageName = - 'docker.elastic.co/wolfi/chainguard-base:latest@sha256:c16d3ad6cebf387e8dd2ad769f54320c4819fbbaa21e729fad087c7ae223b4d0'; + 'docker.elastic.co/wolfi/chainguard-base:latest@sha256:aad4cd4e5f6d849691748c6933761889db1a20a57231613b98bbff61fa7723ab'; let imageFlavor = ''; if (flags.baseImage === 'ubi') imageFlavor += `-ubi`; diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts b/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts index 118cb0bda6725..c9fe48d22918f 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/templates/kibana_yml.template.ts @@ -24,6 +24,11 @@ function generator({ imageFlavor }: TemplateContext) { server.shutdownTimeout: "5s" elasticsearch.hosts: [ "http://elasticsearch:9200" ] monitoring.ui.container.elasticsearch.enabled: true + + # Must be removed before v9 release + # Requires all registry packages to add v9 as a compatible semver range + # https://github.com/elastic/kibana/issues/192624 + xpack.fleet.internal.registry.kibanaVersionCheckEnabled: false `); } diff --git a/src/dev/precommit_hook/casing_check_config.js b/src/dev/precommit_hook/casing_check_config.js index 8755ff540ba5d..37ef5ebe6c233 100644 --- a/src/dev/precommit_hook/casing_check_config.js +++ b/src/dev/precommit_hook/casing_check_config.js @@ -46,6 +46,7 @@ export const IGNORE_FILE_GLOBS = [ 'test/package/Vagrantfile', 'x-pack/plugins/security_solution/scripts/endpoint/common/vagrant/Vagrantfile', '**/test/**/fixtures/**/*', + 'packages/kbn-router-to-openapispec/openapi-types.d.ts', // Required to match the name in the docs.elastic.dev repo. 'dev_docs/nav-kibana-dev.docnav.json', diff --git a/src/dev/run_quick_checks.ts b/src/dev/run_quick_checks.ts index 383a9e989520e..b856246d40e24 100644 --- a/src/dev/run_quick_checks.ts +++ b/src/dev/run_quick_checks.ts @@ -70,7 +70,7 @@ void run(async ({ log, flagsReader }) => { const failedChecks = results.filter((check) => !check.success); if (failedChecks.length > 0) { logger.write(`--- ${failedChecks.length} quick check(s) failed. ❌`); - logger.write(`See above for details.`); + logger.write(`See the script(s) marked with ❌ above for details.`); process.exitCode = 1; } else { logger.write('--- All checks passed. ✅'); diff --git a/src/dev/storybook/aliases.ts b/src/dev/storybook/aliases.ts index 6dab85feb2fcf..25aac790f08fe 100644 --- a/src/dev/storybook/aliases.ts +++ b/src/dev/storybook/aliases.ts @@ -45,6 +45,7 @@ export const storybookAliases = { grouping: 'packages/kbn-grouping/.storybook', home: 'src/plugins/home/.storybook', infra: 'x-pack/plugins/observability_solution/infra/.storybook', + inventory: 'x-pack/plugins/observability_solution/inventory/.storybook', investigate: 'x-pack/plugins/observability_solution/investigate_app/.storybook', kibana_react: 'src/plugins/kibana_react/.storybook', lists: 'x-pack/plugins/lists/.storybook', diff --git a/src/plugins/ai_assistant_management/selection/server/plugin.ts b/src/plugins/ai_assistant_management/selection/server/plugin.ts index 929e09047269c..a8175f2f0bce8 100644 --- a/src/plugins/ai_assistant_management/selection/server/plugin.ts +++ b/src/plugins/ai_assistant_management/selection/server/plugin.ts @@ -17,6 +17,7 @@ import { DEFAULT_APP_CATEGORIES, } from '@kbn/core/server'; import { schema } from '@kbn/config-schema'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import type { AIAssistantManagementSelectionConfig } from './config'; import type { AIAssistantManagementSelectionPluginServerDependenciesSetup, @@ -111,6 +112,7 @@ export class AIAssistantManagementSelectionPlugin order: 8600, app: [], category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], management: { kibana: [ 'aiAssistantManagementSelection', diff --git a/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.test.tsx b/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.test.tsx index 1b91e40ec4b1d..d5317379ee0e3 100644 --- a/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.test.tsx +++ b/src/plugins/chart_expressions/expression_xy/public/components/xy_chart.test.tsx @@ -3199,7 +3199,7 @@ describe('XYChart component', () => { // styles are passed because they are shared, dataValues is rounded to the interval expect(groupedAnnotation).toMatchSnapshot(); // renders numeric icon for grouped annotations - const marker = mount(
    {groupedAnnotation.prop('marker')}
    ); + const marker = mount(
    {groupedAnnotation.prop('marker') as React.ReactNode}
    ); const numberIcon = marker.find('NumberIcon'); expect(numberIcon.length).toEqual(1); expect(numberIcon.text()).toEqual('3'); diff --git a/src/plugins/console/server/lib/spec_definitions/json/overrides/esql.query.json b/src/plugins/console/server/lib/spec_definitions/json/overrides/esql.query.json index 4aa91f099c077..2dd1f9b50ee3b 100644 --- a/src/plugins/console/server/lib/spec_definitions/json/overrides/esql.query.json +++ b/src/plugins/console/server/lib/spec_definitions/json/overrides/esql.query.json @@ -12,7 +12,7 @@ "csv", "json", "smile", - "text", + "txt", "tsv", "yaml" ], diff --git a/src/plugins/controls/public/react_controls/control_group/components/control_group.tsx b/src/plugins/controls/public/react_controls/control_group/components/control_group.tsx index a9b23316bf83f..f6259ddc95149 100644 --- a/src/plugins/controls/public/react_controls/control_group/components/control_group.tsx +++ b/src/plugins/controls/public/react_controls/control_group/components/control_group.tsx @@ -96,7 +96,7 @@ export function ControlGroup({ const ApplyButtonComponent = useMemo(() => { return ( - ) : hideEmptyDragHandle ? null : ( - - ); + ) : null; export const ControlPanel = ({ Component, @@ -115,6 +113,7 @@ export const ControlPanel = >( ({ id, attributes: { timeRestore } }) => getDashboardUrl(id, timeRestore), [getDashboardUrl] ); diff --git a/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.tsx b/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.tsx index edc200e419878..c1ff731e16d1e 100644 --- a/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.tsx +++ b/src/plugins/data_view_field_editor/public/components/field_format_editor/samples/samples.tsx @@ -37,7 +37,7 @@ export class FormatEditorSamples extends PureComponent defaultMessage: 'Input', }), render: (input: {} | string) => { - return typeof input === 'object' ? JSON.stringify(input) : input; + return (typeof input === 'object' ? JSON.stringify(input) : input) as string; }, }, { diff --git a/src/plugins/discover/common/data_types/logs/constants.ts b/src/plugins/discover/common/data_types/logs/constants.ts index 060fa38c0027b..18259dcc56b28 100644 --- a/src/plugins/discover/common/data_types/logs/constants.ts +++ b/src/plugins/discover/common/data_types/logs/constants.ts @@ -66,3 +66,5 @@ export const DEFAULT_ALLOWED_DATA_VIEWS = ['logs', 'auditbeat', 'filebeat', 'win export const DEFAULT_ALLOWED_LOGS_DATA_VIEWS = ['logs', 'auditbeat', 'filebeat', 'winlogbeat']; export const LOG_LEVEL_FIELDS = ['log.level', 'log_level']; +export const SERVICE_NAME_FIELDS = ['service.name', 'service_name']; +export const AGENT_NAME_FIELD = 'agent.name'; diff --git a/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts b/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts index 27d0812c384da..464efc62ac47e 100644 --- a/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts +++ b/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts @@ -10,7 +10,7 @@ import { estypes } from '@elastic/elasticsearch'; import { lastValueFrom } from 'rxjs'; import { ISearchSource, EsQuerySortValue, SortDirection } from '@kbn/data-plugin/public'; -import { buildDataTableRecord } from '@kbn/discover-utils'; +import { buildDataTableRecordList } from '@kbn/discover-utils'; import type { DataTableRecord } from '@kbn/discover-utils/types'; import type { SearchResponseWarning } from '@kbn/search-response-warnings'; import { RequestAdapter } from '@kbn/inspector-plugin/common'; @@ -99,11 +99,11 @@ export async function fetchHitsInInterval( const { rawResponse } = await lastValueFrom(fetch$); const dataView = searchSource.getField('index'); - const rows = rawResponse.hits?.hits.map((hit) => - profilesManager.resolveDocumentProfile({ - record: buildDataTableRecord(hit, dataView!), - }) - ); + const rows = buildDataTableRecordList({ + records: rawResponse.hits?.hits, + dataView, + processRecord: (record) => profilesManager.resolveDocumentProfile({ record }), + }); const interceptedWarnings: SearchResponseWarning[] = []; services.data.search.showWarnings(adapter, (warning) => { interceptedWarnings.push(warning); diff --git a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx index c9d6124a8d1c2..6d739df33b8d1 100644 --- a/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx +++ b/src/plugins/discover/public/application/main/components/layout/discover_documents.tsx @@ -493,6 +493,7 @@ function DiscoverDocumentsComponent({ additionalFieldGroups={additionalFieldGroups} dataGridDensityState={density} onUpdateDataGridDensity={onUpdateDensity} + query={query} cellActionsTriggerId={DISCOVER_CELL_ACTIONS_TRIGGER.id} cellActionsMetadata={cellActionsMetadata} cellActionsHandling="append" diff --git a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx index 5268d1d626b54..e332da22f4776 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx +++ b/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx @@ -140,6 +140,7 @@ export interface DiscoverSidebarResponsiveProps { * Desktop: Sidebar view, all elements are visible * Mobile: Data view selector is visible and a button to trigger a flyout with all elements */ + export function DiscoverSidebarResponsive(props: DiscoverSidebarResponsiveProps) { const [unifiedFieldListSidebarContainerApi, setUnifiedFieldListSidebarContainerApi] = useState(null); diff --git a/src/plugins/discover/public/components/data_types/logs/log_level_badge_cell.tsx b/src/plugins/discover/public/components/data_types/logs/log_level_badge_cell.tsx index 2d982cb605863..883452c7cd12c 100644 --- a/src/plugins/discover/public/components/data_types/logs/log_level_badge_cell.tsx +++ b/src/plugins/discover/public/components/data_types/logs/log_level_badge_cell.tsx @@ -26,7 +26,7 @@ export const getLogLevelBadgeCell = return ( {value}} + fallback={{value as string}} data-test-subj={dataTestSubj} css={badgeCss} /> diff --git a/src/plugins/discover/public/components/data_types/logs/service_name_cell.test.tsx b/src/plugins/discover/public/components/data_types/logs/service_name_cell.test.tsx new file mode 100644 index 0000000000000..8cf45be4f09e5 --- /dev/null +++ b/src/plugins/discover/public/components/data_types/logs/service_name_cell.test.tsx @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { buildDataTableRecord, DataTableRecord } from '@kbn/discover-utils'; +import { dataViewMock } from '@kbn/discover-utils/src/__mocks__'; +import { fieldFormatsMock } from '@kbn/field-formats-plugin/common/mocks'; +import { render, screen } from '@testing-library/react'; +import React from 'react'; +import { getServiceNameCell } from './service_name_cell'; + +const renderCell = (serviceNameField: string, record: DataTableRecord) => { + const ServiceNameCell = getServiceNameCell(serviceNameField); + render( + {}} + closePopover={() => {}} + /> + ); +}; + +describe('getServiceNameCell', () => { + it('renders icon if agent name is recognized', () => { + const record = buildDataTableRecord( + { fields: { 'service.name': 'test-service', 'agent.name': 'nodejs' } }, + dataViewMock + ); + renderCell('service.name', record); + expect(screen.getByTestId('serviceNameCell-nodejs')).toBeInTheDocument(); + }); + + it('renders default icon with unknwon test subject if agent name is missing', () => { + const record = buildDataTableRecord( + { fields: { 'service.name': 'test-service' } }, + dataViewMock + ); + renderCell('service.name', record); + expect(screen.getByTestId('serviceNameCell-unknown')).toBeInTheDocument(); + }); + + it('does not render if service name is missing', () => { + const record = buildDataTableRecord({ fields: { 'agent.name': 'nodejs' } }, dataViewMock); + renderCell('service.name', record); + expect(screen.queryByTestId('serviceNameCell-nodejs')).not.toBeInTheDocument(); + expect(screen.queryByTestId('serviceNameCell-unknown')).not.toBeInTheDocument(); + }); +}); diff --git a/src/plugins/discover/public/components/data_types/logs/service_name_cell.tsx b/src/plugins/discover/public/components/data_types/logs/service_name_cell.tsx new file mode 100644 index 0000000000000..e70c3dae4c2af --- /dev/null +++ b/src/plugins/discover/public/components/data_types/logs/service_name_cell.tsx @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui'; +import type { AgentName } from '@kbn/elastic-agent-utils'; +import { dynamic } from '@kbn/shared-ux-utility'; +import type { DataGridCellValueElementProps } from '@kbn/unified-data-table'; +import React from 'react'; +import { getFieldValue } from '@kbn/discover-utils'; +import { AGENT_NAME_FIELD } from '../../../../common/data_types/logs/constants'; + +const dataTestSubj = 'serviceNameCell'; +const AgentIcon = dynamic(() => import('@kbn/custom-icons/src/components/agent_icon')); + +export const getServiceNameCell = + (serviceNameField: string) => (props: DataGridCellValueElementProps) => { + const serviceNameValue = getFieldValue(props.row, serviceNameField); + const agentName = getFieldValue(props.row, AGENT_NAME_FIELD) as AgentName; + + if (!serviceNameValue) { + return -; + } + + return ( + + + + + + + {serviceNameValue} + + ); + }; diff --git a/src/plugins/discover/public/components/discover_grid/discover_grid.tsx b/src/plugins/discover/public/components/discover_grid/discover_grid.tsx index 48f54867772f7..0fcb775d02184 100644 --- a/src/plugins/discover/public/components/discover_grid/discover_grid.tsx +++ b/src/plugins/discover/public/components/discover_grid/discover_grid.tsx @@ -14,13 +14,19 @@ import { type UnifiedDataTableProps, } from '@kbn/unified-data-table'; import { useProfileAccessor } from '../../context_awareness'; +import { DiscoverAppState } from '../../application/main/state_management/discover_app_state_container'; + +export interface DiscoverGridProps extends UnifiedDataTableProps { + query?: DiscoverAppState['query']; +} /** * Customized version of the UnifiedDataTable * @constructor */ -export const DiscoverGrid: React.FC = ({ +export const DiscoverGrid: React.FC = ({ rowAdditionalLeadingControls: customRowAdditionalLeadingControls, + query, ...props }) => { const getRowIndicatorProvider = useProfileAccessor('getRowIndicatorProvider'); @@ -34,8 +40,14 @@ export const DiscoverGrid: React.FC = ({ const rowAdditionalLeadingControls = useMemo(() => { return getRowAdditionalLeadingControlsAccessor(() => customRowAdditionalLeadingControls)({ dataView: props.dataView, + query, }); - }, [getRowAdditionalLeadingControlsAccessor, props.dataView, customRowAdditionalLeadingControls]); + }, [ + getRowAdditionalLeadingControlsAccessor, + props.dataView, + query, + customRowAdditionalLeadingControls, + ]); return ( `data source` > `document`), making it possible to create context-dependent profiles. For example, an `oblt-logs-data-source` profile which is used when the current solution type is Observability, and the current data source contains logs data. + +Definitions for the core `Profile` interface are located in the [`types.ts`](types.ts) file. + +Definitions for the available profile provider types are located in the [`profiles`](./profiles) folder. + +### Merged accessors + +Composable profiles operate similarly to middleware in that each of their extension point implementations are passed a `prev` argument, which can be called to access the results from profiles at previous context levels, and allows overwriting or composing a final result from the previous results. The function Discover calls to trigger the extension point merging process and obtain a final result from the combined profiles is referred to as a "merged accessor". + +The merging order for profiles is based on the context level hierarchy (`root` > `data source` > `document`), meaning the root profile is passed a base implementation as its `prev` argument, the data source profile is passed the root implementation as `prev` (if one exists, otherwise the base implementation), and document profiles are passed the data source implementation as `prev` (if one exists, otherwise the root or base implementation). + +The following diagram illustrates the extension point merging process: +![image](./docs/merged_accessors.png) + +Definitions for composable profiles and the merging routine are located in the [`composable_profile.ts`](./composable_profile.ts) file. + +### Supporting services + +The context awareness framework is driven by two main supporting services called `ProfileService` and `ProfilesManager`. + +Each context level has a dedicated profile service, e.g. `RootProfileService`, which is responsible for accepting profile provider registrations and looping over each provider in order during context resolution to identify a matching profile. Each resolution call can result in only one matching profile, which is the first to return a match based on execution order. + +A single `ProfilesManager` is instantiated on Discover load, or one per saved search panel in a dashboard. The profiles manager is responsible for the following: + +- Managing state associated with the current Discover context. +- Coordinating profile services and exposing resolution methods for each context level. +- Providing access to the combined set of resolved profiles. +- Deduplicating profile resolution attempts with identical parameters. +- Error handling and fallback behaviour on profile resolution failure. + +`ProfileService` definitions and implementation are located in the [`profiles_service.ts`](./profile_service.ts) file. + +The `ProfilesManager` implementation is located in the [`profiles_manager.ts`](./profiles_manager.ts) file. + +### Putting it all together + +The following diagram models the overall Discover context awareness framework and how each of the above concepts come together: +![image](./docs/architecture.png) + +## Code organization + +One of the core ideas of the context awareness framework is that Discover is still a single application which should know about which profiles it supports and directly import the code needed to support them. This is why profile registrations are all handled internally to the plugin instead of having a registration system exposed through the plugin contract. This approach comes with several main benefits: + +- There is a single, central place where all profile registrations happen, which is much easier to maintan versus scattered registrations. +- The Data Discovery team remains aware of which profiles exist and what changes are made. This is critical to ensure the Data Discovery team is able to provide adequate customer and SDH support for Discover. +- Common code and utilities can be easily shared across profiles since they need to be accessible to Discover by default, rather than being scattered throughout various plugin codebases. + +It also comes with an important drawback: **Discover cannot depend on other plugins (e.g. solution plugins) to import code for profiles due to the dependency graph issues it would create.** + +This means that in an ideal situation, the code for Discover profiles should either live directly within the Discover codebase, or within dedicated packages which Discover imports from: + +- When adding solution specific code directly to the Discover codebase, it should be done in an organized way in order to support shared ownership. For example, the [`profile_providers/security`](./profile_providers/security) folder contains code specific to Security Solution maintained profiles, and an override has been added to the [`CODEOWNERS`](/.github/CODEOWNERS) file to reflect the shared ownership of this folder. +- When creating a dedicated package for some profile code, the maintaining team can retain full ownership over the package, and Discover is only responsible for importing the functionality and adding it to the associated profile registration. + +There are situations where neither of the above two options are viable, such as when migrating large pieces of functionality from a solution plugin to a Discover profile, which could be time consuming and involve moving huge amounts of code to packages. For these situations, there's a [discover_shared](/src/plugins/discover_shared) plugin specifically to support inversion of control for Discover profile features (see the [`README`](/src/plugins/discover_shared/README.md) for more details). + +By ensuring all Discover profiles use the same IoC mechanism, changes or improvements to the system can be centralized, and areas that use it can easily be located. In general, this should be used as a last resort when the benefits of importing directly from packages aren't worth the effort to migrate the code, and ideally teams who use it should have a plan to later refactor the code into packages. + +## Registering a profile + +In order to register a Discover profile, follow these steps: + +1. Identify at which [context level](#context-levels) your profile should be implemented. +2. Create a subfolder for your profile provider within the [`profile_providers`](./profile_providers) folder. Common Discover providers should be created within the `profile_providers/common` subfolder, while solution specific providers should be created within a `profile_providers/{SOLUTION_TYPE}` subfolder, e.g. `profile_providers/security/security_root_profile`. +3. Create a `profile.ts(x)` file within your provider subfolder that exports a factory function which optionally accepts a `ProfileProviderServices` parameter and returns your provider implementation, e.g. `createSecurityRootProfileProvider(services: ProfileProviderServices) => RootProfileProvider`. +4. **If your provider is not ready for GA or should only be enabled for specific configurations, make sure to set the `isExperimental` flag to `true` in your profile provider.** This will ensure the profile is disabled by default, and can be enabled in `kibana.yml` like this: `discover.experimental.enabledProfiles: [{YOUR_PROFILE_ID}]`. +5. Call and return the result of your provider factory function from the corresponding factory function in [`register_profile_providers.ts`](./profile_providers/register_profile_providers.ts), e.g. `createRootProfileProviders`. The order of providers in the returned array determines the execution order during context resolution. + +Existing providers can be extended using the [`extendProfileProvider`](./profile_providers/extend_profile_provider.ts) utility, allowing multiple sub profiles to be composed from a shared parent profile. + +Example profile provider implementations are located in [`profile_providers/example`](./profile_providers/example). + +## Example implementation + +```ts +/** + * profile_providers/common/example_data_source_profile/profile.tsx + */ + +import React from 'react'; +import { getFieldValue } from '@kbn/discover-utils'; +import { isOfAggregateQueryType } from '@kbn/es-query'; +import { getIndexPatternFromESQLQuery } from '@kbn/esql-utils'; +import { DataSourceType, isDataSourceType } from '../../../../../common/data_sources'; +import { DataSourceCategory, DataSourceProfileProvider } from '../../../profiles'; +import { ProfileProviderServices } from '../../profile_provider_services'; + +// Export profile provider factory function, optionally accepting ProfileProviderServices, +// and returning a profile provider for a specific context level +export const createExampleDataSourceProfileProvider = ( + services: ProfileProviderServices +): DataSourceProfileProvider => ({ + // All profiles must have a unique ID + profileId: 'example-data-source-profile', + + // Set isExperimental flag to true if profile should be disabled by default + isExperimental: true, + + // The composable profile definition + profile: { + // Each available method maps to a Discover extension point + getCellRenderers: (prev) => () => ({ + // Calling prev() provides access to results from previous context levels, + // making it possible to compose a result from multiple profiles + ...prev(), + + // Extend the previous results with a cell renderer for the message field + message: (props) => { + const message = getFieldValue(props.row, 'message'); + return Custom message cell: {message}; + }, + }), + }, + + // The method responsible for context resolution, + // passed a params object with props specific to the context level, + // as well as providing access to higher level context objects + resolve: (params) => { + let indexPattern: string | undefined; + + // Extract the index pattern from the current ES|QL query or data view + if (isDataSourceType(params.dataSource, DataSourceType.Esql)) { + if (!isOfAggregateQueryType(params.query)) { + return { isMatch: false }; + } + + indexPattern = getIndexPatternFromESQLQuery(params.query.esql); + } else if (isDataSourceType(params.dataSource, DataSourceType.DataView) && params.dataView) { + indexPattern = params.dataView.getIndexPattern(); + } + + // If the profile is not a match, return isMatch: false in the result + if (indexPattern !== 'my-example-logs') { + return { isMatch: false }; + } + + // If the profile is a match, return isMatch: true in the result, + // plus a context object containing details of the current context + return { + isMatch: true, + context: { category: DataSourceCategory.Logs }, + }; + }, +}); + +/** + * profile_providers/register_profile_providers.ts + */ + +// Locate the factory function for the matching context level +const createDataSourceProfileProviders = (providerServices: ProfileProviderServices) => [ + // Call the profile provider factory function and return its result in the array + createExampleDataSourceProfileProvider(providerServices), + ...createLogsDataSourceProfileProviders(providerServices), +]; + +/** + * Navigate to Discover and execute the following ES|QL query + * to resolve the profile: `FROM my-example-logs` + */ +``` diff --git a/src/plugins/discover/public/context_awareness/composable_profile.ts b/src/plugins/discover/public/context_awareness/composable_profile.ts index f058d0949992d..84c8b6afca0b3 100644 --- a/src/plugins/discover/public/context_awareness/composable_profile.ts +++ b/src/plugins/discover/public/context_awareness/composable_profile.ts @@ -9,19 +9,36 @@ import type { Profile } from './types'; +/** + * A partial profile implementation + */ export type PartialProfile = Partial; +/** + * An accessor function that allows retrieving the extension point result from previous profiles + */ export type ComposableAccessor = (getPrevious: T) => T; +/** + * A partial profile implementation that supports composition across multiple profiles + */ export type ComposableProfile = { [TKey in keyof TProfile]?: ComposableAccessor; }; +/** + * Merges extension point implementations from multiple profiles into a single accessor function + * @param profiles The profiles to merge + * @param key The key of the extension point to merge + * @param baseImpl The base implementation for the extension point + * @returns The merged extension point accessor function + */ export const getMergedAccessor = ( profiles: ComposableProfile[], key: TKey, baseImpl: Profile[TKey] ) => { + // root, data source, and document profiles are merged in order return profiles.reduce((nextAccessor, profile) => { const currentAccessor = profile[key]; return currentAccessor ? currentAccessor(nextAccessor) : nextAccessor; diff --git a/src/plugins/discover/public/context_awareness/docs/architecture.png b/src/plugins/discover/public/context_awareness/docs/architecture.png new file mode 100644 index 0000000000000..082b5e9fb0154 Binary files /dev/null and b/src/plugins/discover/public/context_awareness/docs/architecture.png differ diff --git a/src/plugins/discover/public/context_awareness/docs/merged_accessors.png b/src/plugins/discover/public/context_awareness/docs/merged_accessors.png new file mode 100644 index 0000000000000..79d5b08610a4d Binary files /dev/null and b/src/plugins/discover/public/context_awareness/docs/merged_accessors.png differ diff --git a/src/plugins/discover/public/context_awareness/hooks/use_additional_cell_actions.ts b/src/plugins/discover/public/context_awareness/hooks/use_additional_cell_actions.ts index fbd87511e186b..e2f1a62cafdbb 100644 --- a/src/plugins/discover/public/context_awareness/hooks/use_additional_cell_actions.ts +++ b/src/plugins/discover/public/context_awareness/hooks/use_additional_cell_actions.ts @@ -23,6 +23,11 @@ import { useProfileAccessor } from './use_profile_accessor'; export const DISCOVER_CELL_ACTION_TYPE = 'discover-cellAction-type'; +/** + * Hook to register additional cell actions based on the resolved profiles + * @param options Additional cell action options + * @returns The current cell actions metadata + */ export const useAdditionalCellActions = ({ dataSource, dataView, diff --git a/src/plugins/discover/public/context_awareness/hooks/use_profile_accessor.ts b/src/plugins/discover/public/context_awareness/hooks/use_profile_accessor.ts index e09f5f54b05e5..e8fe6db600521 100644 --- a/src/plugins/discover/public/context_awareness/hooks/use_profile_accessor.ts +++ b/src/plugins/discover/public/context_awareness/hooks/use_profile_accessor.ts @@ -13,6 +13,12 @@ import type { GetProfilesOptions } from '../profiles_manager'; import { useProfiles } from './use_profiles'; import type { Profile } from '../types'; +/** + * Hook to retrieve an extension point accessor based on the resolved profiles + * @param key The key of the extension point + * @param options Options to get the resolved profiles + * @returns The resolved accessor function + */ export const useProfileAccessor = ( key: TKey, options: GetProfilesOptions = {} diff --git a/src/plugins/discover/public/context_awareness/hooks/use_profiles.ts b/src/plugins/discover/public/context_awareness/hooks/use_profiles.ts index e6b30d6267985..1b2d4fbd52f33 100644 --- a/src/plugins/discover/public/context_awareness/hooks/use_profiles.ts +++ b/src/plugins/discover/public/context_awareness/hooks/use_profiles.ts @@ -11,6 +11,11 @@ import { useEffect, useMemo, useState } from 'react'; import { useDiscoverServices } from '../../hooks/use_discover_services'; import type { GetProfilesOptions } from '../profiles_manager'; +/** + * Hook to retreive the resolved profiles + * @param options Profiles options + * @returns The resolved profiles + */ export const useProfiles = ({ record }: GetProfilesOptions = {}) => { const { profilesManager } = useDiscoverServices(); const [profiles, setProfiles] = useState(() => profilesManager.getProfiles({ record })); diff --git a/src/plugins/discover/public/context_awareness/hooks/use_root_profile.ts b/src/plugins/discover/public/context_awareness/hooks/use_root_profile.ts index b0d355fbba23a..2ffccc6d786b2 100644 --- a/src/plugins/discover/public/context_awareness/hooks/use_root_profile.ts +++ b/src/plugins/discover/public/context_awareness/hooks/use_root_profile.ts @@ -10,6 +10,11 @@ import { useEffect, useState } from 'react'; import { useDiscoverServices } from '../../hooks/use_discover_services'; +/** + * Hook to trigger and wait for root profile resolution + * @param options Options object + * @returns If the root profile is loading + */ export const useRootProfile = ({ solutionNavId }: { solutionNavId: string | null }) => { const { profilesManager } = useDiscoverServices(); const [rootProfileLoading, setRootProfileLoading] = useState(true); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/accessors/get_doc_viewer.tsx b/src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/accessors/get_doc_viewer.tsx similarity index 94% rename from src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/accessors/get_doc_viewer.tsx rename to src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/accessors/get_doc_viewer.tsx index dd851725bf748..1d433b5272d7b 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/accessors/get_doc_viewer.tsx +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/accessors/get_doc_viewer.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { UnifiedDocViewerLogsOverview } from '@kbn/unified-doc-viewer-plugin/public'; import React from 'react'; -import type { DocumentProfileProvider } from '../../../profiles'; +import type { DocumentProfileProvider } from '../../../../profiles'; export const getDocViewer: DocumentProfileProvider['profile']['getDocViewer'] = (prev) => (params) => { diff --git a/src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/accessors/index.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/accessors/index.ts similarity index 100% rename from src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/accessors/index.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/accessors/index.ts diff --git a/src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/index.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/index.ts similarity index 100% rename from src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/index.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/index.ts diff --git a/src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/profile.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/profile.test.ts similarity index 97% rename from src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/profile.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/profile.test.ts index b6432bca6e4c9..87c5ac137380e 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/profile.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/profile.test.ts @@ -15,8 +15,8 @@ import { DocumentType, RootContext, SolutionType, -} from '../../profiles'; -import { createContextAwarenessMocks } from '../../__mocks__'; +} from '../../../profiles'; +import { createContextAwarenessMocks } from '../../../__mocks__'; import { createLogDocumentProfileProvider } from './profile'; const mockServices = createContextAwarenessMocks().profileProviderServices; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/profile.tsx b/src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/profile.tsx similarity index 92% rename from src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/profile.tsx rename to src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/profile.tsx index 564aaf3a3410c..5ff4857b5bf75 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/log_document_profile/profile.tsx +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/log_document_profile/profile.tsx @@ -8,8 +8,8 @@ */ import { DataTableRecord } from '@kbn/discover-utils'; -import { DocumentProfileProvider, DocumentType } from '../../profiles'; -import { ProfileProviderServices } from '../profile_provider_services'; +import { DocumentProfileProvider, DocumentType } from '../../../profiles'; +import { ProfileProviderServices } from '../../profile_provider_services'; import { getDocViewer } from './accessors'; export const createLogDocumentProfileProvider = ( diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_cell_renderers.tsx b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_cell_renderers.tsx similarity index 57% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_cell_renderers.tsx rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_cell_renderers.tsx index 433e9cde27219..69a2009f0a4af 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_cell_renderers.tsx +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_cell_renderers.tsx @@ -7,9 +7,13 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { LOG_LEVEL_FIELDS } from '../../../../../common/data_types/logs/constants'; -import { getLogLevelBadgeCell } from '../../../../components/data_types/logs/log_level_badge_cell'; -import type { DataSourceProfileProvider } from '../../../profiles'; +import { + LOG_LEVEL_FIELDS, + SERVICE_NAME_FIELDS, +} from '../../../../../../common/data_types/logs/constants'; +import { getLogLevelBadgeCell } from '../../../../../components/data_types/logs/log_level_badge_cell'; +import { getServiceNameCell } from '../../../../../components/data_types/logs/service_name_cell'; +import { DataSourceProfileProvider } from '../../../../profiles'; export const getCellRenderers: DataSourceProfileProvider['profile']['getCellRenderers'] = (prev) => () => ({ @@ -22,4 +26,12 @@ export const getCellRenderers: DataSourceProfileProvider['profile']['getCellRend }), {} ), + ...SERVICE_NAME_FIELDS.reduce( + (acc, field) => ({ + ...acc, + [field]: getServiceNameCell(field), + [`${field}.keyword`]: getServiceNameCell(`${field}.keyword`), + }), + {} + ), }); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_default_app_state.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_default_app_state.ts similarity index 88% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_default_app_state.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_default_app_state.ts index f14e962969544..d9c08af91f5d8 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_default_app_state.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_default_app_state.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import type { DataSourceProfileProvider } from '../../../profiles'; -import { DefaultAppStateColumn } from '../../../types'; +import type { DataSourceProfileProvider } from '../../../../profiles'; +import { DefaultAppStateColumn } from '../../../../types'; export const createGetDefaultAppState = ({ defaultColumns, diff --git a/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_row_additional_leading_controls.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_row_additional_leading_controls.ts new file mode 100644 index 0000000000000..c13b474f05b70 --- /dev/null +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_row_additional_leading_controls.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import { createDegradedDocsControl, createStacktraceControl } from '@kbn/discover-utils'; +import { retrieveMetadataColumns } from '@kbn/esql-utils'; +import { AggregateQuery, isOfAggregateQueryType } from '@kbn/es-query'; +import type { DataSourceProfileProvider } from '../../../../profiles'; + +export const getRowAdditionalLeadingControls: DataSourceProfileProvider['profile']['getRowAdditionalLeadingControls'] = + (prev) => (params) => { + const additionalControls = prev(params) || []; + const { query } = params; + + const isDegradedDocsControlEnabled = isOfAggregateQueryType(query) + ? queryContainsMetadataIgnored(query) + : true; + + return [ + ...additionalControls, + createDegradedDocsControl({ enabled: isDegradedDocsControlEnabled }), + createStacktraceControl(), + ]; + }; + +const queryContainsMetadataIgnored = (query: AggregateQuery) => + retrieveMetadataColumns(query.esql).includes('_ignored'); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_row_indicator_provider.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_row_indicator_provider.ts similarity index 91% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_row_indicator_provider.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_row_indicator_provider.ts index 79dc6003c6453..2a76ebc59a27a 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/get_row_indicator_provider.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/get_row_indicator_provider.ts @@ -13,8 +13,8 @@ import { getLogLevelColor, } from '@kbn/discover-utils'; import type { UnifiedDataTableProps } from '@kbn/unified-data-table'; -import { LOG_LEVEL_FIELDS } from '../../../../../common/data_types/logs/constants'; -import type { DataSourceProfileProvider } from '../../../profiles'; +import { LOG_LEVEL_FIELDS } from '../../../../../../common/data_types/logs/constants'; +import type { DataSourceProfileProvider } from '../../../../profiles'; export const getRowIndicatorProvider: DataSourceProfileProvider['profile']['getRowIndicatorProvider'] = diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/index.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/index.ts similarity index 88% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/index.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/index.ts index 2de55b06e4a68..720a1add3c926 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/accessors/index.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/accessors/index.ts @@ -10,3 +10,4 @@ export { getRowIndicatorProvider } from './get_row_indicator_provider'; export { createGetDefaultAppState } from './get_default_app_state'; export { getCellRenderers } from './get_cell_renderers'; +export { getRowAdditionalLeadingControls } from './get_row_additional_leading_controls'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/consts.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/consts.ts similarity index 93% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/consts.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/consts.ts index 209b37059ab00..6020eaf6fae27 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/consts.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/consts.ts @@ -7,7 +7,7 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import type { DefaultAppStateColumn } from '../../types'; +import type { DefaultAppStateColumn } from '../../../types'; export const LOG_LEVEL_COLUMN: DefaultAppStateColumn = { name: 'log.level', width: 150 }; export const MESSAGE_COLUMN: DefaultAppStateColumn = { name: 'message' }; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/create_profile_providers.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/create_profile_providers.ts similarity index 95% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/create_profile_providers.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/create_profile_providers.ts index 34991d7304164..57edf87e81150 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/create_profile_providers.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/create_profile_providers.ts @@ -7,7 +7,7 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import type { ProfileProviderServices } from '../profile_provider_services'; +import type { ProfileProviderServices } from '../../profile_provider_services'; import { createLogsDataSourceProfileProvider } from './profile'; import { createApacheErrorLogsDataSourceProfileProvider, diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/index.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/index.ts similarity index 100% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/index.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/index.ts diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/profile.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/profile.test.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/profile.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/profile.test.ts index fddc72178c0a8..0240736000c66 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/profile.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/profile.test.ts @@ -10,9 +10,9 @@ import { buildDataTableRecord } from '@kbn/discover-utils'; import type { EuiThemeComputed } from '@elastic/eui'; import { createStubIndexPattern } from '@kbn/data-views-plugin/common/data_view.stub'; -import { createDataViewDataSource, createEsqlDataSource } from '../../../../common/data_sources'; -import { DataSourceCategory, RootContext, SolutionType } from '../../profiles'; -import { createContextAwarenessMocks } from '../../__mocks__'; +import { createDataViewDataSource, createEsqlDataSource } from '../../../../../common/data_sources'; +import { DataSourceCategory, RootContext, SolutionType } from '../../../profiles'; +import { createContextAwarenessMocks } from '../../../__mocks__'; import { createLogsDataSourceProfileProvider } from './profile'; const mockServices = createContextAwarenessMocks().profileProviderServices; @@ -160,4 +160,18 @@ describe('logsDataSourceProfileProvider', () => { expect(cellRenderers?.['log_level.keyword']).toBeDefined(); }); }); + + describe('getRowAdditionalLeadingControls', () => { + it('should return the passed additional controls', () => { + const getRowAdditionalLeadingControls = + logsDataSourceProfileProvider.profile.getRowAdditionalLeadingControls?.(() => undefined); + const rowAdditionalLeadingControls = getRowAdditionalLeadingControls?.({ + dataView: dataViewWithLogLevel, + }); + + expect(rowAdditionalLeadingControls).toHaveLength(2); + expect(rowAdditionalLeadingControls?.[0].id).toBe('connectedDegradedDocs'); + expect(rowAdditionalLeadingControls?.[1].id).toBe('connectedStacktraceDocs'); + }); + }); }); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/profile.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/profile.ts similarity index 76% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/profile.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/profile.ts index d548aaa3db98c..7b9d5ef3e5961 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/profile.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/profile.ts @@ -7,11 +7,14 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { DataSourceCategory, DataSourceProfileProvider } from '../../profiles'; -import { ProfileProviderServices } from '../profile_provider_services'; -import { getRowIndicatorProvider } from './accessors'; -import { extractIndexPatternFrom } from '../extract_index_pattern_from'; -import { getCellRenderers } from './accessors'; +import { DataSourceCategory, DataSourceProfileProvider } from '../../../profiles'; +import { ProfileProviderServices } from '../../profile_provider_services'; +import { + getCellRenderers, + getRowIndicatorProvider, + getRowAdditionalLeadingControls, +} from './accessors'; +import { extractIndexPatternFrom } from '../../extract_index_pattern_from'; export const createLogsDataSourceProfileProvider = ( services: ProfileProviderServices @@ -20,6 +23,7 @@ export const createLogsDataSourceProfileProvider = ( profile: { getRowIndicatorProvider, getCellRenderers, + getRowAdditionalLeadingControls, }, resolve: (params) => { const indexPattern = extractIndexPatternFrom(params); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/apache_error_logs.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/apache_error_logs.test.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/apache_error_logs.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/apache_error_logs.test.ts index 1674cab3fff19..9b3e64e520be3 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/apache_error_logs.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/apache_error_logs.test.ts @@ -7,10 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield'; -import { createEsqlDataSource } from '../../../../../common/data_sources'; -import { DataSourceCategory, RootContext, SolutionType } from '../../../profiles'; -import { createContextAwarenessMocks } from '../../../__mocks__'; +import { dataViewWithTimefieldMock } from '../../../../../__mocks__/data_view_with_timefield'; +import { createEsqlDataSource } from '../../../../../../common/data_sources'; +import { DataSourceCategory, RootContext, SolutionType } from '../../../../profiles'; +import { createContextAwarenessMocks } from '../../../../__mocks__'; import { createLogsDataSourceProfileProvider } from '../profile'; import { createApacheErrorLogsDataSourceProfileProvider } from './apache_error_logs'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/apache_error_logs.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/apache_error_logs.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/apache_error_logs.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/apache_error_logs.ts index f83e3169fee6d..15e8dbc0cc991 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/apache_error_logs.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/apache_error_logs.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { DataSourceProfileProvider } from '../../../profiles'; -import { extendProfileProvider } from '../../extend_profile_provider'; +import { DataSourceProfileProvider } from '../../../../profiles'; +import { extendProfileProvider } from '../../../extend_profile_provider'; import { createGetDefaultAppState } from '../accessors'; import { CLIENT_IP_COLUMN, LOG_LEVEL_COLUMN, MESSAGE_COLUMN } from '../consts'; import { createResolve } from './create_resolve'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/aws_s3access_logs.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/aws_s3access_logs.test.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/aws_s3access_logs.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/aws_s3access_logs.test.ts index 8897124433c14..fc97e67b1bee7 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/aws_s3access_logs.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/aws_s3access_logs.test.ts @@ -7,10 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield'; -import { createEsqlDataSource } from '../../../../../common/data_sources'; -import { DataSourceCategory, RootContext, SolutionType } from '../../../profiles'; -import { createContextAwarenessMocks } from '../../../__mocks__'; +import { dataViewWithTimefieldMock } from '../../../../../__mocks__/data_view_with_timefield'; +import { createEsqlDataSource } from '../../../../../../common/data_sources'; +import { DataSourceCategory, RootContext, SolutionType } from '../../../../profiles'; +import { createContextAwarenessMocks } from '../../../../__mocks__'; import { createLogsDataSourceProfileProvider } from '../profile'; import { createAwsS3accessLogsDataSourceProfileProvider } from './aws_s3access_logs'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/aws_s3access_logs.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/aws_s3access_logs.ts similarity index 90% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/aws_s3access_logs.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/aws_s3access_logs.ts index 4e226cb44ec81..e068c2de16173 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/aws_s3access_logs.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/aws_s3access_logs.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { DataSourceProfileProvider } from '../../../profiles'; -import { extendProfileProvider } from '../../extend_profile_provider'; +import { DataSourceProfileProvider } from '../../../../profiles'; +import { extendProfileProvider } from '../../../extend_profile_provider'; import { createGetDefaultAppState } from '../accessors'; import { CLIENT_IP_COLUMN, MESSAGE_COLUMN } from '../consts'; import { createResolve } from './create_resolve'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/create_resolve.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/create_resolve.ts similarity index 91% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/create_resolve.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/create_resolve.ts index aede1907f2975..75598e0d96c74 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/create_resolve.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/create_resolve.ts @@ -8,8 +8,8 @@ */ import { createRegExpPatternFrom, testPatternAgainstAllowedList } from '@kbn/data-view-utils'; -import { DataSourceCategory, DataSourceProfileProvider } from '../../../profiles'; -import { extractIndexPatternFrom } from '../../extract_index_pattern_from'; +import { DataSourceCategory, DataSourceProfileProvider } from '../../../../profiles'; +import { extractIndexPatternFrom } from '../../../extract_index_pattern_from'; export const createResolve = (baseIndexPattern: string): DataSourceProfileProvider['resolve'] => { const testIndexPattern = testPatternAgainstAllowedList([ diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/index.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/index.ts similarity index 100% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/index.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/index.ts diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/kubernetes_container_logs.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/kubernetes_container_logs.test.ts similarity index 90% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/kubernetes_container_logs.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/kubernetes_container_logs.test.ts index 954e724e8f739..301ef9ca52a86 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/kubernetes_container_logs.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/kubernetes_container_logs.test.ts @@ -7,10 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield'; -import { createEsqlDataSource } from '../../../../../common/data_sources'; -import { DataSourceCategory, RootContext, SolutionType } from '../../../profiles'; -import { createContextAwarenessMocks } from '../../../__mocks__'; +import { dataViewWithTimefieldMock } from '../../../../../__mocks__/data_view_with_timefield'; +import { createEsqlDataSource } from '../../../../../../common/data_sources'; +import { DataSourceCategory, RootContext, SolutionType } from '../../../../profiles'; +import { createContextAwarenessMocks } from '../../../../__mocks__'; import { createLogsDataSourceProfileProvider } from '../profile'; import { createKubernetesContainerLogsDataSourceProfileProvider } from './kubernetes_container_logs'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/kubernetes_container_logs.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/kubernetes_container_logs.ts similarity index 90% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/kubernetes_container_logs.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/kubernetes_container_logs.ts index 6b5da24992b98..3f6540ace614d 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/kubernetes_container_logs.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/kubernetes_container_logs.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { DataSourceProfileProvider } from '../../../profiles'; -import { extendProfileProvider } from '../../extend_profile_provider'; +import { DataSourceProfileProvider } from '../../../../profiles'; +import { extendProfileProvider } from '../../../extend_profile_provider'; import { createGetDefaultAppState } from '../accessors'; import { LOG_LEVEL_COLUMN, MESSAGE_COLUMN } from '../consts'; import { createResolve } from './create_resolve'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_access_logs.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_access_logs.test.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_access_logs.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_access_logs.test.ts index 172371418b95f..0265c17152177 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_access_logs.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_access_logs.test.ts @@ -7,10 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield'; -import { createEsqlDataSource } from '../../../../../common/data_sources'; -import { DataSourceCategory, RootContext, SolutionType } from '../../../profiles'; -import { createContextAwarenessMocks } from '../../../__mocks__'; +import { dataViewWithTimefieldMock } from '../../../../../__mocks__/data_view_with_timefield'; +import { createEsqlDataSource } from '../../../../../../common/data_sources'; +import { DataSourceCategory, RootContext, SolutionType } from '../../../../profiles'; +import { createContextAwarenessMocks } from '../../../../__mocks__'; import { createLogsDataSourceProfileProvider } from '../profile'; import { createNginxAccessLogsDataSourceProfileProvider } from './nginx_access_logs'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_access_logs.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_access_logs.ts similarity index 90% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_access_logs.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_access_logs.ts index ffd98f31c453f..8d7af45d6b24c 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_access_logs.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_access_logs.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { DataSourceProfileProvider } from '../../../profiles'; -import { extendProfileProvider } from '../../extend_profile_provider'; +import { DataSourceProfileProvider } from '../../../../profiles'; +import { extendProfileProvider } from '../../../extend_profile_provider'; import { createGetDefaultAppState } from '../accessors'; import { CLIENT_IP_COLUMN, HOST_NAME_COLUMN, MESSAGE_COLUMN } from '../consts'; import { createResolve } from './create_resolve'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_error_logs.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_error_logs.test.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_error_logs.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_error_logs.test.ts index 7908c5e680ce5..7ce8e49337a51 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_error_logs.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_error_logs.test.ts @@ -7,10 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield'; -import { createEsqlDataSource } from '../../../../../common/data_sources'; -import { DataSourceCategory, RootContext, SolutionType } from '../../../profiles'; -import { createContextAwarenessMocks } from '../../../__mocks__'; +import { dataViewWithTimefieldMock } from '../../../../../__mocks__/data_view_with_timefield'; +import { createEsqlDataSource } from '../../../../../../common/data_sources'; +import { DataSourceCategory, RootContext, SolutionType } from '../../../../profiles'; +import { createContextAwarenessMocks } from '../../../../__mocks__'; import { createLogsDataSourceProfileProvider } from '../profile'; import { createNginxErrorLogsDataSourceProfileProvider } from './nginx_error_logs'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_error_logs.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_error_logs.ts similarity index 88% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_error_logs.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_error_logs.ts index 71a2b395b7478..b6a05cce4ecb7 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/nginx_error_logs.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/nginx_error_logs.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { DataSourceProfileProvider } from '../../../profiles'; -import { extendProfileProvider } from '../../extend_profile_provider'; +import { DataSourceProfileProvider } from '../../../../profiles'; +import { extendProfileProvider } from '../../../extend_profile_provider'; import { createGetDefaultAppState } from '../accessors'; import { LOG_LEVEL_COLUMN, MESSAGE_COLUMN } from '../consts'; import { createResolve } from './create_resolve'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/system_logs.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/system_logs.test.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/system_logs.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/system_logs.test.ts index 4c3a1e93edf80..760546b89bc51 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/system_logs.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/system_logs.test.ts @@ -7,10 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield'; -import { createEsqlDataSource } from '../../../../../common/data_sources'; -import { DataSourceCategory, RootContext, SolutionType } from '../../../profiles'; -import { createContextAwarenessMocks } from '../../../__mocks__'; +import { dataViewWithTimefieldMock } from '../../../../../__mocks__/data_view_with_timefield'; +import { createEsqlDataSource } from '../../../../../../common/data_sources'; +import { DataSourceCategory, RootContext, SolutionType } from '../../../../profiles'; +import { createContextAwarenessMocks } from '../../../../__mocks__'; import { createLogsDataSourceProfileProvider } from '../profile'; import { createSystemLogsDataSourceProfileProvider } from './system_logs'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/system_logs.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/system_logs.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/system_logs.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/system_logs.ts index 46fffa6879bfb..023cb578221fb 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/system_logs.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/system_logs.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { DataSourceProfileProvider } from '../../../profiles'; -import { extendProfileProvider } from '../../extend_profile_provider'; +import { DataSourceProfileProvider } from '../../../../profiles'; +import { extendProfileProvider } from '../../../extend_profile_provider'; import { createGetDefaultAppState } from '../accessors'; import { HOST_NAME_COLUMN, LOG_LEVEL_COLUMN, MESSAGE_COLUMN } from '../consts'; import { createResolve } from './create_resolve'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/windows_logs.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/windows_logs.test.ts similarity index 89% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/windows_logs.test.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/windows_logs.test.ts index c132620b8743d..ce144b9167646 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/windows_logs.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/windows_logs.test.ts @@ -7,10 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { dataViewWithTimefieldMock } from '../../../../__mocks__/data_view_with_timefield'; -import { createEsqlDataSource } from '../../../../../common/data_sources'; -import { DataSourceCategory, RootContext, SolutionType } from '../../../profiles'; -import { createContextAwarenessMocks } from '../../../__mocks__'; +import { dataViewWithTimefieldMock } from '../../../../../__mocks__/data_view_with_timefield'; +import { createEsqlDataSource } from '../../../../../../common/data_sources'; +import { DataSourceCategory, RootContext, SolutionType } from '../../../../profiles'; +import { createContextAwarenessMocks } from '../../../../__mocks__'; import { createLogsDataSourceProfileProvider } from '../profile'; import { createWindowsLogsDataSourceProfileProvider } from './windows_logs'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/windows_logs.ts b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/windows_logs.ts similarity index 88% rename from src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/windows_logs.ts rename to src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/windows_logs.ts index c54c56eabbfd8..084233783341e 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/logs_data_source_profile/sub_profiles/windows_logs.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/common/logs_data_source_profile/sub_profiles/windows_logs.ts @@ -7,8 +7,8 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { DataSourceProfileProvider } from '../../../profiles'; -import { extendProfileProvider } from '../../extend_profile_provider'; +import { DataSourceProfileProvider } from '../../../../profiles'; +import { extendProfileProvider } from '../../../extend_profile_provider'; import { createGetDefaultAppState } from '../accessors'; import { HOST_NAME_COLUMN, LOG_LEVEL_COLUMN, MESSAGE_COLUMN } from '../consts'; import { createResolve } from './create_resolve'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/example_document_profile/index.ts b/src/plugins/discover/public/context_awareness/profile_providers/example/example_data_source_profile/index.ts similarity index 87% rename from src/plugins/discover/public/context_awareness/profile_providers/example_document_profile/index.ts rename to src/plugins/discover/public/context_awareness/profile_providers/example/example_data_source_profile/index.ts index 295596a621393..03d5412fb6692 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/example_document_profile/index.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/example/example_data_source_profile/index.ts @@ -7,4 +7,4 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -export { exampleDocumentProfileProvider } from './profile'; +export { createExampleDataSourceProfileProvider } from './profile'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/example_data_source_profile/profile.tsx b/src/plugins/discover/public/context_awareness/profile_providers/example/example_data_source_profile/profile.tsx similarity index 93% rename from src/plugins/discover/public/context_awareness/profile_providers/example_data_source_profile/profile.tsx rename to src/plugins/discover/public/context_awareness/profile_providers/example/example_data_source_profile/profile.tsx index 4b304ed2bb479..ae1d29170c852 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/example_data_source_profile/profile.tsx +++ b/src/plugins/discover/public/context_awareness/profile_providers/example/example_data_source_profile/profile.tsx @@ -8,17 +8,16 @@ */ import { EuiBadge } from '@elastic/eui'; -import { getFieldValue } from '@kbn/discover-utils'; -import type { RowControlColumn } from '@kbn/unified-data-table'; +import { getFieldValue, RowControlColumn } from '@kbn/discover-utils'; import { isOfAggregateQueryType } from '@kbn/es-query'; import { getIndexPatternFromESQLQuery } from '@kbn/esql-utils'; import { euiThemeVars } from '@kbn/ui-theme'; import { capitalize } from 'lodash'; import React from 'react'; -import { DataSourceType, isDataSourceType } from '../../../../common/data_sources'; -import { DataSourceCategory, DataSourceProfileProvider } from '../../profiles'; +import { DataSourceType, isDataSourceType } from '../../../../../common/data_sources'; +import { DataSourceCategory, DataSourceProfileProvider } from '../../../profiles'; -export const exampleDataSourceProfileProvider: DataSourceProfileProvider = { +export const createExampleDataSourceProfileProvider = (): DataSourceProfileProvider => ({ profileId: 'example-data-source-profile', isExperimental: true, profile: { @@ -88,6 +87,7 @@ export const exampleDataSourceProfileProvider: DataSourceProfileProvider = { { alert(`Example "${iconType}" control clicked. Row index: ${rowProps.rowIndex}`); @@ -159,4 +159,4 @@ export const exampleDataSourceProfileProvider: DataSourceProfileProvider = { context: { category: DataSourceCategory.Logs }, }; }, -}; +}); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/example_root_pofile/index.ts b/src/plugins/discover/public/context_awareness/profile_providers/example/example_document_profile/index.ts similarity index 87% rename from src/plugins/discover/public/context_awareness/profile_providers/example_root_pofile/index.ts rename to src/plugins/discover/public/context_awareness/profile_providers/example/example_document_profile/index.ts index 094b6c4509d46..cd27c9abe55f7 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/example_root_pofile/index.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/example/example_document_profile/index.ts @@ -7,4 +7,4 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -export { exampleRootProfileProvider } from './profile'; +export { createExampleDocumentProfileProvider } from './profile'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/example_document_profile/profile.ts b/src/plugins/discover/public/context_awareness/profile_providers/example/example_document_profile/profile.ts similarity index 83% rename from src/plugins/discover/public/context_awareness/profile_providers/example_document_profile/profile.ts rename to src/plugins/discover/public/context_awareness/profile_providers/example/example_document_profile/profile.ts index 848b9e4af0cdd..949eb0400c5d8 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/example_document_profile/profile.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/example/example_document_profile/profile.ts @@ -8,9 +8,9 @@ */ import { getFieldValue } from '@kbn/discover-utils'; -import { DocumentProfileProvider, DocumentType } from '../../profiles'; +import { DocumentProfileProvider, DocumentType } from '../../../profiles'; -export const exampleDocumentProfileProvider: DocumentProfileProvider = { +export const createExampleDocumentProfileProvider = (): DocumentProfileProvider => ({ profileId: 'example-document-profile', isExperimental: true, profile: {}, @@ -26,4 +26,4 @@ export const exampleDocumentProfileProvider: DocumentProfileProvider = { }, }; }, -}; +}); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/example_data_source_profile/index.ts b/src/plugins/discover/public/context_awareness/profile_providers/example/example_root_pofile/index.ts similarity index 88% rename from src/plugins/discover/public/context_awareness/profile_providers/example_data_source_profile/index.ts rename to src/plugins/discover/public/context_awareness/profile_providers/example/example_root_pofile/index.ts index 9c60e7f55d0d4..0c13a49d17d7a 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/example_data_source_profile/index.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/example/example_root_pofile/index.ts @@ -7,4 +7,4 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -export { exampleDataSourceProfileProvider } from './profile'; +export { createExampleRootProfileProvider } from './profile'; diff --git a/src/plugins/discover/public/context_awareness/profile_providers/example_root_pofile/profile.tsx b/src/plugins/discover/public/context_awareness/profile_providers/example/example_root_pofile/profile.tsx similarity index 76% rename from src/plugins/discover/public/context_awareness/profile_providers/example_root_pofile/profile.tsx rename to src/plugins/discover/public/context_awareness/profile_providers/example/example_root_pofile/profile.tsx index f6f5e298974b2..ad247eacee666 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/example_root_pofile/profile.tsx +++ b/src/plugins/discover/public/context_awareness/profile_providers/example/example_root_pofile/profile.tsx @@ -8,11 +8,11 @@ */ import { EuiBadge } from '@elastic/eui'; -import type { DataTableRecord } from '@kbn/discover-utils'; +import { getFieldValue } from '@kbn/discover-utils'; import React from 'react'; -import { RootProfileProvider, SolutionType } from '../../profiles'; +import { RootProfileProvider, SolutionType } from '../../../profiles'; -export const exampleRootProfileProvider: RootProfileProvider = { +export const createExampleRootProfileProvider = (): RootProfileProvider => ({ profileId: 'example-root-profile', isExperimental: true, profile: { @@ -36,9 +36,4 @@ export const exampleRootProfileProvider: RootProfileProvider = { return { isMatch: true, context: { solutionType: SolutionType.Default } }; }, -}; - -const getFieldValue = (record: DataTableRecord, field: string) => { - const value = record.flattened[field]; - return Array.isArray(value) ? value[0] : value; -}; +}); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/extend_profile_provider.ts b/src/plugins/discover/public/context_awareness/profile_providers/extend_profile_provider.ts index 3abae6899d03e..9382101464ec7 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/extend_profile_provider.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/extend_profile_provider.ts @@ -9,6 +9,12 @@ import type { BaseProfileProvider } from '../profile_service'; +/** + * Extends a base profile provider with additional properties and profile methods + * @param baseProvider The base profile provider + * @param extension The extension to apply to the base profile provider + * @returns The extended profile provider + */ export const extendProfileProvider = >( baseProvider: TProvider, extension: Partial & Pick diff --git a/src/plugins/discover/public/context_awareness/profile_providers/extract_index_pattern_from.ts b/src/plugins/discover/public/context_awareness/profile_providers/extract_index_pattern_from.ts index c40895dcea8b6..aa754a228569b 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/extract_index_pattern_from.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/extract_index_pattern_from.ts @@ -12,6 +12,11 @@ import { getIndexPatternFromESQLQuery } from '@kbn/esql-utils'; import { isDataViewSource, isEsqlSource } from '../../../common/data_sources'; import type { DataSourceProfileProviderParams } from '../profiles'; +/** + * Extracts the index pattern from the given ES|QL query or data view + * @param options Options object + * @returns The extracted index pattern or null + */ export const extractIndexPatternFrom = ({ dataSource, dataView, diff --git a/src/plugins/discover/public/context_awareness/profile_providers/profile_provider_services.ts b/src/plugins/discover/public/context_awareness/profile_providers/profile_provider_services.ts index d4929337b16a0..7abca8d6d8520 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/profile_provider_services.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/profile_provider_services.ts @@ -9,16 +9,30 @@ import { createLogsContextService, LogsContextService } from '@kbn/discover-utils'; +/** + * Dependencies required by profile provider implementations + */ // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface ProfileProviderDeps { // We will probably soon add uiSettings as a dependency // to consume user configured indices } +/** + * Services provided to profile provider implementations + */ export interface ProfileProviderServices { + /** + * A service containing methods used for logs profiles + */ logsContextService: LogsContextService; } +/** + * Creates the profile provider services + * @param _deps Profile provider dependencies + * @returns Profile provider services + */ export const createProfileProviderServices = ( _deps: ProfileProviderDeps = {} ): ProfileProviderServices => { diff --git a/src/plugins/discover/public/context_awareness/profile_providers/register_profile_providers.test.ts b/src/plugins/discover/public/context_awareness/profile_providers/register_profile_providers.test.ts index 0b3ce53c53c86..6b0c22a3d0d08 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/register_profile_providers.test.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/register_profile_providers.test.ts @@ -9,14 +9,19 @@ import { createEsqlDataSource } from '../../../common/data_sources'; import { createContextAwarenessMocks } from '../__mocks__'; -import { exampleDataSourceProfileProvider } from './example_data_source_profile'; -import { exampleDocumentProfileProvider } from './example_document_profile'; -import { exampleRootProfileProvider } from './example_root_pofile'; +import { createExampleRootProfileProvider } from './example/example_root_pofile'; +import { createExampleDataSourceProfileProvider } from './example/example_data_source_profile/profile'; +import { createExampleDocumentProfileProvider } from './example/example_document_profile'; + import { registerProfileProviders, registerEnabledProfileProviders, } from './register_profile_providers'; +const exampleRootProfileProvider = createExampleRootProfileProvider(); +const exampleDataSourceProfileProvider = createExampleDataSourceProfileProvider(); +const exampleDocumentProfileProvider = createExampleDocumentProfileProvider(); + describe('registerEnabledProfileProviders', () => { it('should register all profile providers', async () => { const { rootProfileServiceMock, rootProfileProviderMock } = createContextAwarenessMocks({ @@ -93,13 +98,9 @@ describe('registerProfileProviders', () => { raw: {}, }, }); - expect(rootProfileServiceMock.getProfile(rootContext)).toBe(exampleRootProfileProvider.profile); - expect(dataSourceProfileServiceMock.getProfile(dataSourceContext)).toBe( - exampleDataSourceProfileProvider.profile - ); - expect(documentProfileServiceMock.getProfile(documentContext)).toBe( - exampleDocumentProfileProvider.profile - ); + expect(rootContext.profileId).toBe(exampleRootProfileProvider.profileId); + expect(dataSourceContext.profileId).toBe(exampleDataSourceProfileProvider.profileId); + expect(documentContext.profileId).toBe(exampleDocumentProfileProvider.profileId); }); it('should not register disabled experimental profile providers', async () => { @@ -128,14 +129,8 @@ describe('registerProfileProviders', () => { raw: {}, }, }); - expect(rootProfileServiceMock.getProfile(rootContext)).not.toBe( - exampleRootProfileProvider.profile - ); - expect(dataSourceProfileServiceMock.getProfile(dataSourceContext)).not.toBe( - exampleDataSourceProfileProvider.profile - ); - expect(documentProfileServiceMock.getProfile(documentContext)).not.toBe( - exampleDocumentProfileProvider.profile - ); + expect(rootContext.profileId).not.toBe(exampleRootProfileProvider.profileId); + expect(dataSourceContext.profileId).not.toBe(exampleDataSourceProfileProvider.profileId); + expect(documentContext.profileId).not.toBe(exampleDocumentProfileProvider.profileId); }); }); diff --git a/src/plugins/discover/public/context_awareness/profile_providers/register_profile_providers.ts b/src/plugins/discover/public/context_awareness/profile_providers/register_profile_providers.ts index 3035bb3e507ab..9cd65320ac140 100644 --- a/src/plugins/discover/public/context_awareness/profile_providers/register_profile_providers.ts +++ b/src/plugins/discover/public/context_awareness/profile_providers/register_profile_providers.ts @@ -13,29 +13,42 @@ import type { RootProfileService, } from '../profiles'; import type { BaseProfileProvider, BaseProfileService } from '../profile_service'; -import { exampleDataSourceProfileProvider } from './example_data_source_profile'; -import { exampleDocumentProfileProvider } from './example_document_profile'; -import { exampleRootProfileProvider } from './example_root_pofile'; -import { createLogsDataSourceProfileProviders } from './logs_data_source_profile'; -import { createLogDocumentProfileProvider } from './log_document_profile'; +import { createExampleDataSourceProfileProvider } from './example/example_data_source_profile/profile'; +import { createExampleDocumentProfileProvider } from './example/example_document_profile'; +import { createExampleRootProfileProvider } from './example/example_root_pofile'; +import { createLogsDataSourceProfileProviders } from './common/logs_data_source_profile'; +import { createLogDocumentProfileProvider } from './common/log_document_profile'; import { createSecurityRootProfileProvider } from './security/security_root_profile'; import { createProfileProviderServices, ProfileProviderServices, } from './profile_provider_services'; +/** + * Register profile providers for root, data source, and document contexts to the profile profile services + * @param options Register profile provider options + */ export const registerProfileProviders = ({ rootProfileService, dataSourceProfileService, documentProfileService, enabledExperimentalProfileIds, }: { + /** + * Root profile service + */ rootProfileService: RootProfileService; + /** + * Data source profile service + */ dataSourceProfileService: DataSourceProfileService; + /** + * Document profile service + */ documentProfileService: DocumentProfileService; /** - * List of experimental profile Ids which are enabled in kibana config. - * */ + * Array of experimental profile IDs which are enabled in `kibana.yml` + */ enabledExperimentalProfileIds: string[]; }) => { const providerServices = createProfileProviderServices(); @@ -45,23 +58,27 @@ export const registerProfileProviders = ({ registerEnabledProfileProviders({ profileService: rootProfileService, - providers: [...rootProfileProviders], + providers: rootProfileProviders, enabledExperimentalProfileIds, }); registerEnabledProfileProviders({ profileService: dataSourceProfileService, - providers: [...dataSourceProfileProviders], + providers: dataSourceProfileProviders, enabledExperimentalProfileIds, }); registerEnabledProfileProviders({ profileService: documentProfileService, - providers: [...documentProfileProviders], + providers: documentProfileProviders, enabledExperimentalProfileIds, }); }; +/** + * Register enabled profile providers to the provided profile service + * @param options Register enabled profile providers options + */ export const registerEnabledProfileProviders = < TProvider extends BaseProfileProvider<{}>, TService extends BaseProfileService @@ -70,34 +87,52 @@ export const registerEnabledProfileProviders = < providers: availableProviders, enabledExperimentalProfileIds = [], }: { + /** + * Profile service to register providers + */ profileService: TService; + /** + * Array of available profile providers + */ providers: TProvider[]; /** - * List of experimental profile Ids which are enabled in kibana config. - * */ + * Array of experimental profile IDs which are enabled in `kibana.yml` + */ enabledExperimentalProfileIds?: string[]; }) => { for (const provider of availableProviders) { - const isProfileExperimental = provider.isExperimental ?? false; - const isProfileEnabled = - enabledExperimentalProfileIds.includes(provider.profileId) || !isProfileExperimental; - if (isProfileEnabled) { + if (!provider.isExperimental || enabledExperimentalProfileIds.includes(provider.profileId)) { profileService.registerProvider(provider); } } }; -const createRootProfileProviders = (_providerServices: ProfileProviderServices) => [ - exampleRootProfileProvider, - createSecurityRootProfileProvider(_providerServices), +/** + * Creates the available root profile providers + * @param providerServices The profile provider services + * @returns An array of available root profile providers + */ +const createRootProfileProviders = (providerServices: ProfileProviderServices) => [ + createExampleRootProfileProvider(), + createSecurityRootProfileProvider(providerServices), ]; +/** + * Creates the available data source profile providers + * @param providerServices The profile provider services + * @returns An array of available data source profile providers + */ const createDataSourceProfileProviders = (providerServices: ProfileProviderServices) => [ - exampleDataSourceProfileProvider, + createExampleDataSourceProfileProvider(), ...createLogsDataSourceProfileProviders(providerServices), ]; +/** + * Creates the available document profile providers + * @param providerServices The profile provider services + * @returns An array of available document profile providers + */ const createDocumentProfileProviders = (providerServices: ProfileProviderServices) => [ - exampleDocumentProfileProvider, + createExampleDocumentProfileProvider(), createLogDocumentProfileProvider(providerServices), ]; diff --git a/src/plugins/discover/public/context_awareness/profile_service.ts b/src/plugins/discover/public/context_awareness/profile_service.ts index d16f8a13be709..aaeb7664aa5cd 100644 --- a/src/plugins/discover/public/context_awareness/profile_service.ts +++ b/src/plugins/discover/public/context_awareness/profile_service.ts @@ -12,19 +12,48 @@ import type { ComposableProfile, PartialProfile } from './composable_profile'; import type { Profile } from './types'; +/** + * The profile provider resolution result + */ export type ResolveProfileResult = - | { isMatch: true; context: TContext } - | { isMatch: false }; - + | { + /** + * `true` if the associated profile is a match + */ + isMatch: true; + /** + * The resolved context associated with the profile + */ + context: TContext; + } + | { + /** + * `false` if the associated profile is not a match + */ + isMatch: false; + }; + +/** + * Context object with an injected profile ID + */ export type ContextWithProfileId = TContext & { profileId: string }; +/** + * The base profile provider interface + */ export interface BaseProfileProvider { + /** + * The unique profile ID + */ profileId: string; + /** + * The composable profile implementation + */ profile: ComposableProfile; /** - * isExperimental Flag can be used for any profile which is under development and should not be enabled by default. + * Set the `isExperimental` flag to `true` for any profile which is under development and should not be enabled by default. * - * Experimental profiles can still be enabled in kibana config with option `discover.experimental.enabledProfiles` as shown in example below: + * Experimental profiles can be enabled in `kibana.yml` using `discover.experimental.enabledProfiles`, for example: * * ```yaml * discover.experimental.enabledProfiles: @@ -35,13 +64,29 @@ export interface BaseProfileProvider { isExperimental?: boolean; } +/** + * A synchronous profile provider interface + */ export interface ProfileProvider extends BaseProfileProvider { + /** + * The method responsible for context resolution and determining if the associated profile is a match + * @param params Parameters specific to the provider context level + * @returns The resolve profile result + */ resolve: (params: TParams) => ResolveProfileResult; } +/** + * An asynchronous profile provider interface + */ export interface AsyncProfileProvider extends BaseProfileProvider { + /** + * The method responsible for context resolution and determining if the associated profile is a match + * @param params Parameters specific to the provider context level + * @returns The resolve profile result + */ resolve: ( params: TParams ) => ResolveProfileResult | Promise>; @@ -49,26 +94,50 @@ export interface AsyncProfileProvider, TContext> { protected readonly providers: TProvider[] = []; + /** + * @param defaultContext The default context object to use when no profile provider matches + */ protected constructor(public readonly defaultContext: ContextWithProfileId) {} + /** + * Registers a profile provider + * @param provider The profile provider to register + */ public registerProvider(provider: TProvider) { this.providers.push(provider); } + /** + * Returns the composable profile associated with the provided context object + * @param context A context object returned by a provider's `resolve` method + * @returns The composable profile associated with the context + */ public getProfile(context: ContextWithProfileId): ComposableProfile { const provider = this.providers.find((current) => current.profileId === context.profileId); return provider?.profile ?? EMPTY_PROFILE; } } +/** + * A synchronous profile service implementation + */ export class ProfileService< TProfile extends PartialProfile, TParams, TContext > extends BaseProfileService, TContext> { + /** + * Performs context resolution based on the provided context level parameters, + * returning the resolved context from the first matching profile provider + * @param params Parameters specific to the service context level + * @returns The resolved context object with an injected profile ID + */ public resolve(params: TParams) { for (const provider of this.providers) { const result = provider.resolve(params); @@ -85,11 +154,20 @@ export class ProfileService< } } +/** + * An asynchronous profile service implementation + */ export class AsyncProfileService< TProfile extends PartialProfile, TParams, TContext > extends BaseProfileService, TContext> { + /** + * Performs context resolution based on the provided context level parameters, + * returning the resolved context from the first matching profile provider + * @param params Parameters specific to the service context level + * @returns The resolved context object with an injected profile ID + */ public async resolve(params: TParams) { for (const provider of this.providers) { const result = await provider.resolve(params); diff --git a/src/plugins/discover/public/context_awareness/profiles/data_source_profile.ts b/src/plugins/discover/public/context_awareness/profiles/data_source_profile.ts index 96ef82071edea..807072d777a93 100644 --- a/src/plugins/discover/public/context_awareness/profiles/data_source_profile.ts +++ b/src/plugins/discover/public/context_awareness/profiles/data_source_profile.ts @@ -14,21 +14,48 @@ import { AsyncProfileProvider, AsyncProfileService } from '../profile_service'; import type { Profile } from '../types'; import type { RootContext } from './root_profile'; +/** + * Indicates the category of the data source (e.g. logs, alerts, etc.) + */ export enum DataSourceCategory { Logs = 'logs', Default = 'default', } +/** + * The data source profile interface + */ export type DataSourceProfile = Profile; +/** + * Parameters for the data source profile provider `resolve` method + */ export interface DataSourceProfileProviderParams { + /** + * The current root context + */ rootContext: RootContext; + /** + * The current data source + */ dataSource?: DiscoverDataSource; + /** + * The current data view + */ dataView?: DataView; + /** + * The current query + */ query?: Query | AggregateQuery; } +/** + * The resulting context object returned by the data source profile provider `resolve` method + */ export interface DataSourceContext { + /** + * The category of the current data source + */ category: DataSourceCategory; } diff --git a/src/plugins/discover/public/context_awareness/profiles/document_profile.ts b/src/plugins/discover/public/context_awareness/profiles/document_profile.ts index dde4acfecaf1b..cd14e9cdec010 100644 --- a/src/plugins/discover/public/context_awareness/profiles/document_profile.ts +++ b/src/plugins/discover/public/context_awareness/profiles/document_profile.ts @@ -13,20 +13,44 @@ import { ProfileProvider, ProfileService } from '../profile_service'; import type { RootContext } from './root_profile'; import type { DataSourceContext } from './data_source_profile'; +/** + * Indicates the current document type (e.g. log, alert, etc.) + */ export enum DocumentType { Log = 'log', Default = 'default', } +/** + * The document profile interface + */ export type DocumentProfile = Pick; +/** + * Parameters for the document profile provider `resolve` method + */ export interface DocumentProfileProviderParams { + /** + * The current root context + */ rootContext: RootContext; + /** + * The current data source context + */ dataSourceContext: DataSourceContext; + /** + * The current data table record + */ record: DataTableRecord; } +/** + * The resulting context object returned by the document profile provider `resolve` method + */ export interface DocumentContext { + /** + * The current document type + */ type: DocumentType; } diff --git a/src/plugins/discover/public/context_awareness/profiles/root_profile.ts b/src/plugins/discover/public/context_awareness/profiles/root_profile.ts index 3936dafdbcb49..853c93c05cf64 100644 --- a/src/plugins/discover/public/context_awareness/profiles/root_profile.ts +++ b/src/plugins/discover/public/context_awareness/profiles/root_profile.ts @@ -10,6 +10,9 @@ import type { Profile } from '../types'; import { AsyncProfileProvider, AsyncProfileService } from '../profile_service'; +/** + * Indicates the current solution type (i.e. Observability, Security, Search) + */ export enum SolutionType { Observability = 'oblt', Security = 'security', @@ -17,13 +20,28 @@ export enum SolutionType { Default = 'default', } +/** + * The root profile interface + */ export type RootProfile = Profile; +/** + * Parameters for the root profile provider `resolve` method + */ export interface RootProfileProviderParams { + /** + * The current solution navigation ID ('oblt', 'security', 'search', or null) + */ solutionNavId?: string | null; } +/** + * The resulting context object returned by the root profile provider `resolve` method + */ export interface RootContext { + /** + * The current solution type + */ solutionType: SolutionType; } diff --git a/src/plugins/discover/public/context_awareness/profiles_manager.ts b/src/plugins/discover/public/context_awareness/profiles_manager.ts index 27b77345ee0d3..8c24e425147f5 100644 --- a/src/plugins/discover/public/context_awareness/profiles_manager.ts +++ b/src/plugins/discover/public/context_awareness/profiles_manager.ts @@ -39,7 +39,13 @@ interface DataTableRecordWithContext extends DataTableRecord { context: ContextWithProfileId; } +/** + * Options for the `getProfiles` method + */ export interface GetProfilesOptions { + /** + * The data table record to use for the document profile + */ record?: DataTableRecord; } @@ -61,6 +67,10 @@ export class ProfilesManager { this.dataSourceContext$ = new BehaviorSubject(dataSourceProfileService.defaultContext); } + /** + * Resolves the root context profile + * @param params The root profile provider parameters + */ public async resolveRootProfile(params: RootProfileProviderParams) { const serializedParams = serializeRootProfileParams(params); @@ -88,6 +98,10 @@ export class ProfilesManager { this.prevRootProfileParams = serializedParams; } + /** + * Resolves the data source context profile + * @param params The data source profile provider parameters + */ public async resolveDataSourceProfile( params: Omit ) { @@ -120,6 +134,11 @@ export class ProfilesManager { this.prevDataSourceProfileParams = serializedParams; } + /** + * Resolves the document context profile for a given data table record + * @param params The document profile provider parameters + * @returns The data table record with a resolved document context + */ public resolveDocumentProfile( params: Omit ) { @@ -150,6 +169,11 @@ export class ProfilesManager { }); } + /** + * Retrieves an array of the resolved profiles + * @param options Options for getting the profiles + * @returns The resolved profiles + */ public getProfiles({ record }: GetProfilesOptions = {}) { return [ this.rootProfileService.getProfile(this.rootContext$.getValue()), @@ -160,6 +184,11 @@ export class ProfilesManager { ]; } + /** + * Retrieves an observable of the resolved profiles that emits when the profiles change + * @param options Options for getting the profiles + * @returns The resolved profiles as an observable + */ public getProfiles$(options: GetProfilesOptions = {}) { return combineLatest([this.rootContext$, this.dataSourceContext$]).pipe( map(() => this.getProfiles(options)) diff --git a/src/plugins/discover/public/context_awareness/types.ts b/src/plugins/discover/public/context_awareness/types.ts index 82cbbf01e8aa3..dacc2edbc218d 100644 --- a/src/plugins/discover/public/context_awareness/types.ts +++ b/src/plugins/discover/public/context_awareness/types.ts @@ -17,46 +17,131 @@ import type { AggregateQuery, Filter, Query, TimeRange } from '@kbn/es-query'; import type { OmitIndexSignature } from 'type-fest'; import type { Trigger } from '@kbn/ui-actions-plugin/public'; import type { DiscoverDataSource } from '../../common/data_sources'; +import type { DiscoverAppState } from '../application/main/state_management/discover_app_state_container'; +/** + * Supports customizing the Discover document viewer flyout + */ export interface DocViewerExtension { + /** + * Title displayed in the flyout header + */ title: string | undefined; + /** + * Supports modifying existing tabs or adding new tabs to the flyout + * @param prevRegistry The doc views registry + * @returns The updated doc views registry + */ docViewsRegistry: (prevRegistry: DocViewsRegistry) => DocViewsRegistry; } +/** + * Parameters passed to the doc viewer extension + */ export interface DocViewerExtensionParams { + /** + * The record being displayed in the doc viewer + */ record: DataTableRecord; } +/** + * Parameters passed to the row indicator extension + */ export interface RowIndicatorExtensionParams { + /** + * The current data view + */ dataView: DataView; } +/** + * Default data grid column configuration + */ export interface DefaultAppStateColumn { + /** + * The field name of the column + */ name: string; + /** + * The width of the column in pixels -- leave undefined for auto width + */ width?: number; } +/** + * Parameters passed to the default app state extension + */ export interface DefaultAppStateExtensionParams { + /** + * The current data view + */ dataView: DataView; } +/** + * Supports customizing the default Discover application state + */ export interface DefaultAppStateExtension { + /** + * The columns to display in the data grid + */ columns?: DefaultAppStateColumn[]; + /** + * The height of each row in the data grid: + * * -1: auto height mode + * * 0: single line mode + * * 1-20: number of lines to display + */ rowHeight?: number; } +/** + * Parameters passed to the row controls extension + */ export interface RowControlsExtensionParams { + /** + * The current data view + */ dataView: DataView; + /** + * The current query + */ + query?: DiscoverAppState['query']; } +/** + * The Discover cell actions trigger + */ export const DISCOVER_CELL_ACTIONS_TRIGGER: Trigger = { id: 'DISCOVER_CELL_ACTIONS_TRIGGER_ID' }; +/** + * Metadata passed to Discover cell actions + */ export interface DiscoverCellActionMetadata extends Record { + /** + * The Discover instance ID (distinct for each dashboard panel) + */ instanceId?: string; + /** + * The current data source (ES|QL or data view) + */ dataSource?: DiscoverDataSource; + /** + * The current data view + */ dataView?: DataView; + /** + * The current query + */ query?: Query | AggregateQuery; + /** + * The current filters + */ filters?: Filter[]; + /** + * The current time range + */ timeRange?: TimeRange; } @@ -66,30 +151,107 @@ export interface DiscoverCellActionExecutionContext extends CellActionExecutionC export type DiscoverCellAction = CellAction; +/** + * Context object passed to additional cell action methods + */ export type AdditionalCellActionContext = CellActionsData & Omit, 'instanceId'>; +/** + * Additional action to show within expanded cell popovers in the data grid + */ export interface AdditionalCellAction { + /** + * Unique ID for the action + */ id: string; + /** + * Gets the display name for the action, used for button text + * @param context Current cell action context + * @returns The action display name + */ getDisplayName: (context: AdditionalCellActionContext) => string; + /** + * Gets the icon type for the action, used for button icon + * @param context Current cell action context + * @returns The action icon type + */ getIconType: (context: AdditionalCellActionContext) => EuiIconType; + /** + * Checks if the action is compatible with the current cell + * @param context The current cell action context + * @returns `true` if the action is compatible, `false` otherwise + */ isCompatible?: ( context: Omit ) => boolean | Promise; + /** + * The action to execute when the button is clicked + * @param context The current cell action context + */ execute: (context: AdditionalCellActionContext) => void | Promise; } +/** + * The core profile interface for Discover context awareness. + * Each of the available methods map to a specific extension point in the Discover application. + */ export interface Profile { + /** + * Lifecycle + */ + + /** + * Gets default Discover app state that should be used when the profile is resolved + * @param params The default app state extension parameters + * @returns The default app state + */ getDefaultAppState: (params: DefaultAppStateExtensionParams) => DefaultAppStateExtension; - // Data grid + + /** + * Data grid + */ + + /** + * Gets a map of column names to custom cell renderers to use in the data grid + * @returns The custom cell renderers to use in the data grid + */ getCellRenderers: () => CustomCellRenderer; + + /** + * Gets a row indicator provider, allowing rows in the data grid to be given coloured highlights + * based on the properties of each result (e.g. highlighting logs based on `log.level`) + * @param params The row indicator extension parameters + * @returns The row indicator provider to use in the data grid + */ getRowIndicatorProvider: ( params: RowIndicatorExtensionParams ) => UnifiedDataTableProps['getRowIndicator'] | undefined; + + /** + * Gets additional leading controls (row actions) to display for each row in the data grid + * @param params The row controls extension parameters + * @returns The additional leading controls to display in the data grid + */ getRowAdditionalLeadingControls: ( params: RowControlsExtensionParams ) => UnifiedDataTableProps['rowAdditionalLeadingControls'] | undefined; + + /** + * Gets additional cell actions to show within expanded cell popovers in the data grid + * @returns The additional cell actions to show in the data grid + */ getAdditionalCellActions: () => AdditionalCellAction[]; - // Doc viewer + + /** + * Document viewer flyout + */ + + /** + * Supports customizing the behaviour of the Discover document + * viewer flyout, such as the flyout title and available tabs + * @param params The doc viewer extension parameters + * @returns The doc viewer extension + */ getDocViewer: (params: DocViewerExtensionParams) => DocViewerExtension; } diff --git a/src/plugins/discover/public/embeddable/initialize_fetch.ts b/src/plugins/discover/public/embeddable/initialize_fetch.ts index 535b43d6d7be6..b502ea94bd371 100644 --- a/src/plugins/discover/public/embeddable/initialize_fetch.ts +++ b/src/plugins/discover/public/embeddable/initialize_fetch.ts @@ -11,12 +11,11 @@ import { BehaviorSubject, combineLatest, lastValueFrom, switchMap, tap } from 'r import { KibanaExecutionContext } from '@kbn/core/types'; import { - buildDataTableRecord, + buildDataTableRecordList, SEARCH_EMBEDDABLE_TYPE, SEARCH_FIELDS_FROM_SOURCE, SORT_DEFAULT_ORDER_SETTING, } from '@kbn/discover-utils'; -import { EsHitRecord } from '@kbn/discover-utils/types'; import { isOfAggregateQueryType, isOfQueryType } from '@kbn/es-query'; import { i18n } from '@kbn/i18n'; import { RequestAdapter } from '@kbn/inspector-plugin/common'; @@ -203,7 +202,12 @@ export function initializeFetch({ return { warnings: interceptedWarnings, - rows: resp.hits.hits.map((hit) => buildDataTableRecord(hit as EsHitRecord, dataView)), + rows: buildDataTableRecordList({ + records: resp.hits.hits, + dataView, + processRecord: (record) => + discoverServices.profilesManager.resolveDocumentProfile({ record }), + }), hitCount: resp.hits.total as number, fetchContext, }; diff --git a/src/plugins/embeddable/README.md b/src/plugins/embeddable/README.md index 07f5be93e4b3d..6c7f7688f3d28 100644 --- a/src/plugins/embeddable/README.md +++ b/src/plugins/embeddable/README.md @@ -9,7 +9,7 @@ Kibana is a React application, and the minimum unit of sharing is the React comp Rather than an inheritance-based system with classes, imperative APIs are plain old typescript objects that implement any number of shared interfaces. Interfaces are enforced via type guards and are shared via Packages. #### Internal state management -Each embeddable manages its own state. This is because the embeddable system allows a page to render a registry of embeddable types that can change over time. This makes it untenable for a single page to manage state for every type of embeddable. The page is only responsible for persisting and providing the last persisted state to the embeddable on startup. +Each embeddable manages its own state. This is because the embeddable system allows a page to render a registry of embeddable types that can change over time. This makes it untenable for a single page to manage state for every type of embeddable. The page is only responsible for persisting and providing the last persisted state to the embeddable on startup. For implementation details, see [Embeddable state management example](https://github.com/elastic/kibana/blob/main/examples/embeddable_examples/public/app/state_management_example/state_management_example.tsx). ### Key concepts @@ -61,4 +61,5 @@ Use the following examples to learn how to create new Embeddable types. To acces Use the following examples to render embeddables in your application. To run embeddable examples, navigate to `http://localhost:5601/app/embeddablesApp` - [Render a single embeddable](https://github.com/elastic/kibana/blob/main/examples/embeddable_examples/public/react_embeddables/search/search_embeddable_renderer.tsx) +- [Embeddable state management](https://github.com/elastic/kibana/blob/main/examples/embeddable_examples/public/app/state_management_example/state_management_example.tsx) - [Create a dashboard like application that renders many embeddables and allows users to add and remove embeddables](https://github.com/elastic/kibana/blob/main/examples/embeddable_examples/public/app/presentation_container_example/components/presentation_container_example.tsx) \ No newline at end of file diff --git a/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.tsx b/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.tsx index 646dc0ef43d69..b83ebbcb49d66 100644 --- a/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.tsx +++ b/src/plugins/embeddable/public/add_panel_flyout/add_panel_flyout.tsx @@ -21,7 +21,7 @@ import { import { METRIC_TYPE } from '@kbn/analytics'; import { apiHasType } from '@kbn/presentation-publishing'; import { Toast } from '@kbn/core/public'; -import { PresentationContainer } from '@kbn/presentation-containers'; +import { CanAddNewPanel } from '@kbn/presentation-containers'; import { core, embeddableStart, @@ -85,7 +85,7 @@ export const AddPanelFlyout = ({ onAddPanel, modalTitleId, }: { - container: PresentationContainer; + container: CanAddNewPanel; onAddPanel?: (id: string) => void; modalTitleId?: string; }) => { diff --git a/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx b/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx index 0695f162f58f1..160289d0d1c2a 100644 --- a/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx +++ b/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx @@ -13,7 +13,7 @@ import { OverlayRef } from '@kbn/core/public'; import { EuiLoadingSpinner, htmlIdGenerator } from '@elastic/eui'; import { toMountPoint } from '@kbn/react-kibana-mount'; -import { PresentationContainer } from '@kbn/presentation-containers'; +import { CanAddNewPanel } from '@kbn/presentation-containers'; import { core } from '../kibana_services'; const LazyAddPanelFlyout = React.lazy(async () => { @@ -28,7 +28,7 @@ export const openAddPanelFlyout = ({ onAddPanel, onClose, }: { - container: PresentationContainer; + container: CanAddNewPanel; onAddPanel?: (id: string) => void; onClose?: () => void; }): OverlayRef => { diff --git a/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts b/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts index dbbbbcff1bb2c..785d56c55050c 100644 --- a/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts +++ b/src/plugins/embeddable/public/lib/embeddable_saved_object_registry/embeddable_saved_object_registry.ts @@ -9,12 +9,12 @@ import { IconType } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { PresentationContainer } from '@kbn/presentation-containers'; +import { CanAddNewPanel } from '@kbn/presentation-containers'; import { FinderAttributes, SavedObjectCommon } from '@kbn/saved-objects-finder-plugin/common'; import { SavedObjectMetaData } from '@kbn/saved-objects-finder-plugin/public'; type SOToEmbeddable = ( - container: PresentationContainer, + container: CanAddNewPanel, savedObject: SavedObjectCommon ) => void; diff --git a/src/plugins/es_ui_shared/static/forms/components/fields/range_field.tsx b/src/plugins/es_ui_shared/static/forms/components/fields/range_field.tsx index 49e810dd9054b..7f822cafbdf69 100644 --- a/src/plugins/es_ui_shared/static/forms/components/fields/range_field.tsx +++ b/src/plugins/es_ui_shared/static/forms/components/fields/range_field.tsx @@ -7,7 +7,7 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import React, { useCallback } from 'react'; +import React, { ChangeEvent, useCallback } from 'react'; import { EuiFormRow, EuiRange, EuiRangeProps } from '@elastic/eui'; import { FieldHook, getFieldValidityAndErrorMessage } from '../../hook_form_lib'; @@ -23,10 +23,13 @@ export const RangeField = ({ field, euiFieldProps = {}, idAria, ...rest }: Props const { isInvalid, errorMessage } = getFieldValidityAndErrorMessage(field); const { onChange: onFieldChange } = field; - const onChange: EuiRangeProps['onChange'] = useCallback( + const onChange = useCallback>( (e) => { - const event = { ...e, value: `${e.currentTarget.value}` }; - onFieldChange(event); + const event = { + ...e, + value: `${e.currentTarget.value}`, + }; + onFieldChange(event as ChangeEvent<{ name?: string; value: string; checked?: boolean }>); }, [onFieldChange] ); diff --git a/src/plugins/esql/public/kibana_services.ts b/src/plugins/esql/public/kibana_services.ts index b8679d38f7852..ae6eca13715f5 100644 --- a/src/plugins/esql/public/kibana_services.ts +++ b/src/plugins/esql/public/kibana_services.ts @@ -11,7 +11,7 @@ import { BehaviorSubject } from 'rxjs'; import type { CoreStart } from '@kbn/core/public'; import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import type { ExpressionsStart } from '@kbn/expressions-plugin/public'; -import type { IndexManagementPluginSetup } from '@kbn/index-management'; +import type { IndexManagementPluginSetup } from '@kbn/index-management-shared-types'; import type { FieldsMetadataPublicStart } from '@kbn/fields-metadata-plugin/public'; export let core: CoreStart; diff --git a/src/plugins/esql/public/plugin.ts b/src/plugins/esql/public/plugin.ts index a0220a5e95aaf..ca75c27eccdca 100755 --- a/src/plugins/esql/public/plugin.ts +++ b/src/plugins/esql/public/plugin.ts @@ -11,7 +11,7 @@ import type { Plugin, CoreStart, CoreSetup } from '@kbn/core/public'; import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import type { ExpressionsStart } from '@kbn/expressions-plugin/public'; import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; -import type { IndexManagementPluginSetup } from '@kbn/index-management'; +import type { IndexManagementPluginSetup } from '@kbn/index-management-shared-types'; import type { UiActionsSetup, UiActionsStart } from '@kbn/ui-actions-plugin/public'; import type { FieldsMetadataPublicStart } from '@kbn/fields-metadata-plugin/public'; import { diff --git a/src/plugins/esql/tsconfig.json b/src/plugins/esql/tsconfig.json index 500ff09276eaa..6420a9535197d 100644 --- a/src/plugins/esql/tsconfig.json +++ b/src/plugins/esql/tsconfig.json @@ -15,7 +15,7 @@ "@kbn/core", "@kbn/expressions-plugin", "@kbn/data-views-plugin", - "@kbn/index-management", + "@kbn/index-management-shared-types", "@kbn/i18n", "@kbn/config-schema", "@kbn/esql-utils", diff --git a/src/plugins/esql_datagrid/public/data_grid.tsx b/src/plugins/esql_datagrid/public/data_grid.tsx index 990d27891bf6c..58145627f139f 100644 --- a/src/plugins/esql_datagrid/public/data_grid.tsx +++ b/src/plugins/esql_datagrid/public/data_grid.tsx @@ -21,10 +21,10 @@ import { EuiLink, EuiText, EuiIcon } from '@elastic/eui'; import { css } from '@emotion/react'; import { Storage } from '@kbn/kibana-utils-plugin/public'; import type { ESQLRow } from '@kbn/es-types'; -import type { DatatableColumn, DatatableColumnMeta } from '@kbn/expressions-plugin/common'; +import type { DatatableColumn } from '@kbn/expressions-plugin/common'; import type { SharePluginStart } from '@kbn/share-plugin/public'; import type { AggregateQuery } from '@kbn/es-query'; -import type { DataTableRecord } from '@kbn/discover-utils/types'; +import type { DataTableRecord, DataTableColumnsMeta } from '@kbn/discover-utils/types'; import type { DataView } from '@kbn/data-views-plugin/common'; import type { CoreStart } from '@kbn/core/public'; import type { DataPublicPluginStart } from '@kbn/data-plugin/public'; @@ -46,13 +46,6 @@ interface ESQLDataGridProps { initialRowHeight?: number; controlColumnIds?: string[]; } -type DataTableColumnsMeta = Record< - string, - { - type: DatatableColumnMeta['type']; - esType?: DatatableColumnMeta['esType']; - } ->; const sortOrder: SortOrder[] = []; const DEFAULT_INITIAL_ROW_HEIGHT = 5; diff --git a/src/plugins/esql_datagrid/public/row_viewer.tsx b/src/plugins/esql_datagrid/public/row_viewer.tsx index 8be9a67b36894..2578bee01e6cb 100644 --- a/src/plugins/esql_datagrid/public/row_viewer.tsx +++ b/src/plugins/esql_datagrid/public/row_viewer.tsx @@ -9,8 +9,7 @@ import React, { useMemo } from 'react'; import type { DataView } from '@kbn/data-views-plugin/public'; -import type { DataTableRecord } from '@kbn/discover-utils/types'; -import type { DataTableColumnsMeta } from '@kbn/unified-data-table'; +import type { DataTableRecord, DataTableColumnsMeta } from '@kbn/discover-utils/types'; import { UnifiedDocViewerFlyout } from '@kbn/unified-doc-viewer-plugin/public'; import { NotificationsStart } from '@kbn/core-notifications-browser'; diff --git a/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx b/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx index b8a067421a168..0de8d47398e51 100644 --- a/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx +++ b/src/plugins/guided_onboarding/public/components/guide_panel.test.tsx @@ -457,7 +457,7 @@ describe('Guided setup', () => { expect( find('guidePanelStepDescription') .first() - .containsMatchingElement(

    {testGuideConfig.steps[2].description}

    ) + .containsMatchingElement(

    {testGuideConfig.steps[2].description as string}

    ) ).toBe(true); }); @@ -475,7 +475,7 @@ describe('Guided setup', () => { .containsMatchingElement(
      {testGuideConfig.steps[0].descriptionList?.map((description, i) => ( -
    • {description}
    • +
    • {description as string}
    • ))}
    ) diff --git a/src/plugins/guided_onboarding/server/feature.ts b/src/plugins/guided_onboarding/server/feature.ts index e7f1ad2ce1274..41151421942f9 100644 --- a/src/plugins/guided_onboarding/server/feature.ts +++ b/src/plugins/guided_onboarding/server/feature.ts @@ -10,6 +10,7 @@ import type { KibanaFeatureConfig } from '@kbn/features-plugin/common'; import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { PLUGIN_FEATURE, PLUGIN_ID } from '../common/constants'; import { guideStateSavedObjectsType, pluginStateSavedObjectsType } from './saved_objects'; @@ -19,6 +20,7 @@ export const GUIDED_ONBOARDING_FEATURE: KibanaFeatureConfig = { defaultMessage: 'Setup guides', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [PLUGIN_ID], privileges: { all: { diff --git a/src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx b/src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx index 754f9c4c05b6e..540c04a206c61 100644 --- a/src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx +++ b/src/plugins/unified_doc_viewer/public/components/doc_viewer_flyout/doc_viewer_flyout.tsx @@ -29,8 +29,7 @@ import { useIsWithinMinBreakpoint, EuiFlyoutProps, } from '@elastic/eui'; -import type { DataTableRecord } from '@kbn/discover-utils/types'; -import type { DataTableColumnsMeta } from '@kbn/unified-data-table'; +import type { DataTableRecord, DataTableColumnsMeta } from '@kbn/discover-utils/types'; import useLocalStorage from 'react-use/lib/useLocalStorage'; import type { ToastsStart } from '@kbn/core-notifications-browser'; import type { DocViewFilterFn, DocViewRenderProps } from '@kbn/unified-doc-viewer/types'; diff --git a/src/plugins/unified_doc_viewer/public/components/doc_viewer_logs_overview/sub_components/hover_popover_action.tsx b/src/plugins/unified_doc_viewer/public/components/doc_viewer_logs_overview/sub_components/hover_popover_action.tsx index 1338a03075320..efd7a46b726f6 100644 --- a/src/plugins/unified_doc_viewer/public/components/doc_viewer_logs_overview/sub_components/hover_popover_action.tsx +++ b/src/plugins/unified_doc_viewer/public/components/doc_viewer_logs_overview/sub_components/hover_popover_action.tsx @@ -66,9 +66,9 @@ export const HoverActionPopover = ({ panelStyle={{ minWidth: '24px' }} display={display} > - {title && ( + {(title as string) && ( - {title} + {title as string} )} diff --git a/src/plugins/unified_doc_viewer/public/components/doc_viewer_table/table.test.tsx b/src/plugins/unified_doc_viewer/public/components/doc_viewer_table/table.test.tsx new file mode 100644 index 0000000000000..833b9db059975 --- /dev/null +++ b/src/plugins/unified_doc_viewer/public/components/doc_viewer_table/table.test.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import React from 'react'; +import { render, screen, act } from '@testing-library/react'; +import { __IntlProvider as IntlProvider } from '@kbn/i18n-react'; +import { buildDataTableRecord } from '@kbn/discover-utils'; +import { createStubDataView } from '@kbn/data-views-plugin/common/data_view.stub'; +import { Storage } from '@kbn/kibana-utils-plugin/public'; +import { generateEsHits } from '@kbn/discover-utils/src/__mocks__'; +import { DocViewerTable, SHOW_ONLY_SELECTED_FIELDS } from './table'; +import { mockUnifiedDocViewerServices } from '../../__mocks__'; +import { setUnifiedDocViewerServices } from '../../plugin'; + +const storage = new Storage(window.localStorage); + +setUnifiedDocViewerServices(mockUnifiedDocViewerServices); + +const dataView = createStubDataView({ + spec: { + id: 'test', + title: 'test', + timeFieldName: '@timestamp', + fields: { + '@timestamp': { + name: '@timestamp', + type: 'date', + esTypes: ['date'], + aggregatable: true, + searchable: true, + count: 30, + readFromDocValues: true, + scripted: false, + isMapped: true, + }, + bytes: { + name: 'bytes', + type: 'number', + esTypes: ['long'], + aggregatable: true, + searchable: true, + count: 10, + readFromDocValues: true, + scripted: false, + isMapped: true, + }, + 'extension.keyword': { + name: 'extension.keyword', + type: 'string', + esTypes: ['keyword'], + aggregatable: true, + searchable: true, + count: 0, + readFromDocValues: true, + scripted: false, + subType: { + multi: { + parent: 'extension', + }, + }, + isMapped: true, + }, + _id: { + name: '_id', + type: 'string', + esTypes: ['_id'], + aggregatable: false, + searchable: true, + readFromDocValues: true, + isMapped: true, + }, + }, + }, +}); +const hit = buildDataTableRecord(generateEsHits(dataView, 1)[0], dataView); + +describe('DocViewerTable', () => { + afterEach(() => { + storage.clear(); + }); + + describe('switch - show only selected fields', () => { + it('should disable the switch if columns is empty', async () => { + render( + + + + ); + + expect(screen.getByTestId('unifiedDocViewerShowOnlySelectedFieldsSwitch')).toBeDisabled(); + expect(screen.getByText('@timestamp')).toBeInTheDocument(); + expect(screen.getByText('bytes')).toBeInTheDocument(); + expect(screen.getByText('extension.keyword')).toBeInTheDocument(); + }); + + it('should disable the switch even if it was previously switched on', async () => { + storage.set(SHOW_ONLY_SELECTED_FIELDS, true); + + render( + + + + ); + + expect(screen.getByTestId('unifiedDocViewerShowOnlySelectedFieldsSwitch')).toBeDisabled(); + expect(screen.getByText('@timestamp')).toBeInTheDocument(); + expect(screen.getByText('bytes')).toBeInTheDocument(); + expect(screen.getByText('extension.keyword')).toBeInTheDocument(); + }); + + it('should show only selected fields if it was previously switched on', async () => { + storage.set(SHOW_ONLY_SELECTED_FIELDS, true); + + render( + + + + ); + + expect(screen.getByTestId('unifiedDocViewerShowOnlySelectedFieldsSwitch')).toBeEnabled(); + expect(screen.getByText('@timestamp')).toBeInTheDocument(); + expect(screen.queryByText('bytes')).toBeNull(); + expect(screen.getByText('extension.keyword')).toBeInTheDocument(); + }); + + it('should allow toggling the switch', async () => { + render( + + + + ); + + const showOnlySelectedFieldsSwitch = screen.getByTestId( + 'unifiedDocViewerShowOnlySelectedFieldsSwitch' + ); + + expect(showOnlySelectedFieldsSwitch).toBeEnabled(); + expect(showOnlySelectedFieldsSwitch).toHaveValue(''); + expect(screen.getByText('@timestamp')).toBeInTheDocument(); + expect(screen.getByText('bytes')).toBeInTheDocument(); + expect(screen.getByText('extension.keyword')).toBeInTheDocument(); + + act(() => { + showOnlySelectedFieldsSwitch.click(); + }); + + expect(screen.getByText('@timestamp')).toBeInTheDocument(); + expect(screen.getByText('bytes')).toBeInTheDocument(); + expect(screen.queryByText('extension.keyword')).toBeNull(); + expect(storage.get(SHOW_ONLY_SELECTED_FIELDS)).toBe(true); + + act(() => { + showOnlySelectedFieldsSwitch.click(); + }); + + expect(screen.getByText('@timestamp')).toBeInTheDocument(); + expect(screen.getByText('bytes')).toBeInTheDocument(); + expect(screen.getByText('extension.keyword')).toBeInTheDocument(); + expect(storage.get(SHOW_ONLY_SELECTED_FIELDS)).toBe(false); + }); + }); +}); diff --git a/src/plugins/unified_doc_viewer/public/components/doc_viewer_table/table.tsx b/src/plugins/unified_doc_viewer/public/components/doc_viewer_table/table.tsx index 76b1e0b02940d..e542a94c5fca8 100644 --- a/src/plugins/unified_doc_viewer/public/components/doc_viewer_table/table.tsx +++ b/src/plugins/unified_doc_viewer/public/components/doc_viewer_table/table.tsx @@ -24,7 +24,6 @@ import { EuiCallOut, useResizeObserver, EuiSwitch, - useEuiTheme, EuiSwitchEvent, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; @@ -33,11 +32,14 @@ import { Storage } from '@kbn/kibana-utils-plugin/public'; import { getFieldIconType } from '@kbn/field-utils/src/utils/get_field_icon_type'; import { SHOW_MULTIFIELDS, + DOC_HIDE_TIME_COLUMN_SETTING, formatFieldValue, getIgnoredReason, getShouldShowFieldHandler, isNestedFieldParent, usePager, + getVisibleColumns, + canPrependTimeFieldColumn, } from '@kbn/discover-utils'; import { getTextBasedColumnIconType } from '@kbn/field-utils'; import type { DocViewRenderProps } from '@kbn/unified-doc-viewer/types'; @@ -72,6 +74,7 @@ const DEFAULT_PAGE_SIZE = 25; const PINNED_FIELDS_KEY = 'discover:pinnedFields'; const PAGE_SIZE = 'discover:pageSize'; const HIDE_NULL_VALUES = 'unifiedDocViewer:hideNullValues'; +export const SHOW_ONLY_SELECTED_FIELDS = 'unifiedDocViewer:showOnlySelectedFields'; const GRID_COLUMN_FIELD_NAME = 'name'; const GRID_COLUMN_FIELD_VALUE = 'value'; @@ -143,8 +146,10 @@ export const DocViewerTable = ({ getPinnedFields(currentDataViewId, storage) ); const [areNullValuesHidden, setAreNullValuesHidden] = useLocalStorage(HIDE_NULL_VALUES, false); - - const { euiTheme } = useEuiTheme(); + const [showOnlySelectedFields, setShowOnlySelectedFields] = useLocalStorage( + SHOW_ONLY_SELECTED_FIELDS, + false + ); const flattened = hit.flattened; const shouldShowFieldHandler = useMemo( @@ -237,59 +242,97 @@ export const DocViewerTable = ({ ] ); + const fieldsFromColumns = useMemo( + () => columns?.filter((column) => column !== '_source') || [], + [columns] + ); + + const isShowOnlySelectedFieldsDisabled = !fieldsFromColumns?.length; + + const shouldShowOnlySelectedFields = useMemo( + () => showOnlySelectedFields && !isShowOnlySelectedFieldsDisabled, + [showOnlySelectedFields, isShowOnlySelectedFieldsDisabled] + ); + + const displayedFieldNames = useMemo(() => { + if (shouldShowOnlySelectedFields) { + return getVisibleColumns( + fieldsFromColumns, + dataView, + canPrependTimeFieldColumn( + columns, + dataView.timeFieldName, + columnsMeta, + !uiSettings.get(DOC_HIDE_TIME_COLUMN_SETTING, false), + isEsqlMode + ) + ); + } + return Object.keys(flattened).sort((fieldA, fieldB) => { + const mappingA = mapping(fieldA); + const mappingB = mapping(fieldB); + const nameA = !mappingA || !mappingA.displayName ? fieldA : mappingA.displayName; + const nameB = !mappingB || !mappingB.displayName ? fieldB : mappingB.displayName; + return nameA.localeCompare(nameB); + }); + }, [ + fieldsFromColumns, + flattened, + shouldShowOnlySelectedFields, + mapping, + dataView, + columns, + columnsMeta, + isEsqlMode, + uiSettings, + ]); + const { pinnedItems, restItems, allFields } = useMemo( () => - Object.keys(flattened) - .sort((fieldA, fieldB) => { - const mappingA = mapping(fieldA); - const mappingB = mapping(fieldB); - const nameA = !mappingA || !mappingA.displayName ? fieldA : mappingA.displayName; - const nameB = !mappingB || !mappingB.displayName ? fieldB : mappingB.displayName; - return nameA.localeCompare(nameB); - }) - .reduce( - (acc, curFieldName) => { - if (!shouldShowFieldHandler(curFieldName)) { - return acc; - } - const shouldHideNullValue = - areNullValuesHidden && flattened[curFieldName] == null && isEsqlMode; - if (shouldHideNullValue) { - return acc; - } + displayedFieldNames.reduce( + (acc, curFieldName) => { + if (!shouldShowOnlySelectedFields && !shouldShowFieldHandler(curFieldName)) { + return acc; + } + const shouldHideNullValue = + isEsqlMode && areNullValuesHidden && flattened[curFieldName] == null; + if (shouldHideNullValue) { + return acc; + } - const isPinned = pinnedFields.includes(curFieldName); - const row = fieldToItem(curFieldName, isPinned); + const isPinned = pinnedFields.includes(curFieldName); + const row = fieldToItem(curFieldName, isPinned); - if (isPinned) { - acc.pinnedItems.push(row); - } else { - if (onFilterField(curFieldName, row.field.displayName, row.field.fieldType)) { - // filter only unpinned fields - acc.restItems.push(row); - } + if (isPinned) { + acc.pinnedItems.push(row); + } else { + if (onFilterField(curFieldName, row.field.displayName, row.field.fieldType)) { + // filter only unpinned fields + acc.restItems.push(row); } + } - acc.allFields.push({ - name: curFieldName, - displayName: row.field.displayName, - type: row.field.fieldType, - }); + acc.allFields.push({ + name: curFieldName, + displayName: row.field.displayName, + type: row.field.fieldType, + }); - return acc; - }, - { - pinnedItems: [], - restItems: [], - allFields: [], - } - ), + return acc; + }, + { + pinnedItems: [], + restItems: [], + allFields: [], + } + ), [ + displayedFieldNames, areNullValuesHidden, + shouldShowOnlySelectedFields, fieldToItem, flattened, isEsqlMode, - mapping, onFilterField, pinnedFields, shouldShowFieldHandler, @@ -375,6 +418,13 @@ export const DocViewerTable = ({ [setAreNullValuesHidden] ); + const onShowOnlySelectedFieldsChange = useCallback( + (e: EuiSwitchEvent) => { + setShowOnlySelectedFields(e.target.checked); + }, + [setShowOnlySelectedFields] + ); + const renderCellValue: EuiDataGridProps['renderCellValue'] = useCallback( ({ rowIndex, columnId, isDetails }) => { return ( @@ -446,31 +496,38 @@ export const DocViewerTable = ({ - {rows.length === 0 ? ( - -

    - -

    -
    - ) : ( - <> + + + + + + - + {isEsqlMode && ( - + )} - - + + + + + + + {rows.length === 0 ? ( + +

    + - - +

    +
    + ) : ( + + + )}
    ); diff --git a/src/plugins/unified_doc_viewer/tsconfig.json b/src/plugins/unified_doc_viewer/tsconfig.json index ef3a7a91153ac..eab6884b972ec 100644 --- a/src/plugins/unified_doc_viewer/tsconfig.json +++ b/src/plugins/unified_doc_viewer/tsconfig.json @@ -31,7 +31,6 @@ "@kbn/ui-theme", "@kbn/discover-shared-plugin", "@kbn/fields-metadata-plugin", - "@kbn/unified-data-table", "@kbn/core-notifications-browser", "@kbn/deeplinks-observability", "@kbn/share-plugin", diff --git a/src/plugins/unified_histogram/public/chart/breakdown_field_selector.tsx b/src/plugins/unified_histogram/public/chart/breakdown_field_selector.tsx index 6d7b32c77c854..7d29827a1389b 100644 --- a/src/plugins/unified_histogram/public/chart/breakdown_field_selector.tsx +++ b/src/plugins/unified_histogram/public/chart/breakdown_field_selector.tsx @@ -71,7 +71,7 @@ export const BreakdownFieldSelector = ({ return options; }, [dataView, breakdown.field]); - const onChange: ToolbarSelectorProps['onChange'] = useCallback( + const onChange = useCallback>( (chosenOption) => { const field = chosenOption?.value ? dataView.fields.find((currentField) => currentField.name === chosenOption.value) diff --git a/src/plugins/unified_histogram/public/chart/time_interval_selector.tsx b/src/plugins/unified_histogram/public/chart/time_interval_selector.tsx index 6cb03ff7ce348..bb0250b9f4d81 100644 --- a/src/plugins/unified_histogram/public/chart/time_interval_selector.tsx +++ b/src/plugins/unified_histogram/public/chart/time_interval_selector.tsx @@ -23,7 +23,7 @@ export const TimeIntervalSelector: React.FC = ({ chart, onTimeIntervalChange, }) => { - const onChange: ToolbarSelectorProps['onChange'] = useCallback( + const onChange = useCallback>( (chosenOption) => { const selectedOption = chosenOption?.value; if (selectedOption) { diff --git a/src/plugins/unified_search/public/query_string_input/esql_menu_popover.tsx b/src/plugins/unified_search/public/query_string_input/esql_menu_popover.tsx index 1c04bbd84c7fa..d684448670c42 100644 --- a/src/plugins/unified_search/public/query_string_input/esql_menu_popover.tsx +++ b/src/plugins/unified_search/public/query_string_input/esql_menu_popover.tsx @@ -31,6 +31,7 @@ export const ESQLMenuPopover = () => { const toggleLanguageComponent = useCallback(async () => { setIsLanguageComponentOpen(!isLanguageComponentOpen); + setIsESQLMenuPopoverOpen(false); }, [isLanguageComponentOpen]); const esqlPanelItems = useMemo(() => { @@ -52,6 +53,7 @@ export const ESQLMenuPopover = () => { data-test-subj="esql-about" target="_blank" href={docLinks.links.query.queryESQL} + onClick={() => setIsESQLMenuPopoverOpen(false)} > {i18n.translate('unifiedSearch.query.queryBar.esqlMenu.documentation', { defaultMessage: 'Documentation', @@ -63,6 +65,7 @@ export const ESQLMenuPopover = () => { data-test-subj="esql-examples" target="_blank" href={docLinks.links.query.queryESQLExamples} + onClick={() => setIsESQLMenuPopoverOpen(false)} > {i18n.translate('unifiedSearch.query.queryBar.esqlMenu.documentation', { defaultMessage: 'Example queries', @@ -75,6 +78,7 @@ export const ESQLMenuPopover = () => { data-test-subj="esql-feedback" target="_blank" href={FEEDBACK_LINK} + onClick={() => setIsESQLMenuPopoverOpen(false)} > {i18n.translate('unifiedSearch.query.queryBar.esqlMenu.documentation', { defaultMessage: 'Submit feedback', diff --git a/src/plugins/vis_default_editor/public/components/controls/max_bars.tsx b/src/plugins/vis_default_editor/public/components/controls/max_bars.tsx index 42978daa9d835..d61fcdb73a3ec 100644 --- a/src/plugins/vis_default_editor/public/components/controls/max_bars.tsx +++ b/src/plugins/vis_default_editor/public/components/controls/max_bars.tsx @@ -66,7 +66,7 @@ function MaxBarsParamEditor({ setValidity(isValid); }, [isValid, setValidity]); - const onChange: EuiFieldNumberProps['onChange'] = useCallback( + const onChange = useCallback>( (ev) => setValue(ev.target.value === '' ? '' : parseFloat(ev.target.value)), [setValue] ); diff --git a/src/plugins/vis_default_editor/public/components/controls/number_interval.tsx b/src/plugins/vis_default_editor/public/components/controls/number_interval.tsx index 914ab3617202d..6d3a7d492a905 100644 --- a/src/plugins/vis_default_editor/public/components/controls/number_interval.tsx +++ b/src/plugins/vis_default_editor/public/components/controls/number_interval.tsx @@ -73,7 +73,7 @@ function NumberIntervalParamEditor({ setTouched, setValidity, setValue, -}: AggParamEditorProps) { +}: AggParamEditorProps) { const field = agg.getField(); const fieldSupportsAuto = !field || field.type === 'number'; const isAutoChecked = fieldSupportsAuto && isAutoInterval(value); @@ -85,12 +85,12 @@ function NumberIntervalParamEditor({ setValidity(isValid); }, [isValid, setValidity]); - const onChange: EuiFieldNumberProps['onChange'] = useCallback( + const onChange = useCallback>( ({ target }) => setValue(isNaN(target.valueAsNumber) ? '' : target.valueAsNumber), [setValue] ); - const onAutoSwitchChange: EuiSwitchProps['onChange'] = useCallback( + const onAutoSwitchChange = useCallback( (e) => { const isAutoSwitchChecked = e.target.checked; @@ -105,7 +105,7 @@ function NumberIntervalParamEditor({ label={label} fullWidth={true} isInvalid={showValidation && !isValid} - helpText={get(editorConfig, 'interval.help')} + helpText={get(editorConfig, 'interval.help') as string} > diff --git a/src/plugins/vis_default_editor/public/components/controls/radius_ratio_option.tsx b/src/plugins/vis_default_editor/public/components/controls/radius_ratio_option.tsx index 167d659d1b2c3..7a8f475f672c4 100644 --- a/src/plugins/vis_default_editor/public/components/controls/radius_ratio_option.tsx +++ b/src/plugins/vis_default_editor/public/components/controls/radius_ratio_option.tsx @@ -41,7 +41,7 @@ function RadiusRatioOptionControl({ editorStateParams, setStateParamValue }: Agg } }); - const onChange: EuiRangeProps['onChange'] = useCallback( + const onChange = useCallback>( (e) => setStateParamValue(PARAM_NAME, parseFloat(e.currentTarget.value)), [setStateParamValue] ); diff --git a/src/plugins/vis_types/table/public/components/table_vis_basic.tsx b/src/plugins/vis_types/table/public/components/table_vis_basic.tsx index d1c5bad33c7d0..185f45ee2c24a 100644 --- a/src/plugins/vis_types/table/public/components/table_vis_basic.tsx +++ b/src/plugins/vis_types/table/public/components/table_vis_basic.tsx @@ -110,7 +110,7 @@ export const TableVisBasic = memo( defaultMessage: 'Data table visualization', }); - const onColumnResize: EuiDataGridProps['onColumnResize'] = useCallback( + const onColumnResize = useCallback>( ({ columnId, width }) => { const colIndex = columns.findIndex((c) => c.id === columnId); setColumnsWidth({ diff --git a/src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx b/src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx index babfad0d7cc8b..15ad6317b005d 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx +++ b/src/plugins/vis_types/timeseries/public/application/components/aggs/field_select/field_select.tsx @@ -110,7 +110,7 @@ export function FieldSelect({ ); const onFieldSelectItemChange = useCallback( - (index: number = 0, [selectedItem]) => { + (index: number = 0, [selectedItem]: Array>) => { onChange(updateItem(selectedIds, selectedItem?.value, index)); }, [selectedIds, onChange] diff --git a/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx b/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx index 9ede6c8308865..906e796aa4898 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx +++ b/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx @@ -39,9 +39,11 @@ export const ComboBoxSelect = ({ const [availableIndexes, setAvailableIndexes] = useState([]); const [selectedOptions, setSelectedOptions] = useState([]); - const onComboBoxChange: EuiComboBoxProps['onChange'] = useCallback( + const onComboBoxChange = useCallback< + NonNullable['onChange']> + >( ([selected]) => { - onIndexChange(selected ? { id: selected.id } : ''); + onIndexChange(selected ? { id: selected.id! } : ''); }, [onIndexChange] ); diff --git a/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/field_text_select.tsx b/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/field_text_select.tsx index 78dfab1eb98ea..6bdbe4ae96a1e 100644 --- a/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/field_text_select.tsx +++ b/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/field_text_select.tsx @@ -30,7 +30,7 @@ export const FieldTextSelect = ({ const [inputValue, setInputValue] = useState(); const { indexPatternString } = fetchedIndex; - const onFieldTextChange: EuiFieldTextProps['onChange'] = useCallback((e) => { + const onFieldTextChange = useCallback>((e) => { setInputValue(e.target.value); }, []); diff --git a/src/plugins/visualizations/public/actions/edit_in_lens_action.tsx b/src/plugins/visualizations/public/actions/edit_in_lens_action.tsx index 6d3a2ce697f7b..8995b2abf7385 100644 --- a/src/plugins/visualizations/public/actions/edit_in_lens_action.tsx +++ b/src/plugins/visualizations/public/actions/edit_in_lens_action.tsx @@ -26,7 +26,7 @@ import { import { Action } from '@kbn/ui-actions-plugin/public'; import React from 'react'; import { take } from 'rxjs'; -import { apiHasVisualizeConfig, HasVisualizeConfig } from '../embeddable'; +import { apiHasVisualizeConfig, HasVisualizeConfig } from '../legacy/embeddable'; import { apiHasExpressionVariables, HasExpressionVariables, diff --git a/src/plugins/visualizations/public/react_embeddable/create_vis_instance.ts b/src/plugins/visualizations/public/embeddable/create_vis_instance.ts similarity index 100% rename from src/plugins/visualizations/public/react_embeddable/create_vis_instance.ts rename to src/plugins/visualizations/public/embeddable/create_vis_instance.ts diff --git a/src/plugins/visualizations/public/react_embeddable/get_expression_renderer_props.ts b/src/plugins/visualizations/public/embeddable/get_expression_renderer_props.ts similarity index 98% rename from src/plugins/visualizations/public/react_embeddable/get_expression_renderer_props.ts rename to src/plugins/visualizations/public/embeddable/get_expression_renderer_props.ts index 67d38577b54d4..69dfef84c2be0 100644 --- a/src/plugins/visualizations/public/react_embeddable/get_expression_renderer_props.ts +++ b/src/plugins/visualizations/public/embeddable/get_expression_renderer_props.ts @@ -10,7 +10,7 @@ import type { KibanaExecutionContext } from '@kbn/core-execution-context-common'; import { AggregateQuery, Filter, Query, TimeRange } from '@kbn/es-query'; import { ExpressionRendererEvent, ExpressionRendererParams } from '@kbn/expressions-plugin/public'; -import { toExpressionAst } from '../embeddable/to_ast'; +import { toExpressionAst } from './to_ast'; import { getExecutionContext, getTimeFilter } from '../services'; import type { VisParams } from '../types'; import type { Vis } from '../vis'; diff --git a/src/plugins/visualizations/public/embeddable/get_visualize_embeddable_factory_lazy.ts b/src/plugins/visualizations/public/embeddable/get_visualize_embeddable_factory_lazy.ts new file mode 100644 index 0000000000000..b14d03ec5030c --- /dev/null +++ b/src/plugins/visualizations/public/embeddable/get_visualize_embeddable_factory_lazy.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +export const getVisualizeEmbeddableFactoryLazy = async () => { + const { getVisualizeEmbeddableFactory } = await import('./visualize_embeddable'); + return getVisualizeEmbeddableFactory; +}; diff --git a/src/plugins/visualizations/public/embeddable/index.ts b/src/plugins/visualizations/public/embeddable/index.ts index c3855d3ab171f..6d1649771c8ef 100644 --- a/src/plugins/visualizations/public/embeddable/index.ts +++ b/src/plugins/visualizations/public/embeddable/index.ts @@ -7,11 +7,5 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -export { VisualizeEmbeddableFactory } from './visualize_embeddable_factory'; -export { VISUALIZE_EMBEDDABLE_TYPE, COMMON_VISUALIZATION_GROUPING } from './constants'; +export { getVisualizeEmbeddableFactoryLazy } from './get_visualize_embeddable_factory_lazy'; export { VIS_EVENT_TO_TRIGGER } from './events'; -export { createVisEmbeddableFromObject } from './create_vis_embeddable_from_object'; - -export type { VisualizeEmbeddable, VisualizeInput } from './visualize_embeddable'; - -export { type HasVisualizeConfig, apiHasVisualizeConfig } from './interfaces/has_visualize_config'; diff --git a/src/plugins/visualizations/public/react_embeddable/save_to_library.ts b/src/plugins/visualizations/public/embeddable/save_to_library.ts similarity index 100% rename from src/plugins/visualizations/public/react_embeddable/save_to_library.ts rename to src/plugins/visualizations/public/embeddable/save_to_library.ts diff --git a/src/plugins/visualizations/public/react_embeddable/state.test.ts b/src/plugins/visualizations/public/embeddable/state.test.ts similarity index 100% rename from src/plugins/visualizations/public/react_embeddable/state.test.ts rename to src/plugins/visualizations/public/embeddable/state.test.ts diff --git a/src/plugins/visualizations/public/react_embeddable/state.ts b/src/plugins/visualizations/public/embeddable/state.ts similarity index 100% rename from src/plugins/visualizations/public/react_embeddable/state.ts rename to src/plugins/visualizations/public/embeddable/state.ts diff --git a/src/plugins/visualizations/public/react_embeddable/types.ts b/src/plugins/visualizations/public/embeddable/types.ts similarity index 98% rename from src/plugins/visualizations/public/react_embeddable/types.ts rename to src/plugins/visualizations/public/embeddable/types.ts index b0c6b296112b9..2536b478debb4 100644 --- a/src/plugins/visualizations/public/react_embeddable/types.ts +++ b/src/plugins/visualizations/public/embeddable/types.ts @@ -22,7 +22,7 @@ import { SerializedTitles, } from '@kbn/presentation-publishing'; import { DeepPartial } from '@kbn/utility-types'; -import { HasVisualizeConfig } from '../embeddable'; +import { HasVisualizeConfig } from '../legacy/embeddable'; import type { Vis, VisParams, VisSavedObject } from '../types'; import type { SerializedVis } from '../vis'; diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx b/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx index 6c684b58af888..8e1861af15a98 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx +++ b/src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx @@ -7,711 +7,543 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import _, { get } from 'lodash'; -import { Subscription, ReplaySubject, mergeMap } from 'rxjs'; -import { i18n } from '@kbn/i18n'; -import React from 'react'; -import { render } from 'react-dom'; -import { EuiLoadingChart } from '@elastic/eui'; -import { Filter, onlyDisabledFiltersChanged, Query, TimeRange } from '@kbn/es-query'; -import type { KibanaExecutionContext, SavedObjectAttributes } from '@kbn/core/public'; -import type { ErrorLike } from '@kbn/expressions-plugin/common'; -import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; -import { TimefilterContract } from '@kbn/data-plugin/public'; +import { EuiEmptyPrompt, EuiFlexGroup, EuiLoadingChart } from '@elastic/eui'; +import { isChartSizeEvent } from '@kbn/chart-expressions-common'; +import { APPLY_FILTER_TRIGGER } from '@kbn/data-plugin/public'; import type { DataView } from '@kbn/data-views-plugin/public'; -import { Warnings } from '@kbn/charts-plugin/public'; -import { hasUnsupportedDownsampledAggregationFailure } from '@kbn/search-response-warnings'; +import { EmbeddableEnhancedPluginStart } from '@kbn/embeddable-enhanced-plugin/public'; import { - Adapters, - AttributeService, - Embeddable, - EmbeddableInput, - EmbeddableOutput, - FilterableEmbeddable, - IContainer, - ReferenceOrValueEmbeddable, - SavedObjectEmbeddableInput, + EmbeddableStart, + ReactEmbeddableFactory, + SELECT_RANGE_TRIGGER, } from '@kbn/embeddable-plugin/public'; +import { ExpressionRendererParams, useExpressionRenderer } from '@kbn/expressions-plugin/public'; +import { i18n } from '@kbn/i18n'; +import { dispatchRenderComplete } from '@kbn/kibana-utils-plugin/public'; +import { apiPublishesSettings } from '@kbn/presentation-containers'; import { - ExpressionAstExpression, - ExpressionLoader, - ExpressionRenderError, - IExpressionLoaderParams, -} from '@kbn/expressions-plugin/public'; -import type { RenderMode } from '@kbn/expressions-plugin/common'; -import { DATA_VIEW_SAVED_OBJECT_TYPE } from '@kbn/data-views-plugin/public'; -import { mapAndFlattenFilters } from '@kbn/data-plugin/public'; -import { isChartSizeEvent } from '@kbn/chart-expressions-common'; -import { isFallbackDataView } from '../visualize_app/utils'; -import { VisualizationMissedSavedObjectError } from '../components/visualization_missed_saved_object_error'; -import VisualizationError from '../components/visualization_error'; -import { VISUALIZE_EMBEDDABLE_TYPE } from './constants'; -import { SerializedVis, Vis } from '../vis'; -import { getApplication, getExecutionContext, getExpressions, getUiActions } from '../services'; + apiHasAppContext, + apiHasDisableTriggers, + apiHasExecutionContext, + apiIsOfType, + apiPublishesTimeRange, + apiPublishesTimeslice, + apiPublishesUnifiedSearch, + apiPublishesViewMode, + fetch$, + getUnchangingComparator, + initializeTimeRange, + initializeTitles, + useStateFromPublishingSubject, +} from '@kbn/presentation-publishing'; +import { apiPublishesSearchSession } from '@kbn/presentation-publishing/interfaces/fetch/publishes_search_session'; +import { get, isEmpty, isEqual, isNil, omitBy } from 'lodash'; +import React, { useEffect, useRef } from 'react'; +import { BehaviorSubject, switchMap } from 'rxjs'; +import { VISUALIZE_APP_NAME, VISUALIZE_EMBEDDABLE_TYPE } from '../../common/constants'; import { VIS_EVENT_TO_TRIGGER } from './events'; -import { VisualizeEmbeddableFactoryDeps } from './visualize_embeddable_factory'; -import { getSavedVisualization } from '../utils/saved_visualize_utils'; -import { VisSavedObject } from '../types'; -import { toExpressionAst } from './to_ast'; - -export interface VisualizeEmbeddableConfiguration { - vis: Vis; - indexPatterns?: DataView[]; - editPath: string; - editUrl: string; - capabilities: { visualizeSave: boolean; dashboardSave: boolean; visualizeOpen: boolean }; - deps: VisualizeEmbeddableFactoryDeps; -} - -export interface VisualizeInput extends EmbeddableInput { - vis?: { - colors?: { [key: string]: string }; - }; - savedVis?: SerializedVis; - renderMode?: RenderMode; - table?: unknown; - query?: Query; - filters?: Filter[]; - timeRange?: TimeRange; - timeslice?: [number, number]; -} - -export interface VisualizeOutput extends EmbeddableOutput { - editPath: string; - editApp: string; - editUrl: string; - indexPatterns?: DataView[]; - visTypeName: string; -} - -export type VisualizeSavedObjectAttributes = SavedObjectAttributes & { - title: string; - vis?: Vis; - savedVis?: VisSavedObject; -}; -export type VisualizeByValueInput = { attributes: VisualizeSavedObjectAttributes } & VisualizeInput; -export type VisualizeByReferenceInput = SavedObjectEmbeddableInput & VisualizeInput; - -/** @deprecated - * VisualizeEmbeddable is no longer registered with the legacy embeddable system and is only - * used within the visualize editor. - */ -export class VisualizeEmbeddable - extends Embeddable - implements - ReferenceOrValueEmbeddable, - FilterableEmbeddable -{ - private handler?: ExpressionLoader; - private timefilter: TimefilterContract; - private timeRange?: TimeRange; - private query?: Query; - private filters?: Filter[]; - private searchSessionId?: string; - private syncColors?: boolean; - private syncTooltips?: boolean; - private syncCursor?: boolean; - private embeddableTitle?: string; - private visCustomizations?: Pick; - private subscriptions: Subscription[] = []; - private expression?: ExpressionAstExpression; - private vis: Vis; - private domNode: any; - private warningDomNode: any; - public readonly type = VISUALIZE_EMBEDDABLE_TYPE; - private abortController?: AbortController; - private readonly deps: VisualizeEmbeddableFactoryDeps; - private readonly inspectorAdapters?: Adapters; - private attributeService?: AttributeService< - VisualizeSavedObjectAttributes, - VisualizeByValueInput, - VisualizeByReferenceInput - >; - private expressionVariables: Record | undefined; - private readonly expressionVariablesSubject = new ReplaySubject< - Record | undefined - >(1); - - constructor( - timefilter: TimefilterContract, - { vis, editPath, editUrl, indexPatterns, deps, capabilities }: VisualizeEmbeddableConfiguration, - initialInput: VisualizeInput, - attributeService?: AttributeService< - VisualizeSavedObjectAttributes, - VisualizeByValueInput, - VisualizeByReferenceInput - >, - parent?: IContainer - ) { - super( - initialInput, - { - defaultTitle: vis.title, - defaultDescription: vis.description, - editPath, - editApp: 'visualize', - editUrl, - indexPatterns, - visTypeName: vis.type.name, - }, - parent - ); - this.deps = deps; - this.timefilter = timefilter; - this.syncColors = this.input.syncColors; - this.syncTooltips = this.input.syncTooltips; - this.syncCursor = this.input.syncCursor; - this.searchSessionId = this.input.searchSessionId; - this.query = this.input.query; - this.embeddableTitle = this.getTitle(); - - this.vis = vis; - this.vis.uiState.on('change', this.uiStateChangeHandler); - this.vis.uiState.on('reload', this.reload); - this.attributeService = attributeService; - - if (this.attributeService) { - const readOnly = Boolean(vis.type.disableEdit); - const isByValue = !this.inputIsRefType(initialInput); - const editable = readOnly - ? false - : capabilities.visualizeSave || - (isByValue && capabilities.dashboardSave && capabilities.visualizeOpen); - this.updateOutput({ ...this.getOutput(), editable }); - } - - this.subscriptions.push( - this.getInput$().subscribe(() => { - const isDirty = this.handleChanges(); +import { getCapabilities, getInspector, getUiActions, getUsageCollection } from '../services'; +import { ACTION_CONVERT_TO_LENS } from '../triggers'; +import { urlFor } from '../utils/saved_visualize_utils'; +import type { SerializedVis, Vis } from '../vis'; +import { createVisInstance } from './create_vis_instance'; +import { getExpressionRendererProps } from './get_expression_renderer_props'; +import { saveToLibrary } from './save_to_library'; +import { deserializeState, serializeState } from './state'; +import { + ExtraSavedObjectProperties, + VisualizeApi, + VisualizeOutputState, + VisualizeRuntimeState, + VisualizeSerializedState, + isVisualizeSavedObjectState, +} from './types'; + +export const getVisualizeEmbeddableFactory: (deps: { + embeddableStart: EmbeddableStart; + embeddableEnhancedStart?: EmbeddableEnhancedPluginStart; +}) => ReactEmbeddableFactory = ({ + embeddableStart, + embeddableEnhancedStart, +}) => ({ + type: VISUALIZE_EMBEDDABLE_TYPE, + deserializeState, + buildEmbeddable: async (initialState: unknown, buildApi, uuid, parentApi) => { + // Handle state transfer from legacy visualize editor, which uses the legacy visualize embeddable and doesn't + // produce a snapshot state. If buildEmbeddable is passed only a savedObjectId in the state, this means deserializeState + // was never run, and it needs to be invoked manually + const state = isVisualizeSavedObjectState(initialState) + ? await deserializeState({ + rawState: initialState, + }) + : (initialState as VisualizeRuntimeState); - if (isDirty && this.handler) { - this.updateHandler(); - } - }) + // Initialize dynamic actions + const dynamicActionsApi = embeddableEnhancedStart?.initializeReactEmbeddableDynamicActions( + uuid, + () => titlesApi.panelTitle.getValue(), + state ); + // if it is provided, start the dynamic actions manager + const maybeStopDynamicActions = dynamicActionsApi?.startDynamicActions(); + + const { titlesApi, titleComparators, serializeTitles } = initializeTitles(state); + + // Count renders; mostly used for testing. + const renderCount$ = new BehaviorSubject(0); + const hasRendered$ = new BehaviorSubject(false); + + // Track vis data and initialize it into a vis instance + const serializedVis$ = new BehaviorSubject(state.serializedVis); + const initialVisInstance = await createVisInstance(state.serializedVis); + const vis$ = new BehaviorSubject(initialVisInstance); + + // Track UI state + const onUiStateChange = () => serializedVis$.next(vis$.getValue().serialize()); + initialVisInstance.uiState.on('change', onUiStateChange); + vis$.subscribe((vis) => vis.uiState.on('change', onUiStateChange)); + + // When the serialized vis changes, update the vis instance + serializedVis$ + .pipe( + switchMap(async (serializedVis) => { + const currentVis = vis$.getValue(); + if (currentVis) currentVis.uiState.off('change', onUiStateChange); + const vis = await createVisInstance(serializedVis); + const { params, abortController } = await getExpressionParams(); + return { vis, params, abortController }; + }) + ) + .subscribe(({ vis, params, abortController }) => { + vis$.next(vis); + if (params) expressionParams$.next(params); + expressionAbortController$.next(abortController); + }); - const inspectorAdapters = this.vis.type.inspectorAdapters; - - if (inspectorAdapters) { - this.inspectorAdapters = - typeof inspectorAdapters === 'function' ? inspectorAdapters() : inspectorAdapters; - } - } - - public reportsEmbeddableLoad() { - return true; - } - - public getVis() { - return this.vis; - } - - /** - * Gets the Visualize embeddable's local filters - * @returns Local/panel-level array of filters for Visualize embeddable - */ - public getFilters() { - const filters = this.vis.serialize().data.searchSource?.filter ?? []; - // must clone the filters so that it's not read only, because mapAndFlattenFilters modifies the array - return mapAndFlattenFilters(_.cloneDeep(filters)); - } - - /** - * Gets the Visualize embeddable's local query - * @returns Local/panel-level query for Visualize embeddable - */ - public getQuery() { - return this.vis.serialize().data.searchSource.query; - } - - public getInspectorAdapters = () => { - if (!this.handler || (this.inspectorAdapters && !Object.keys(this.inspectorAdapters).length)) { - return undefined; - } - return this.handler.inspect(); - }; - - public openInspector = () => { - if (!this.handler) return; - - const adapters = this.handler.inspect(); - if (!adapters) return; + // Track visualizations linked to a saved object in the library + const savedObjectId$ = new BehaviorSubject( + state.savedObjectId ?? state.serializedVis.id + ); + const savedObjectProperties$ = new BehaviorSubject( + undefined + ); + const linkedToLibrary$ = new BehaviorSubject(state.linkedToLibrary); - return this.deps.start().plugins.inspector.open(adapters, { - title: - this.getTitle() || - i18n.translate('visualizations.embeddable.inspectorTitle', { - defaultMessage: 'Inspector', - }), + // Track the vis expression + const expressionParams$ = new BehaviorSubject({ + expression: '', }); - }; - - /** - * Transfers all changes in the containerState.customization into - * the uiState of this visualization. - */ - public transferCustomizationsToUiState() { - // Check for changes that need to be forwarded to the uiState - // Since the vis has an own listener on the uiState we don't need to - // pass anything from here to the handler.update method - const visCustomizations = { vis: this.input.vis, table: this.input.table }; - if (visCustomizations.vis || visCustomizations.table) { - if (!_.isEqual(visCustomizations, this.visCustomizations)) { - this.visCustomizations = visCustomizations; - // Turn this off or the uiStateChangeHandler will fire for every modification. - this.vis.uiState.off('change', this.uiStateChangeHandler); - this.vis.uiState.clearAllKeys(); - - Object.entries(visCustomizations).forEach(([key, value]) => { - if (value) { - this.vis.uiState.set(key, value); - } - }); - - this.vis.uiState.on('change', this.uiStateChangeHandler); - } - } else if (this.parent) { - this.vis.uiState.clearAllKeys(); - } - } - private handleChanges(): boolean { - this.transferCustomizationsToUiState(); + const expressionAbortController$ = new BehaviorSubject(new AbortController()); + let getExpressionParams: () => ReturnType = async () => ({ + params: expressionParams$.getValue(), + abortController: expressionAbortController$.getValue(), + }); - let dirty = false; + const { + api: customTimeRangeApi, + serialize: serializeCustomTimeRange, + comparators: customTimeRangeComparators, + } = initializeTimeRange(state); - // Check if timerange has changed - const nextTimeRange = - this.input.timeslice !== undefined - ? { - from: new Date(this.input.timeslice[0]).toISOString(), - to: new Date(this.input.timeslice[1]).toISOString(), - mode: 'absolute' as 'absolute', - } - : this.input.timeRange; - if (!_.isEqual(nextTimeRange, this.timeRange)) { - this.timeRange = _.cloneDeep(nextTimeRange); - dirty = true; - } + const searchSessionId$ = new BehaviorSubject(''); - // Check if filters has changed - if (!onlyDisabledFiltersChanged(this.input.filters, this.filters)) { - this.filters = this.input.filters; - dirty = true; - } + const viewMode$ = apiPublishesViewMode(parentApi) + ? parentApi.viewMode + : new BehaviorSubject('view'); - // Check if query has changed - if (!_.isEqual(this.input.query, this.query)) { - this.query = this.input.query; - dirty = true; - } + const executionContext = apiHasExecutionContext(parentApi) + ? parentApi.executionContext + : undefined; - if (this.searchSessionId !== this.input.searchSessionId) { - this.searchSessionId = this.input.searchSessionId; - dirty = true; - } + const disableTriggers = apiHasDisableTriggers(parentApi) + ? parentApi.disableTriggers + : undefined; - if (this.syncColors !== this.input.syncColors) { - this.syncColors = this.input.syncColors; - dirty = true; - } + const parentApiContext = apiHasAppContext(parentApi) ? parentApi.getAppContext() : undefined; - if (this.syncTooltips !== this.input.syncTooltips) { - this.syncTooltips = this.input.syncTooltips; - dirty = true; - } + const inspectorAdapters$ = new BehaviorSubject>({}); - if (this.syncCursor !== this.input.syncCursor) { - this.syncCursor = this.input.syncCursor; - dirty = true; + // Track data views + let initialDataViews: DataView[] | undefined = []; + if (initialVisInstance.data.indexPattern) + initialDataViews = [initialVisInstance.data.indexPattern]; + if (initialVisInstance.type.getUsedIndexPattern) { + initialDataViews = await initialVisInstance.type.getUsedIndexPattern( + initialVisInstance.params + ); } - if (this.embeddableTitle !== this.getTitle()) { - this.embeddableTitle = this.getTitle(); - dirty = true; - } + const dataLoading$ = new BehaviorSubject(true); - if (this.vis.description && this.domNode) { - this.domNode.setAttribute('data-description', this.vis.description); - } + const defaultPanelTitle = new BehaviorSubject(initialVisInstance.title); - return dirty; - } - - private handleWarnings() { - const warnings: React.ReactNode[] = []; - if (this.getInspectorAdapters()?.requests) { - this.deps - .start() - .plugins.data.search.showWarnings(this.getInspectorAdapters()!.requests!, (warning) => { - if (hasUnsupportedDownsampledAggregationFailure(warning)) { - warnings.push( - i18n.translate('visualizations.embeddable.tsdbRollupWarning', { - defaultMessage: - 'Visualization uses a function that is unsupported by rolled up data. Select a different function or change the time range.', - }) + const api = buildApi( + { + ...customTimeRangeApi, + ...titlesApi, + ...(dynamicActionsApi?.dynamicActionsApi ?? {}), + defaultPanelTitle, + dataLoading: dataLoading$, + dataViews: new BehaviorSubject(initialDataViews), + supportedTriggers: () => [ + ACTION_CONVERT_TO_LENS, + APPLY_FILTER_TRIGGER, + SELECT_RANGE_TRIGGER, + ], + serializeState: () => { + const savedObjectProperties = savedObjectProperties$.getValue(); + return serializeState({ + serializedVis: vis$.getValue().serialize(), + titles: serializeTitles(), + id: savedObjectId$.getValue(), + linkedToLibrary: + // In the visualize editor, linkedToLibrary should always be false to force the full state to be serialized, + // instead of just passing a reference to the linked saved object. Other contexts like dashboards should + // serialize the state with just the savedObjectId so that the current revision of the vis is always used + apiIsOfType(parentApi, VISUALIZE_APP_NAME) ? false : linkedToLibrary$.getValue(), + ...(savedObjectProperties ? { savedObjectProperties } : {}), + ...(dynamicActionsApi?.serializeDynamicActions?.() ?? {}), + ...serializeCustomTimeRange(), + }); + }, + getVis: () => vis$.getValue(), + getInspectorAdapters: () => inspectorAdapters$.getValue(), + getTypeDisplayName: () => + i18n.translate('visualizations.displayName', { + defaultMessage: 'visualization', + }), + onEdit: async () => { + const stateTransferService = embeddableStart.getStateTransfer(); + const visId = savedObjectId$.getValue(); + const editPath = visId ? urlFor(visId) : '#/edit_by_value'; + const parentTimeRange = apiPublishesTimeRange(parentApi) + ? parentApi.timeRange$.getValue() + : {}; + const customTimeRange = customTimeRangeApi.timeRange$.getValue(); + + await stateTransferService.navigateToEditor('visualize', { + path: editPath, + state: { + embeddableId: uuid, + valueInput: { + savedVis: vis$.getValue().serialize(), + title: api.panelTitle?.getValue(), + description: api.panelDescription?.getValue(), + timeRange: customTimeRange ?? parentTimeRange, + }, + originatingApp: parentApiContext?.currentAppId ?? '', + searchSessionId: searchSessionId$.getValue() || undefined, + originatingPath: parentApiContext?.getCurrentPath?.(), + }, + }); + }, + isEditingEnabled: () => { + if (viewMode$.getValue() !== 'edit') return false; + const readOnly = Boolean(vis$.getValue().type.disableEdit); + if (readOnly) return false; + const capabilities = getCapabilities(); + const isByValue = !savedObjectId$.getValue(); + if (isByValue) + return Boolean( + capabilities.dashboard?.showWriteControls && capabilities.visualize?.show ); - return true; - } - if (this.vis.type.suppressWarnings?.()) { - // if the vis type wishes to supress all warnings, return true so the default logic won't pick it up - return true; + else return Boolean(capabilities.visualize?.save); + }, + updateVis: async (visUpdates) => { + const currentSerializedVis = vis$.getValue().serialize(); + serializedVis$.next({ + ...currentSerializedVis, + ...visUpdates, + params: { + ...currentSerializedVis.params, + ...visUpdates.params, + }, + data: { + ...currentSerializedVis.data, + ...visUpdates.data, + }, + } as SerializedVis); + if (visUpdates.title) { + titlesApi.setPanelTitle(visUpdates.title); } - }); - } - - if (this.warningDomNode) { - const { core } = this.deps.start(); - render( - - - , - this.warningDomNode - ); - } - } - - // this is a hack to make editor still work, will be removed once we clean up editor - // @ts-ignore - hasInspector = () => Boolean(this.getInspectorAdapters()); - - onContainerLoading = () => { - this.renderComplete.dispatchInProgress(); - this.updateOutput({ - ...this.getOutput(), - loading: true, - rendered: false, - error: undefined, - }); - }; - - onContainerData = () => { - this.handleWarnings(); - this.updateOutput({ - ...this.getOutput(), - loading: false, - }); - }; - - onContainerRender = () => { - this.renderComplete.dispatchComplete(); - this.updateOutput({ - ...this.getOutput(), - rendered: true, - }); - }; - - onContainerError = (error: ExpressionRenderError) => { - if (this.abortController) { - this.abortController.abort(); - } - this.renderComplete.dispatchError(); - - if (isFallbackDataView(this.vis.data.indexPattern)) { - error = new Error( - i18n.translate('visualizations.missedDataView.errorMessage', { - defaultMessage: `Could not find the {type}: {id}`, - values: { - id: this.vis.data.indexPattern.id ?? '-', - type: this.vis.data.savedSearchId - ? i18n.translate('visualizations.noSearch.label', { - defaultMessage: 'search', - }) - : i18n.translate('visualizations.noDataView.label', { - defaultMessage: 'data view', - }), + }, + openInspector: () => { + const adapters = inspectorAdapters$.getValue(); + if (!adapters) return; + const inspector = getInspector(); + if (!inspector.isAvailable(adapters)) return; + return getInspector().open(adapters, { + title: + titlesApi.panelTitle?.getValue() || + i18n.translate('visualizations.embeddable.inspectorTitle', { + defaultMessage: 'Inspector', + }), + }); + }, + // Library transforms + saveToLibrary: (newTitle: string) => { + titlesApi.setPanelTitle(newTitle); + const { rawState, references } = serializeState({ + serializedVis: vis$.getValue().serialize(), + titles: { + ...serializeTitles(), + title: newTitle, + }, + }); + return saveToLibrary({ + uiState: vis$.getValue().uiState, + rawState: rawState as VisualizeOutputState, + references, + }); + }, + canLinkToLibrary: () => !state.linkedToLibrary, + canUnlinkFromLibrary: () => !!state.linkedToLibrary, + checkForDuplicateTitle: () => false, // Handled by saveToLibrary action + getByValueState: () => ({ + savedVis: vis$.getValue().serialize(), + ...serializeTitles(), + }), + getByReferenceState: (libraryId) => + serializeState({ + serializedVis: vis$.getValue().serialize(), + titles: serializeTitles(), + id: libraryId, + linkedToLibrary: true, + }).rawState, + }, + { + ...titleComparators, + ...customTimeRangeComparators, + ...(dynamicActionsApi?.dynamicActionsComparator ?? { + enhancements: getUnchangingComparator(), + }), + serializedVis: [ + serializedVis$, + (value) => { + serializedVis$.next(value); }, - }) - ); - } - - this.updateOutput({ - ...this.getOutput(), - rendered: true, - error, - }); - }; - - /** - * - * @param {Element} domNode - */ - public async render(domNode: HTMLElement) { - this.timeRange = _.cloneDeep(this.input.timeRange); - - this.transferCustomizationsToUiState(); - - const div = document.createElement('div'); - div.className = `visualize panel-content panel-content--fullWidth`; - domNode.appendChild(div); - - const warningDiv = document.createElement('div'); - warningDiv.className = 'visPanel__warnings'; - domNode.appendChild(warningDiv); - this.warningDomNode = warningDiv; - - this.domNode = div; - super.render(this.domNode); - const { core } = this.deps.start(); - - render( - -
    - -
    -
    , - this.domNode + (a, b) => { + const visA = a + ? { + ...omitBy(a, isEmpty), + data: omitBy(a.data, isNil), + params: omitBy(a.params, isNil), + } + : {}; + const visB = b + ? { + ...omitBy(b, isEmpty), + data: omitBy(b.data, isNil), + params: omitBy(b.params, isNil), + } + : {}; + return isEqual(visA, visB); + }, + ], + savedObjectId: [ + savedObjectId$, + (value) => savedObjectId$.next(value), + (a, b) => { + if (!a && !b) return true; + return a === b; + }, + ], + savedObjectProperties: getUnchangingComparator(), + linkedToLibrary: [linkedToLibrary$, (value) => linkedToLibrary$.next(value)], + } ); - const expressions = getExpressions(); - this.handler = await expressions.loader(this.domNode, undefined, { - renderMode: this.input.renderMode || 'view', - onRenderError: (element: HTMLElement, error: ExpressionRenderError) => { - this.onContainerError(error); - }, - executionContext: this.getExecutionContext(), - }); - - this.subscriptions.push( - this.handler.events$ - .pipe( - mergeMap(async (event) => { - // Visualize doesn't respond to sizing events, so ignore. - if (isChartSizeEvent(event)) { - return; - } - if (!this.input.disableTriggers) { - const triggerId = get(VIS_EVENT_TO_TRIGGER, event.name, VIS_EVENT_TO_TRIGGER.filter); - let context; - - if (triggerId === VIS_EVENT_TO_TRIGGER.applyFilter) { - context = { - embeddable: this, - timeFieldName: this.vis.data.indexPattern?.timeFieldName!, - ...event.data, - }; - } else { - context = { - embeddable: this, - data: { - timeFieldName: this.vis.data.indexPattern?.timeFieldName!, - ...event.data, - }, - }; + const fetchSubscription = fetch$(api) + .pipe( + switchMap(async (data) => { + const unifiedSearch = apiPublishesUnifiedSearch(parentApi) + ? { + query: data.query, + filters: data.filters, } + : {}; + const searchSessionId = apiPublishesSearchSession(parentApi) ? data.searchSessionId : ''; + searchSessionId$.next(searchSessionId); + const settings = apiPublishesSettings(parentApi) + ? { + syncColors: parentApi.settings.syncColors$.getValue(), + syncCursor: parentApi.settings.syncCursor$.getValue(), + syncTooltips: parentApi.settings.syncTooltips$.getValue(), + } + : {}; - await getUiActions().getTrigger(triggerId).exec(context); - } - }) - ) - .subscribe() - ); - - if (this.vis.description) { - div.setAttribute('data-description', this.vis.description); - } - - div.setAttribute('data-test-subj', 'visualizationLoader'); - div.setAttribute('data-shared-item', ''); - - this.subscriptions.push(this.handler.loading$.subscribe(this.onContainerLoading)); - this.subscriptions.push(this.handler.data$.subscribe(this.onContainerData)); - this.subscriptions.push(this.handler.render$.subscribe(this.onContainerRender)); - - this.subscriptions.push( - this.getUpdated$().subscribe(() => { - const { error } = this.getOutput(); - - if (error) { - render(this.renderError(error), this.domNode); - } - }) - ); - - await this.updateHandler(); - } - - private renderError(error: ErrorLike | string) { - const { core } = this.deps.start(); - if (isFallbackDataView(this.vis.data.indexPattern)) { - return ( - - - - ); - } - - return ( - - - - ); - } + dataLoading$.next(true); - public destroy() { - super.destroy(); - this.subscriptions.forEach((s) => s.unsubscribe()); - this.vis.uiState.off('change', this.uiStateChangeHandler); - this.vis.uiState.off('reload', this.reload); + const timeslice = apiPublishesTimeslice(parentApi) + ? parentApi.timeslice$.getValue() + : undefined; - if (this.handler) { - this.handler.destroy(); - this.handler.getElement().remove(); - } - } - - public reload = async () => { - await this.handleVisUpdate(); - }; - - private getExecutionContext() { - const parentContext = this.parent?.getInput().executionContext || getExecutionContext().get(); - const child: KibanaExecutionContext = { - type: 'agg_based', - name: this.vis.type.name, - id: this.vis.id ?? 'new', - description: this.vis.title || this.input.title || this.vis.type.name, - url: this.output.editUrl, - }; + const customTimeRange = customTimeRangeApi.timeRange$.getValue(); + const parentTimeRange = apiPublishesTimeRange(parentApi) ? data.timeRange : undefined; + const timesliceTimeRange = timeslice + ? { + from: new Date(timeslice[0]).toISOString(), + to: new Date(timeslice[1]).toISOString(), + mode: 'absolute' as 'absolute', + } + : undefined; + + // Precedence should be: + // custom time range from state > + // timeslice time range > + // parent API time range from e.g. unified search + const timeRangeToRender = customTimeRange ?? timesliceTimeRange ?? parentTimeRange; + + getExpressionParams = async () => { + return await getExpressionRendererProps({ + unifiedSearch, + vis: vis$.getValue(), + settings, + disableTriggers, + searchSessionId, + parentExecutionContext: executionContext, + abortController: expressionAbortController$.getValue(), + timeRange: timeRangeToRender, + onRender: async (renderCount) => { + if (renderCount === renderCount$.getValue()) return; + renderCount$.next(renderCount); + const visInstance = vis$.getValue(); + const visTypeName = visInstance.type.name; + + let telemetryVisTypeName = visTypeName; + if (visTypeName === 'metrics') { + telemetryVisTypeName = 'legacy_metric'; + } + if (visTypeName === 'pie' && visInstance.params.isDonut) { + telemetryVisTypeName = 'donut'; + } + if ( + visTypeName === 'area' && + visInstance.params.seriesParams.some( + (seriesParams: { mode: string }) => seriesParams.mode === 'stacked' + ) + ) { + telemetryVisTypeName = 'area_stacked'; + } + + getUsageCollection().reportUiCounter( + executionContext?.type ?? '', + 'count', + `render_agg_based_${telemetryVisTypeName}` + ); + + if (hasRendered$.getValue() === true) return; + hasRendered$.next(true); + hasRendered$.complete(); + }, + onEvent: async (event) => { + // Visualize doesn't respond to sizing events, so ignore. + if (isChartSizeEvent(event)) { + return; + } + const currentVis = vis$.getValue(); + if (!disableTriggers) { + const triggerId = get( + VIS_EVENT_TO_TRIGGER, + event.name, + VIS_EVENT_TO_TRIGGER.filter + ); + let context; + + if (triggerId === VIS_EVENT_TO_TRIGGER.applyFilter) { + context = { + embeddable: api, + timeFieldName: currentVis.data.indexPattern?.timeFieldName!, + ...event.data, + }; + } else { + context = { + embeddable: api, + data: { + timeFieldName: currentVis.data.indexPattern?.timeFieldName!, + ...event.data, + }, + }; + } + await getUiActions().getTrigger(triggerId).exec(context); + } + }, + onData: (_, inspectorAdapters) => { + inspectorAdapters$.next( + typeof inspectorAdapters === 'function' ? inspectorAdapters() : inspectorAdapters + ); + dataLoading$.next(false); + }, + }); + }; + return await getExpressionParams(); + }) + ) + .subscribe(({ params, abortController }) => { + if (params) expressionParams$.next(params); + expressionAbortController$.next(abortController); + }); return { - ...parentContext, - child, - }; - } - - private async updateHandler() { - const context = this.getExecutionContext(); - - this.expressionVariables = await this.vis.type.getExpressionVariables?.( - this.vis, - this.timefilter - ); - - this.expressionVariablesSubject.next(this.expressionVariables); - - const expressionParams: IExpressionLoaderParams = { - searchContext: { - timeRange: this.timeRange, - query: this.input.query, - filters: this.input.filters, - disableWarningToasts: true, - }, - variables: { - embeddableTitle: this.getTitle(), - ...this.expressionVariables, + api, + Component: () => { + const expressionParams = useStateFromPublishingSubject(expressionParams$); + const renderCount = useStateFromPublishingSubject(renderCount$); + const hasRendered = useStateFromPublishingSubject(hasRendered$); + const domNode = useRef(null); + const { error, isLoading } = useExpressionRenderer(domNode, expressionParams); + + useEffect(() => { + return () => { + fetchSubscription.unsubscribe(); + maybeStopDynamicActions?.stopDynamicActions(); + }; + }, []); + + useEffect(() => { + if (hasRendered && domNode.current) { + dispatchRenderComplete(domNode.current); + } + }, [hasRendered]); + + return ( +
    + {/* Replicate the loading state for the expression renderer to avoid FOUC */} + + {isLoading && } + {!isLoading && error && ( + + {i18n.translate('visualizations.embeddable.errorTitle', { + defaultMessage: 'Unable to load visualization ', + })} + + } + body={ +

    + {error.name}: {error.message} +

    + } + /> + )} +
    +
    + ); }, - searchSessionId: this.input.searchSessionId, - syncColors: this.input.syncColors, - syncTooltips: this.input.syncTooltips, - syncCursor: this.input.syncCursor, - uiState: this.vis.uiState, - interactive: !this.input.disableTriggers, - inspectorAdapters: this.inspectorAdapters, - executionContext: context, - }; - if (this.abortController) { - this.abortController.abort(); - } - this.abortController = new AbortController(); - const abortController = this.abortController; - - try { - this.expression = await toExpressionAst(this.vis, { - timefilter: this.timefilter, - timeRange: this.timeRange, - abortSignal: this.abortController!.signal, - }); - } catch (e) { - this.onContainerError(e); - } - - if (this.handler && !abortController.signal.aborted) { - this.handler.update(this.expression, expressionParams); - } - } - - private handleVisUpdate = async () => { - this.handleChanges(); - await this.updateHandler(); - }; - - private uiStateChangeHandler = () => { - this.updateInput({ - ...this.vis.uiState.toJSON(), - }); - }; - - public supportedTriggers(): string[] { - return this.vis.type.getSupportedTriggers?.(this.vis.params) ?? []; - } - - public getExpressionVariables$() { - return this.expressionVariablesSubject.asObservable(); - } - - public getExpressionVariables() { - return this.expressionVariables; - } - - inputIsRefType = (input: VisualizeInput): input is VisualizeByReferenceInput => { - if (!this.attributeService) { - throw new Error('AttributeService must be defined for getInputAsRefType'); - } - return this.attributeService.inputIsRefType(input as VisualizeByReferenceInput); - }; - - getInputAsValueType = async (): Promise => { - const input = { - savedVis: this.vis.serialize(), - }; - delete input.savedVis.id; - _.unset(input, 'savedVis.title'); - return new Promise((resolve) => { - resolve({ ...(input as VisualizeByValueInput) }); - }); - }; - - getInputAsRefType = async (): Promise => { - const { plugins, core } = this.deps.start(); - const { data, spaces, savedObjectsTaggingOss } = plugins; - const savedVis = await getSavedVisualization({ - search: data.search, - dataViews: data.dataViews, - spaces, - savedObjectsTagging: savedObjectsTaggingOss?.getTaggingApi(), - ...core, - }); - if (!savedVis) { - throw new Error('Error creating a saved vis object'); - } - if (!this.attributeService) { - throw new Error('AttributeService must be defined for getInputAsRefType'); - } - const saveModalTitle = this.getTitle() - ? this.getTitle() - : i18n.translate('visualizations.embeddable.placeholderTitle', { - defaultMessage: 'Placeholder Title', - }); - // @ts-ignore - const attributes: VisualizeSavedObjectAttributes = { - savedVis, - vis: this.vis, - title: this.vis.title, }; - return this.attributeService.getInputAsRefType( - { - id: this.id, - attributes, - }, - { showSaveModal: true, saveModalTitle } - ); - }; -} + }, +}); diff --git a/src/plugins/visualizations/public/index.ts b/src/plugins/visualizations/public/index.ts index 09048ba87d83b..3de1bfc01f2ef 100644 --- a/src/plugins/visualizations/public/index.ts +++ b/src/plugins/visualizations/public/index.ts @@ -10,7 +10,7 @@ import { PublicContract } from '@kbn/utility-types'; import { PluginInitializerContext } from '@kbn/core/public'; import { VisualizationsPlugin, VisualizationsSetup, VisualizationsStart } from './plugin'; -import type { VisualizeEmbeddableFactory, VisualizeEmbeddable } from './embeddable'; +import type { VisualizeEmbeddableFactory, VisualizeEmbeddable } from './legacy/embeddable'; export function plugin(initializerContext: PluginInitializerContext) { return new VisualizationsPlugin(initializerContext); @@ -18,11 +18,8 @@ export function plugin(initializerContext: PluginInitializerContext) { /** @public static code */ export { TypesService } from './vis_types/types_service'; -export { - apiHasVisualizeConfig, - VIS_EVENT_TO_TRIGGER, - COMMON_VISUALIZATION_GROUPING, -} from './embeddable'; +export { VIS_EVENT_TO_TRIGGER } from './embeddable'; +export { apiHasVisualizeConfig, COMMON_VISUALIZATION_GROUPING } from './legacy/embeddable'; export { VisualizationContainer } from './components'; export { getVisSchemas } from './vis_schemas'; @@ -38,13 +35,13 @@ export type { VisualizationClient, SerializableAttributes, } from './vis_types'; -export type { VisualizeEditorInput } from './react_embeddable/types'; +export type { VisualizeEditorInput } from './embeddable/types'; export type { Vis, SerializedVis, SerializedVisData, VisData } from './vis'; export type VisualizeEmbeddableFactoryContract = PublicContract; export type VisualizeEmbeddableContract = PublicContract; export type { SchemaConfig } from '../common/types'; export { updateOldState } from './legacy/vis_update_state'; -export type { VisualizeInput, VisualizeEmbeddable, HasVisualizeConfig } from './embeddable'; +export type { VisualizeInput, VisualizeEmbeddable, HasVisualizeConfig } from './legacy/embeddable'; export type { PersistedState } from './persisted_state'; export type { ISavedVis, diff --git a/src/plugins/visualizations/public/embeddable/constants.ts b/src/plugins/visualizations/public/legacy/embeddable/constants.ts similarity index 91% rename from src/plugins/visualizations/public/embeddable/constants.ts rename to src/plugins/visualizations/public/legacy/embeddable/constants.ts index 85c8554265541..79d87ec59b1e1 100644 --- a/src/plugins/visualizations/public/embeddable/constants.ts +++ b/src/plugins/visualizations/public/legacy/embeddable/constants.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; -export { VISUALIZE_EMBEDDABLE_TYPE } from '../../common/constants'; +export { VISUALIZE_EMBEDDABLE_TYPE } from '../../../common/constants'; export const COMMON_VISUALIZATION_GROUPING = [ { diff --git a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts b/src/plugins/visualizations/public/legacy/embeddable/create_vis_embeddable_from_object.ts similarity index 94% rename from src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts rename to src/plugins/visualizations/public/legacy/embeddable/create_vis_embeddable_from_object.ts index b496be0a9e810..69ed12302f4ec 100644 --- a/src/plugins/visualizations/public/embeddable/create_vis_embeddable_from_object.ts +++ b/src/plugins/visualizations/public/legacy/embeddable/create_vis_embeddable_from_object.ts @@ -9,7 +9,7 @@ import { IContainer, ErrorEmbeddable, AttributeService } from '@kbn/embeddable-plugin/public'; import type { DataView } from '@kbn/data-views-plugin/public'; -import { Vis } from '../types'; +import { Vis } from '../../types'; import type { VisualizeInput, VisualizeEmbeddable, @@ -17,8 +17,8 @@ import type { VisualizeByReferenceInput, VisualizeSavedObjectAttributes, } from './visualize_embeddable'; -import { getHttp, getTimeFilter, getCapabilities } from '../services'; -import { urlFor } from '../utils/saved_visualize_utils'; +import { getHttp, getTimeFilter, getCapabilities } from '../../services'; +import { urlFor } from '../../utils/saved_visualize_utils'; import { VisualizeEmbeddableFactoryDeps } from './visualize_embeddable_factory'; import { createVisualizeEmbeddableAsync } from './visualize_embeddable_async'; diff --git a/src/plugins/visualizations/public/embeddable/embeddables.scss b/src/plugins/visualizations/public/legacy/embeddable/embeddables.scss similarity index 100% rename from src/plugins/visualizations/public/embeddable/embeddables.scss rename to src/plugins/visualizations/public/legacy/embeddable/embeddables.scss diff --git a/src/plugins/visualizations/public/legacy/embeddable/index.ts b/src/plugins/visualizations/public/legacy/embeddable/index.ts new file mode 100644 index 0000000000000..6afee494e6f4f --- /dev/null +++ b/src/plugins/visualizations/public/legacy/embeddable/index.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", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +export { VisualizeEmbeddableFactory } from './visualize_embeddable_factory'; +export { VISUALIZE_EMBEDDABLE_TYPE, COMMON_VISUALIZATION_GROUPING } from './constants'; +export { createVisEmbeddableFromObject } from './create_vis_embeddable_from_object'; + +export type { VisualizeEmbeddable, VisualizeInput } from './visualize_embeddable'; +export { + type HasVisualizeConfig, + apiHasVisualizeConfig, +} from '../../embeddable/interfaces/has_visualize_config'; diff --git a/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx b/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx new file mode 100644 index 0000000000000..85166441a1634 --- /dev/null +++ b/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable.tsx @@ -0,0 +1,717 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +import _, { get } from 'lodash'; +import { Subscription, ReplaySubject, mergeMap } from 'rxjs'; +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { render } from 'react-dom'; +import { EuiLoadingChart } from '@elastic/eui'; +import { Filter, onlyDisabledFiltersChanged, Query, TimeRange } from '@kbn/es-query'; +import type { KibanaExecutionContext, SavedObjectAttributes } from '@kbn/core/public'; +import type { ErrorLike } from '@kbn/expressions-plugin/common'; +import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; +import { TimefilterContract } from '@kbn/data-plugin/public'; +import type { DataView } from '@kbn/data-views-plugin/public'; +import { Warnings } from '@kbn/charts-plugin/public'; +import { hasUnsupportedDownsampledAggregationFailure } from '@kbn/search-response-warnings'; +import { + Adapters, + AttributeService, + Embeddable, + EmbeddableInput, + EmbeddableOutput, + FilterableEmbeddable, + IContainer, + ReferenceOrValueEmbeddable, + SavedObjectEmbeddableInput, +} from '@kbn/embeddable-plugin/public'; +import { + ExpressionAstExpression, + ExpressionLoader, + ExpressionRenderError, + IExpressionLoaderParams, +} from '@kbn/expressions-plugin/public'; +import type { RenderMode } from '@kbn/expressions-plugin/common'; +import { DATA_VIEW_SAVED_OBJECT_TYPE } from '@kbn/data-views-plugin/public'; +import { mapAndFlattenFilters } from '@kbn/data-plugin/public'; +import { isChartSizeEvent } from '@kbn/chart-expressions-common'; +import { isFallbackDataView } from '../../visualize_app/utils'; +import { VisualizationMissedSavedObjectError } from '../../components/visualization_missed_saved_object_error'; +import VisualizationError from '../../components/visualization_error'; +import { VISUALIZE_EMBEDDABLE_TYPE } from './constants'; +import { SerializedVis, Vis } from '../../vis'; +import { getApplication, getExecutionContext, getExpressions, getUiActions } from '../../services'; +import { VIS_EVENT_TO_TRIGGER } from '../../embeddable/events'; +import { VisualizeEmbeddableFactoryDeps } from './visualize_embeddable_factory'; +import { getSavedVisualization } from '../../utils/saved_visualize_utils'; +import { VisSavedObject } from '../../types'; +import { toExpressionAst } from '../../embeddable/to_ast'; + +export interface VisualizeEmbeddableConfiguration { + vis: Vis; + indexPatterns?: DataView[]; + editPath: string; + editUrl: string; + capabilities: { visualizeSave: boolean; dashboardSave: boolean; visualizeOpen: boolean }; + deps: VisualizeEmbeddableFactoryDeps; +} + +export interface VisualizeInput extends EmbeddableInput { + vis?: { + colors?: { [key: string]: string }; + }; + savedVis?: SerializedVis; + renderMode?: RenderMode; + table?: unknown; + query?: Query; + filters?: Filter[]; + timeRange?: TimeRange; + timeslice?: [number, number]; +} + +export interface VisualizeOutput extends EmbeddableOutput { + editPath: string; + editApp: string; + editUrl: string; + indexPatterns?: DataView[]; + visTypeName: string; +} + +export type VisualizeSavedObjectAttributes = SavedObjectAttributes & { + title: string; + vis?: Vis; + savedVis?: VisSavedObject; +}; +export type VisualizeByValueInput = { attributes: VisualizeSavedObjectAttributes } & VisualizeInput; +export type VisualizeByReferenceInput = SavedObjectEmbeddableInput & VisualizeInput; + +/** @deprecated + * VisualizeEmbeddable is no longer registered with the legacy embeddable system and is only + * used within the visualize editor. + */ +export class VisualizeEmbeddable + extends Embeddable + implements + ReferenceOrValueEmbeddable, + FilterableEmbeddable +{ + private handler?: ExpressionLoader; + private timefilter: TimefilterContract; + private timeRange?: TimeRange; + private query?: Query; + private filters?: Filter[]; + private searchSessionId?: string; + private syncColors?: boolean; + private syncTooltips?: boolean; + private syncCursor?: boolean; + private embeddableTitle?: string; + private visCustomizations?: Pick; + private subscriptions: Subscription[] = []; + private expression?: ExpressionAstExpression; + private vis: Vis; + private domNode: any; + private warningDomNode: any; + public readonly type = VISUALIZE_EMBEDDABLE_TYPE; + private abortController?: AbortController; + private readonly deps: VisualizeEmbeddableFactoryDeps; + private readonly inspectorAdapters?: Adapters; + private attributeService?: AttributeService< + VisualizeSavedObjectAttributes, + VisualizeByValueInput, + VisualizeByReferenceInput + >; + private expressionVariables: Record | undefined; + private readonly expressionVariablesSubject = new ReplaySubject< + Record | undefined + >(1); + + constructor( + timefilter: TimefilterContract, + { vis, editPath, editUrl, indexPatterns, deps, capabilities }: VisualizeEmbeddableConfiguration, + initialInput: VisualizeInput, + attributeService?: AttributeService< + VisualizeSavedObjectAttributes, + VisualizeByValueInput, + VisualizeByReferenceInput + >, + parent?: IContainer + ) { + super( + initialInput, + { + defaultTitle: vis.title, + defaultDescription: vis.description, + editPath, + editApp: 'visualize', + editUrl, + indexPatterns, + visTypeName: vis.type.name, + }, + parent + ); + this.deps = deps; + this.timefilter = timefilter; + this.syncColors = this.input.syncColors; + this.syncTooltips = this.input.syncTooltips; + this.syncCursor = this.input.syncCursor; + this.searchSessionId = this.input.searchSessionId; + this.query = this.input.query; + this.embeddableTitle = this.getTitle(); + + this.vis = vis; + this.vis.uiState.on('change', this.uiStateChangeHandler); + this.vis.uiState.on('reload', this.reload); + this.attributeService = attributeService; + + if (this.attributeService) { + const readOnly = Boolean(vis.type.disableEdit); + const isByValue = !this.inputIsRefType(initialInput); + const editable = readOnly + ? false + : capabilities.visualizeSave || + (isByValue && capabilities.dashboardSave && capabilities.visualizeOpen); + this.updateOutput({ ...this.getOutput(), editable }); + } + + this.subscriptions.push( + this.getInput$().subscribe(() => { + const isDirty = this.handleChanges(); + + if (isDirty && this.handler) { + this.updateHandler(); + } + }) + ); + + const inspectorAdapters = this.vis.type.inspectorAdapters; + + if (inspectorAdapters) { + this.inspectorAdapters = + typeof inspectorAdapters === 'function' ? inspectorAdapters() : inspectorAdapters; + } + } + + public reportsEmbeddableLoad() { + return true; + } + + public getVis() { + return this.vis; + } + + /** + * Gets the Visualize embeddable's local filters + * @returns Local/panel-level array of filters for Visualize embeddable + */ + public getFilters() { + const filters = this.vis.serialize().data.searchSource?.filter ?? []; + // must clone the filters so that it's not read only, because mapAndFlattenFilters modifies the array + return mapAndFlattenFilters(_.cloneDeep(filters)); + } + + /** + * Gets the Visualize embeddable's local query + * @returns Local/panel-level query for Visualize embeddable + */ + public getQuery() { + return this.vis.serialize().data.searchSource.query; + } + + public getInspectorAdapters = () => { + if (!this.handler || (this.inspectorAdapters && !Object.keys(this.inspectorAdapters).length)) { + return undefined; + } + return this.handler.inspect(); + }; + + public openInspector = () => { + if (!this.handler) return; + + const adapters = this.handler.inspect(); + if (!adapters) return; + + return this.deps.start().plugins.inspector.open(adapters, { + title: + this.getTitle() || + i18n.translate('visualizations.embeddable.inspectorTitle', { + defaultMessage: 'Inspector', + }), + }); + }; + + /** + * Transfers all changes in the containerState.customization into + * the uiState of this visualization. + */ + public transferCustomizationsToUiState() { + // Check for changes that need to be forwarded to the uiState + // Since the vis has an own listener on the uiState we don't need to + // pass anything from here to the handler.update method + const visCustomizations = { vis: this.input.vis, table: this.input.table }; + if (visCustomizations.vis || visCustomizations.table) { + if (!_.isEqual(visCustomizations, this.visCustomizations)) { + this.visCustomizations = visCustomizations; + // Turn this off or the uiStateChangeHandler will fire for every modification. + this.vis.uiState.off('change', this.uiStateChangeHandler); + this.vis.uiState.clearAllKeys(); + + Object.entries(visCustomizations).forEach(([key, value]) => { + if (value) { + this.vis.uiState.set(key, value); + } + }); + + this.vis.uiState.on('change', this.uiStateChangeHandler); + } + } else if (this.parent) { + this.vis.uiState.clearAllKeys(); + } + } + + private handleChanges(): boolean { + this.transferCustomizationsToUiState(); + + let dirty = false; + + // Check if timerange has changed + const nextTimeRange = + this.input.timeslice !== undefined + ? { + from: new Date(this.input.timeslice[0]).toISOString(), + to: new Date(this.input.timeslice[1]).toISOString(), + mode: 'absolute' as 'absolute', + } + : this.input.timeRange; + if (!_.isEqual(nextTimeRange, this.timeRange)) { + this.timeRange = _.cloneDeep(nextTimeRange); + dirty = true; + } + + // Check if filters has changed + if (!onlyDisabledFiltersChanged(this.input.filters, this.filters)) { + this.filters = this.input.filters; + dirty = true; + } + + // Check if query has changed + if (!_.isEqual(this.input.query, this.query)) { + this.query = this.input.query; + dirty = true; + } + + if (this.searchSessionId !== this.input.searchSessionId) { + this.searchSessionId = this.input.searchSessionId; + dirty = true; + } + + if (this.syncColors !== this.input.syncColors) { + this.syncColors = this.input.syncColors; + dirty = true; + } + + if (this.syncTooltips !== this.input.syncTooltips) { + this.syncTooltips = this.input.syncTooltips; + dirty = true; + } + + if (this.syncCursor !== this.input.syncCursor) { + this.syncCursor = this.input.syncCursor; + dirty = true; + } + + if (this.embeddableTitle !== this.getTitle()) { + this.embeddableTitle = this.getTitle(); + dirty = true; + } + + if (this.vis.description && this.domNode) { + this.domNode.setAttribute('data-description', this.vis.description); + } + + return dirty; + } + + private handleWarnings() { + const warnings: React.ReactNode[] = []; + if (this.getInspectorAdapters()?.requests) { + this.deps + .start() + .plugins.data.search.showWarnings(this.getInspectorAdapters()!.requests!, (warning) => { + if (hasUnsupportedDownsampledAggregationFailure(warning)) { + warnings.push( + i18n.translate('visualizations.embeddable.tsdbRollupWarning', { + defaultMessage: + 'Visualization uses a function that is unsupported by rolled up data. Select a different function or change the time range.', + }) + ); + return true; + } + if (this.vis.type.suppressWarnings?.()) { + // if the vis type wishes to supress all warnings, return true so the default logic won't pick it up + return true; + } + }); + } + + if (this.warningDomNode) { + const { core } = this.deps.start(); + render( + + + , + this.warningDomNode + ); + } + } + + // this is a hack to make editor still work, will be removed once we clean up editor + // @ts-ignore + hasInspector = () => Boolean(this.getInspectorAdapters()); + + onContainerLoading = () => { + this.renderComplete.dispatchInProgress(); + this.updateOutput({ + ...this.getOutput(), + loading: true, + rendered: false, + error: undefined, + }); + }; + + onContainerData = () => { + this.handleWarnings(); + this.updateOutput({ + ...this.getOutput(), + loading: false, + }); + }; + + onContainerRender = () => { + this.renderComplete.dispatchComplete(); + this.updateOutput({ + ...this.getOutput(), + rendered: true, + }); + }; + + onContainerError = (error: ExpressionRenderError) => { + if (this.abortController) { + this.abortController.abort(); + } + this.renderComplete.dispatchError(); + + if (isFallbackDataView(this.vis.data.indexPattern)) { + error = new Error( + i18n.translate('visualizations.missedDataView.errorMessage', { + defaultMessage: `Could not find the {type}: {id}`, + values: { + id: this.vis.data.indexPattern.id ?? '-', + type: this.vis.data.savedSearchId + ? i18n.translate('visualizations.noSearch.label', { + defaultMessage: 'search', + }) + : i18n.translate('visualizations.noDataView.label', { + defaultMessage: 'data view', + }), + }, + }) + ); + } + + this.updateOutput({ + ...this.getOutput(), + rendered: true, + error, + }); + }; + + /** + * + * @param {Element} domNode + */ + public async render(domNode: HTMLElement) { + this.timeRange = _.cloneDeep(this.input.timeRange); + + this.transferCustomizationsToUiState(); + + const div = document.createElement('div'); + div.className = `visualize panel-content panel-content--fullWidth`; + domNode.appendChild(div); + + const warningDiv = document.createElement('div'); + warningDiv.className = 'visPanel__warnings'; + domNode.appendChild(warningDiv); + this.warningDomNode = warningDiv; + + this.domNode = div; + super.render(this.domNode); + const { core } = this.deps.start(); + + render( + +
    + +
    +
    , + this.domNode + ); + + const expressions = getExpressions(); + this.handler = await expressions.loader(this.domNode, undefined, { + renderMode: this.input.renderMode || 'view', + onRenderError: (element: HTMLElement, error: ExpressionRenderError) => { + this.onContainerError(error); + }, + executionContext: this.getExecutionContext(), + }); + + this.subscriptions.push( + this.handler.events$ + .pipe( + mergeMap(async (event) => { + // Visualize doesn't respond to sizing events, so ignore. + if (isChartSizeEvent(event)) { + return; + } + if (!this.input.disableTriggers) { + const triggerId = get(VIS_EVENT_TO_TRIGGER, event.name, VIS_EVENT_TO_TRIGGER.filter); + let context; + + if (triggerId === VIS_EVENT_TO_TRIGGER.applyFilter) { + context = { + embeddable: this, + timeFieldName: this.vis.data.indexPattern?.timeFieldName!, + ...event.data, + }; + } else { + context = { + embeddable: this, + data: { + timeFieldName: this.vis.data.indexPattern?.timeFieldName!, + ...event.data, + }, + }; + } + + await getUiActions().getTrigger(triggerId).exec(context); + } + }) + ) + .subscribe() + ); + + if (this.vis.description) { + div.setAttribute('data-description', this.vis.description); + } + + div.setAttribute('data-test-subj', 'visualizationLoader'); + div.setAttribute('data-shared-item', ''); + + this.subscriptions.push(this.handler.loading$.subscribe(this.onContainerLoading)); + this.subscriptions.push(this.handler.data$.subscribe(this.onContainerData)); + this.subscriptions.push(this.handler.render$.subscribe(this.onContainerRender)); + + this.subscriptions.push( + this.getUpdated$().subscribe(() => { + const { error } = this.getOutput(); + + if (error) { + render(this.renderError(error), this.domNode); + } + }) + ); + + await this.updateHandler(); + } + + private renderError(error: ErrorLike | string) { + const { core } = this.deps.start(); + if (isFallbackDataView(this.vis.data.indexPattern)) { + return ( + + + + ); + } + + return ( + + + + ); + } + + public destroy() { + super.destroy(); + this.subscriptions.forEach((s) => s.unsubscribe()); + this.vis.uiState.off('change', this.uiStateChangeHandler); + this.vis.uiState.off('reload', this.reload); + + if (this.handler) { + this.handler.destroy(); + this.handler.getElement().remove(); + } + } + + public reload = async () => { + await this.handleVisUpdate(); + }; + + private getExecutionContext() { + const parentContext = this.parent?.getInput().executionContext || getExecutionContext().get(); + const child: KibanaExecutionContext = { + type: 'agg_based', + name: this.vis.type.name, + id: this.vis.id ?? 'new', + description: this.vis.title || this.input.title || this.vis.type.name, + url: this.output.editUrl, + }; + + return { + ...parentContext, + child, + }; + } + + private async updateHandler() { + const context = this.getExecutionContext(); + + this.expressionVariables = await this.vis.type.getExpressionVariables?.( + this.vis, + this.timefilter + ); + + this.expressionVariablesSubject.next(this.expressionVariables); + + const expressionParams: IExpressionLoaderParams = { + searchContext: { + timeRange: this.timeRange, + query: this.input.query, + filters: this.input.filters, + disableWarningToasts: true, + }, + variables: { + embeddableTitle: this.getTitle(), + ...this.expressionVariables, + }, + searchSessionId: this.input.searchSessionId, + syncColors: this.input.syncColors, + syncTooltips: this.input.syncTooltips, + syncCursor: this.input.syncCursor, + uiState: this.vis.uiState, + interactive: !this.input.disableTriggers, + inspectorAdapters: this.inspectorAdapters, + executionContext: context, + }; + if (this.abortController) { + this.abortController.abort(); + } + this.abortController = new AbortController(); + const abortController = this.abortController; + + try { + this.expression = await toExpressionAst(this.vis, { + timefilter: this.timefilter, + timeRange: this.timeRange, + abortSignal: this.abortController!.signal, + }); + } catch (e) { + this.onContainerError(e); + } + + if (this.handler && !abortController.signal.aborted) { + this.handler.update(this.expression, expressionParams); + } + } + + private handleVisUpdate = async () => { + this.handleChanges(); + await this.updateHandler(); + }; + + private uiStateChangeHandler = () => { + this.updateInput({ + ...this.vis.uiState.toJSON(), + }); + }; + + public supportedTriggers(): string[] { + return this.vis.type.getSupportedTriggers?.(this.vis.params) ?? []; + } + + public getExpressionVariables$() { + return this.expressionVariablesSubject.asObservable(); + } + + public getExpressionVariables() { + return this.expressionVariables; + } + + inputIsRefType = (input: VisualizeInput): input is VisualizeByReferenceInput => { + if (!this.attributeService) { + throw new Error('AttributeService must be defined for getInputAsRefType'); + } + return this.attributeService.inputIsRefType(input as VisualizeByReferenceInput); + }; + + getInputAsValueType = async (): Promise => { + const input = { + savedVis: this.vis.serialize(), + }; + delete input.savedVis.id; + _.unset(input, 'savedVis.title'); + return new Promise((resolve) => { + resolve({ ...(input as VisualizeByValueInput) }); + }); + }; + + getInputAsRefType = async (): Promise => { + const { plugins, core } = this.deps.start(); + const { data, spaces, savedObjectsTaggingOss } = plugins; + const savedVis = await getSavedVisualization({ + search: data.search, + dataViews: data.dataViews, + spaces, + savedObjectsTagging: savedObjectsTaggingOss?.getTaggingApi(), + ...core, + }); + if (!savedVis) { + throw new Error('Error creating a saved vis object'); + } + if (!this.attributeService) { + throw new Error('AttributeService must be defined for getInputAsRefType'); + } + const saveModalTitle = this.getTitle() + ? this.getTitle() + : i18n.translate('visualizations.embeddable.placeholderTitle', { + defaultMessage: 'Placeholder Title', + }); + // @ts-ignore + const attributes: VisualizeSavedObjectAttributes = { + savedVis, + vis: this.vis, + title: this.vis.title, + }; + return this.attributeService.getInputAsRefType( + { + id: this.id, + attributes, + }, + { showSaveModal: true, saveModalTitle } + ); + }; +} diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable_async.ts b/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_async.ts similarity index 100% rename from src/plugins/visualizations/public/embeddable/visualize_embeddable_async.ts rename to src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_async.ts diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.test.ts b/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.test.ts similarity index 100% rename from src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.test.ts rename to src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.test.ts diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx b/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx similarity index 96% rename from src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx rename to src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx index e38924a76ef28..7594c8d42f2ea 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx +++ b/src/plugins/visualizations/public/legacy/embeddable/visualize_embeddable_factory.tsx @@ -28,7 +28,7 @@ import { AttributeService, } from '@kbn/embeddable-plugin/public'; import type { StartServicesGetter } from '@kbn/kibana-utils-plugin/public'; -import { checkForDuplicateTitle } from '../utils/saved_objects_utils/check_for_duplicate_title'; +import { checkForDuplicateTitle } from '../../utils/saved_objects_utils/check_for_duplicate_title'; import type { VisualizeByReferenceInput, VisualizeByValueInput, @@ -38,24 +38,24 @@ import type { VisualizeSavedObjectAttributes, } from './visualize_embeddable'; import { VISUALIZE_EMBEDDABLE_TYPE } from './constants'; -import type { SerializedVis, Vis } from '../vis'; -import { createVisAsync } from '../vis_async'; -import { getCapabilities, getTypes } from '../services'; -import { showNewVisModal } from '../wizard'; +import type { SerializedVis, Vis } from '../../vis'; +import { createVisAsync } from '../../vis_async'; +import { getCapabilities, getTypes } from '../../services'; +import { showNewVisModal } from '../../wizard'; import { convertToSerializedVis, getSavedVisualization, saveVisualization, getFullPath, -} from '../utils/saved_visualize_utils'; +} from '../../utils/saved_visualize_utils'; import { extractControlsReferences, extractTimeSeriesReferences, injectTimeSeriesReferences, injectControlsReferences, -} from '../utils/saved_visualization_references'; +} from '../../utils/saved_visualization_references'; import { createVisEmbeddableFromObject } from './create_vis_embeddable_from_object'; -import type { VisualizationsStartDeps } from '../plugin'; +import type { VisualizationsStartDeps } from '../../plugin'; interface VisualizationAttributes extends SavedObjectAttributes { title: string; diff --git a/src/plugins/visualizations/public/plugin.ts b/src/plugins/visualizations/public/plugin.ts index e8b13639fa092..24a2c488e0f79 100644 --- a/src/plugins/visualizations/public/plugin.ts +++ b/src/plugins/visualizations/public/plugin.ts @@ -126,7 +126,8 @@ import { VisualizationSavedObjectAttributes, } from '../common/content_management'; import { AddAggVisualizationPanelAction } from './actions/add_agg_vis_action'; -import { VisualizeSerializedState } from './react_embeddable/types'; +import type { VisualizeSerializedState } from './embeddable/types'; +import { getVisualizeEmbeddableFactoryLazy } from './embeddable'; /** * Interface for this plugin's returned setup/start contracts. @@ -308,7 +309,10 @@ export class VisualizationsPlugin * this should be replaced to use only scoped history after moving legacy apps to browser routing */ const history = createHashHistory(); - const { createVisEmbeddableFromObject } = await import('./embeddable'); + const [{ createVisEmbeddableFromObject }, { renderApp }] = await Promise.all([ + import('./legacy/embeddable'), + import('./visualize_app'), + ]); const services: VisualizeServices = { ...coreStart, history, @@ -352,7 +356,6 @@ export class VisualizationsPlugin }; params.element.classList.add('visAppWrapper'); - const { renderApp } = await import('./visualize_app'); if (pluginsStart.screenshotMode.isScreenshotMode()) { params.element.classList.add('visEditorScreenshotModeActive'); // @ts-expect-error TS error, cannot find type declaration for scss @@ -407,7 +410,7 @@ export class VisualizationsPlugin plugins: { embeddable: embeddableStart, embeddableEnhanced: embeddableEnhancedStart }, } = start(); - const { getVisualizeEmbeddableFactory } = await import('./react_embeddable'); + const getVisualizeEmbeddableFactory = await getVisualizeEmbeddableFactoryLazy(); return getVisualizeEmbeddableFactory({ embeddableStart, embeddableEnhancedStart }); }); embeddable.registerReactEmbeddableSavedObject({ diff --git a/src/plugins/visualizations/public/react_embeddable/visualize_embeddable.tsx b/src/plugins/visualizations/public/react_embeddable/visualize_embeddable.tsx deleted file mode 100644 index ee95e8d0d94b3..0000000000000 --- a/src/plugins/visualizations/public/react_embeddable/visualize_embeddable.tsx +++ /dev/null @@ -1,549 +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", the "GNU Affero General Public License v3.0 only", and the "Server Side - * Public License v 1"; you may not use this file except in compliance with, at - * your election, the "Elastic License 2.0", the "GNU Affero General Public - * License v3.0 only", or the "Server Side Public License, v 1". - */ - -import { EuiEmptyPrompt, EuiFlexGroup, EuiLoadingChart } from '@elastic/eui'; -import { isChartSizeEvent } from '@kbn/chart-expressions-common'; -import { APPLY_FILTER_TRIGGER } from '@kbn/data-plugin/public'; -import type { DataView } from '@kbn/data-views-plugin/public'; -import { EmbeddableEnhancedPluginStart } from '@kbn/embeddable-enhanced-plugin/public'; -import { - EmbeddableStart, - ReactEmbeddableFactory, - SELECT_RANGE_TRIGGER, -} from '@kbn/embeddable-plugin/public'; -import { ExpressionRendererParams, useExpressionRenderer } from '@kbn/expressions-plugin/public'; -import { i18n } from '@kbn/i18n'; -import { dispatchRenderComplete } from '@kbn/kibana-utils-plugin/public'; -import { apiPublishesSettings } from '@kbn/presentation-containers'; -import { - apiHasAppContext, - apiHasDisableTriggers, - apiHasExecutionContext, - apiIsOfType, - apiPublishesTimeRange, - apiPublishesTimeslice, - apiPublishesUnifiedSearch, - apiPublishesViewMode, - fetch$, - getUnchangingComparator, - initializeTimeRange, - initializeTitles, - useStateFromPublishingSubject, -} from '@kbn/presentation-publishing'; -import { apiPublishesSearchSession } from '@kbn/presentation-publishing/interfaces/fetch/publishes_search_session'; -import { get, isEmpty, isEqual, isNil, omitBy } from 'lodash'; -import React, { useEffect, useRef } from 'react'; -import { BehaviorSubject, switchMap } from 'rxjs'; -import { VISUALIZE_APP_NAME, VISUALIZE_EMBEDDABLE_TYPE } from '../../common/constants'; -import { VIS_EVENT_TO_TRIGGER } from '../embeddable'; -import { getCapabilities, getInspector, getUiActions, getUsageCollection } from '../services'; -import { ACTION_CONVERT_TO_LENS } from '../triggers'; -import { urlFor } from '../utils/saved_visualize_utils'; -import type { SerializedVis, Vis } from '../vis'; -import { createVisInstance } from './create_vis_instance'; -import { getExpressionRendererProps } from './get_expression_renderer_props'; -import { saveToLibrary } from './save_to_library'; -import { deserializeState, serializeState } from './state'; -import { - ExtraSavedObjectProperties, - VisualizeApi, - VisualizeOutputState, - VisualizeRuntimeState, - VisualizeSerializedState, - isVisualizeSavedObjectState, -} from './types'; - -export const getVisualizeEmbeddableFactory: (deps: { - embeddableStart: EmbeddableStart; - embeddableEnhancedStart?: EmbeddableEnhancedPluginStart; -}) => ReactEmbeddableFactory = ({ - embeddableStart, - embeddableEnhancedStart, -}) => ({ - type: VISUALIZE_EMBEDDABLE_TYPE, - deserializeState, - buildEmbeddable: async (initialState: unknown, buildApi, uuid, parentApi) => { - // Handle state transfer from legacy visualize editor, which uses the legacy visualize embeddable and doesn't - // produce a snapshot state. If buildEmbeddable is passed only a savedObjectId in the state, this means deserializeState - // was never run, and it needs to be invoked manually - const state = isVisualizeSavedObjectState(initialState) - ? await deserializeState({ - rawState: initialState, - }) - : (initialState as VisualizeRuntimeState); - - // Initialize dynamic actions - const dynamicActionsApi = embeddableEnhancedStart?.initializeReactEmbeddableDynamicActions( - uuid, - () => titlesApi.panelTitle.getValue(), - state - ); - // if it is provided, start the dynamic actions manager - const maybeStopDynamicActions = dynamicActionsApi?.startDynamicActions(); - - const { titlesApi, titleComparators, serializeTitles } = initializeTitles(state); - - // Count renders; mostly used for testing. - const renderCount$ = new BehaviorSubject(0); - const hasRendered$ = new BehaviorSubject(false); - - // Track vis data and initialize it into a vis instance - const serializedVis$ = new BehaviorSubject(state.serializedVis); - const initialVisInstance = await createVisInstance(state.serializedVis); - const vis$ = new BehaviorSubject(initialVisInstance); - - // Track UI state - const onUiStateChange = () => serializedVis$.next(vis$.getValue().serialize()); - initialVisInstance.uiState.on('change', onUiStateChange); - vis$.subscribe((vis) => vis.uiState.on('change', onUiStateChange)); - - // When the serialized vis changes, update the vis instance - serializedVis$ - .pipe( - switchMap(async (serializedVis) => { - const currentVis = vis$.getValue(); - if (currentVis) currentVis.uiState.off('change', onUiStateChange); - const vis = await createVisInstance(serializedVis); - const { params, abortController } = await getExpressionParams(); - return { vis, params, abortController }; - }) - ) - .subscribe(({ vis, params, abortController }) => { - vis$.next(vis); - if (params) expressionParams$.next(params); - expressionAbortController$.next(abortController); - }); - - // Track visualizations linked to a saved object in the library - const savedObjectId$ = new BehaviorSubject( - state.savedObjectId ?? state.serializedVis.id - ); - const savedObjectProperties$ = new BehaviorSubject( - undefined - ); - const linkedToLibrary$ = new BehaviorSubject(state.linkedToLibrary); - - // Track the vis expression - const expressionParams$ = new BehaviorSubject({ - expression: '', - }); - - const expressionAbortController$ = new BehaviorSubject(new AbortController()); - let getExpressionParams: () => ReturnType = async () => ({ - params: expressionParams$.getValue(), - abortController: expressionAbortController$.getValue(), - }); - - const { - api: customTimeRangeApi, - serialize: serializeCustomTimeRange, - comparators: customTimeRangeComparators, - } = initializeTimeRange(state); - - const searchSessionId$ = new BehaviorSubject(''); - - const viewMode$ = apiPublishesViewMode(parentApi) - ? parentApi.viewMode - : new BehaviorSubject('view'); - - const executionContext = apiHasExecutionContext(parentApi) - ? parentApi.executionContext - : undefined; - - const disableTriggers = apiHasDisableTriggers(parentApi) - ? parentApi.disableTriggers - : undefined; - - const parentApiContext = apiHasAppContext(parentApi) ? parentApi.getAppContext() : undefined; - - const inspectorAdapters$ = new BehaviorSubject>({}); - - // Track data views - let initialDataViews: DataView[] | undefined = []; - if (initialVisInstance.data.indexPattern) - initialDataViews = [initialVisInstance.data.indexPattern]; - if (initialVisInstance.type.getUsedIndexPattern) { - initialDataViews = await initialVisInstance.type.getUsedIndexPattern( - initialVisInstance.params - ); - } - - const dataLoading$ = new BehaviorSubject(true); - - const defaultPanelTitle = new BehaviorSubject(initialVisInstance.title); - - const api = buildApi( - { - ...customTimeRangeApi, - ...titlesApi, - ...(dynamicActionsApi?.dynamicActionsApi ?? {}), - defaultPanelTitle, - dataLoading: dataLoading$, - dataViews: new BehaviorSubject(initialDataViews), - supportedTriggers: () => [ - ACTION_CONVERT_TO_LENS, - APPLY_FILTER_TRIGGER, - SELECT_RANGE_TRIGGER, - ], - serializeState: () => { - const savedObjectProperties = savedObjectProperties$.getValue(); - return serializeState({ - serializedVis: vis$.getValue().serialize(), - titles: serializeTitles(), - id: savedObjectId$.getValue(), - linkedToLibrary: - // In the visualize editor, linkedToLibrary should always be false to force the full state to be serialized, - // instead of just passing a reference to the linked saved object. Other contexts like dashboards should - // serialize the state with just the savedObjectId so that the current revision of the vis is always used - apiIsOfType(parentApi, VISUALIZE_APP_NAME) ? false : linkedToLibrary$.getValue(), - ...(savedObjectProperties ? { savedObjectProperties } : {}), - ...(dynamicActionsApi?.serializeDynamicActions?.() ?? {}), - ...serializeCustomTimeRange(), - }); - }, - getVis: () => vis$.getValue(), - getInspectorAdapters: () => inspectorAdapters$.getValue(), - getTypeDisplayName: () => - i18n.translate('visualizations.displayName', { - defaultMessage: 'visualization', - }), - onEdit: async () => { - const stateTransferService = embeddableStart.getStateTransfer(); - const visId = savedObjectId$.getValue(); - const editPath = visId ? urlFor(visId) : '#/edit_by_value'; - const parentTimeRange = apiPublishesTimeRange(parentApi) - ? parentApi.timeRange$.getValue() - : {}; - const customTimeRange = customTimeRangeApi.timeRange$.getValue(); - - await stateTransferService.navigateToEditor('visualize', { - path: editPath, - state: { - embeddableId: uuid, - valueInput: { - savedVis: vis$.getValue().serialize(), - title: api.panelTitle?.getValue(), - description: api.panelDescription?.getValue(), - timeRange: customTimeRange ?? parentTimeRange, - }, - originatingApp: parentApiContext?.currentAppId ?? '', - searchSessionId: searchSessionId$.getValue() || undefined, - originatingPath: parentApiContext?.getCurrentPath?.(), - }, - }); - }, - isEditingEnabled: () => { - if (viewMode$.getValue() !== 'edit') return false; - const readOnly = Boolean(vis$.getValue().type.disableEdit); - if (readOnly) return false; - const capabilities = getCapabilities(); - const isByValue = !savedObjectId$.getValue(); - if (isByValue) - return Boolean( - capabilities.dashboard?.showWriteControls && capabilities.visualize?.show - ); - else return Boolean(capabilities.visualize?.save); - }, - updateVis: async (visUpdates) => { - const currentSerializedVis = vis$.getValue().serialize(); - serializedVis$.next({ - ...currentSerializedVis, - ...visUpdates, - params: { - ...currentSerializedVis.params, - ...visUpdates.params, - }, - data: { - ...currentSerializedVis.data, - ...visUpdates.data, - }, - } as SerializedVis); - if (visUpdates.title) { - titlesApi.setPanelTitle(visUpdates.title); - } - }, - openInspector: () => { - const adapters = inspectorAdapters$.getValue(); - if (!adapters) return; - const inspector = getInspector(); - if (!inspector.isAvailable(adapters)) return; - return getInspector().open(adapters, { - title: - titlesApi.panelTitle?.getValue() || - i18n.translate('visualizations.embeddable.inspectorTitle', { - defaultMessage: 'Inspector', - }), - }); - }, - // Library transforms - saveToLibrary: (newTitle: string) => { - titlesApi.setPanelTitle(newTitle); - const { rawState, references } = serializeState({ - serializedVis: vis$.getValue().serialize(), - titles: { - ...serializeTitles(), - title: newTitle, - }, - }); - return saveToLibrary({ - uiState: vis$.getValue().uiState, - rawState: rawState as VisualizeOutputState, - references, - }); - }, - canLinkToLibrary: () => !state.linkedToLibrary, - canUnlinkFromLibrary: () => !!state.linkedToLibrary, - checkForDuplicateTitle: () => false, // Handled by saveToLibrary action - getByValueState: () => ({ - savedVis: vis$.getValue().serialize(), - ...serializeTitles(), - }), - getByReferenceState: (libraryId) => - serializeState({ - serializedVis: vis$.getValue().serialize(), - titles: serializeTitles(), - id: libraryId, - linkedToLibrary: true, - }).rawState, - }, - { - ...titleComparators, - ...customTimeRangeComparators, - ...(dynamicActionsApi?.dynamicActionsComparator ?? { - enhancements: getUnchangingComparator(), - }), - serializedVis: [ - serializedVis$, - (value) => { - serializedVis$.next(value); - }, - (a, b) => { - const visA = a - ? { - ...omitBy(a, isEmpty), - data: omitBy(a.data, isNil), - params: omitBy(a.params, isNil), - } - : {}; - const visB = b - ? { - ...omitBy(b, isEmpty), - data: omitBy(b.data, isNil), - params: omitBy(b.params, isNil), - } - : {}; - return isEqual(visA, visB); - }, - ], - savedObjectId: [ - savedObjectId$, - (value) => savedObjectId$.next(value), - (a, b) => { - if (!a && !b) return true; - return a === b; - }, - ], - savedObjectProperties: getUnchangingComparator(), - linkedToLibrary: [linkedToLibrary$, (value) => linkedToLibrary$.next(value)], - } - ); - - const fetchSubscription = fetch$(api) - .pipe( - switchMap(async (data) => { - const unifiedSearch = apiPublishesUnifiedSearch(parentApi) - ? { - query: data.query, - filters: data.filters, - } - : {}; - const searchSessionId = apiPublishesSearchSession(parentApi) ? data.searchSessionId : ''; - searchSessionId$.next(searchSessionId); - const settings = apiPublishesSettings(parentApi) - ? { - syncColors: parentApi.settings.syncColors$.getValue(), - syncCursor: parentApi.settings.syncCursor$.getValue(), - syncTooltips: parentApi.settings.syncTooltips$.getValue(), - } - : {}; - - dataLoading$.next(true); - - const timeslice = apiPublishesTimeslice(parentApi) - ? parentApi.timeslice$.getValue() - : undefined; - - const customTimeRange = customTimeRangeApi.timeRange$.getValue(); - const parentTimeRange = apiPublishesTimeRange(parentApi) ? data.timeRange : undefined; - const timesliceTimeRange = timeslice - ? { - from: new Date(timeslice[0]).toISOString(), - to: new Date(timeslice[1]).toISOString(), - mode: 'absolute' as 'absolute', - } - : undefined; - - // Precedence should be: - // custom time range from state > - // timeslice time range > - // parent API time range from e.g. unified search - const timeRangeToRender = customTimeRange ?? timesliceTimeRange ?? parentTimeRange; - - getExpressionParams = async () => { - return await getExpressionRendererProps({ - unifiedSearch, - vis: vis$.getValue(), - settings, - disableTriggers, - searchSessionId, - parentExecutionContext: executionContext, - abortController: expressionAbortController$.getValue(), - timeRange: timeRangeToRender, - onRender: async (renderCount) => { - if (renderCount === renderCount$.getValue()) return; - renderCount$.next(renderCount); - const visInstance = vis$.getValue(); - const visTypeName = visInstance.type.name; - - let telemetryVisTypeName = visTypeName; - if (visTypeName === 'metrics') { - telemetryVisTypeName = 'legacy_metric'; - } - if (visTypeName === 'pie' && visInstance.params.isDonut) { - telemetryVisTypeName = 'donut'; - } - if ( - visTypeName === 'area' && - visInstance.params.seriesParams.some( - (seriesParams: { mode: string }) => seriesParams.mode === 'stacked' - ) - ) { - telemetryVisTypeName = 'area_stacked'; - } - - getUsageCollection().reportUiCounter( - executionContext?.type ?? '', - 'count', - `render_agg_based_${telemetryVisTypeName}` - ); - - if (hasRendered$.getValue() === true) return; - hasRendered$.next(true); - hasRendered$.complete(); - }, - onEvent: async (event) => { - // Visualize doesn't respond to sizing events, so ignore. - if (isChartSizeEvent(event)) { - return; - } - const currentVis = vis$.getValue(); - if (!disableTriggers) { - const triggerId = get( - VIS_EVENT_TO_TRIGGER, - event.name, - VIS_EVENT_TO_TRIGGER.filter - ); - let context; - - if (triggerId === VIS_EVENT_TO_TRIGGER.applyFilter) { - context = { - embeddable: api, - timeFieldName: currentVis.data.indexPattern?.timeFieldName!, - ...event.data, - }; - } else { - context = { - embeddable: api, - data: { - timeFieldName: currentVis.data.indexPattern?.timeFieldName!, - ...event.data, - }, - }; - } - await getUiActions().getTrigger(triggerId).exec(context); - } - }, - onData: (_, inspectorAdapters) => { - inspectorAdapters$.next( - typeof inspectorAdapters === 'function' ? inspectorAdapters() : inspectorAdapters - ); - dataLoading$.next(false); - }, - }); - }; - return await getExpressionParams(); - }) - ) - .subscribe(({ params, abortController }) => { - if (params) expressionParams$.next(params); - expressionAbortController$.next(abortController); - }); - - return { - api, - Component: () => { - const expressionParams = useStateFromPublishingSubject(expressionParams$); - const renderCount = useStateFromPublishingSubject(renderCount$); - const hasRendered = useStateFromPublishingSubject(hasRendered$); - const domNode = useRef(null); - const { error, isLoading } = useExpressionRenderer(domNode, expressionParams); - - useEffect(() => { - return () => { - fetchSubscription.unsubscribe(); - maybeStopDynamicActions?.stopDynamicActions(); - }; - }, []); - - useEffect(() => { - if (hasRendered && domNode.current) { - dispatchRenderComplete(domNode.current); - } - }, [hasRendered]); - - return ( -
    - {/* Replicate the loading state for the expression renderer to avoid FOUC */} - - {isLoading && } - {!isLoading && error && ( - - {i18n.translate('visualizations.embeddable.errorTitle', { - defaultMessage: 'Unable to load visualization ', - })} - - } - body={ -

    - {error.name}: {error.message} -

    - } - /> - )} -
    -
    - ); - }, - }; - }, -}); diff --git a/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts b/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts index 18d6fc578d073..a7417585795f0 100644 --- a/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts +++ b/src/plugins/visualizations/public/utils/saved_objects_utils/save_with_confirmation.ts @@ -15,7 +15,7 @@ import { confirmModalPromise } from './confirm_modal_promise'; import type { StartServices } from '../../types'; import { visualizationsClient } from '../../content_management'; import { VisualizationSavedObjectAttributes, VisualizationSavedObject } from '../../../common'; -import { VisualizeOutputState } from '../../react_embeddable/types'; +import { VisualizeOutputState } from '../../embeddable/types'; /** * Attempts to create the current object using the serialized source. If an object already diff --git a/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts b/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts index f972b0682bd89..7e8e86b469c5d 100644 --- a/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts +++ b/src/plugins/visualizations/public/utils/saved_visualization_references/saved_visualization_references.ts @@ -16,7 +16,7 @@ import { import { DATA_VIEW_SAVED_OBJECT_TYPE } from '@kbn/data-views-plugin/common'; import { isObject } from 'lodash'; import { Reference } from '../../../common/content_management'; -import { VisualizeSavedVisInputState } from '../../react_embeddable/types'; +import { VisualizeSavedVisInputState } from '../../embeddable/types'; import { SavedVisState, SerializedVis, VisSavedObject } from '../../types'; import type { SerializableAttributes } from '../../vis_types/vis_type_alias_registry'; import { extractControlsReferences, injectControlsReferences } from './controls_references'; diff --git a/src/plugins/visualizations/public/visualize_app/types.ts b/src/plugins/visualizations/public/visualize_app/types.ts index 7a80dd2e4a8e2..53fb35114d0f9 100644 --- a/src/plugins/visualizations/public/visualize_app/types.ts +++ b/src/plugins/visualizations/public/visualize_app/types.ts @@ -53,7 +53,7 @@ import type { } from '..'; import type { ListingViewRegistry, SavedVisState } from '../types'; -import type { createVisEmbeddableFromObject } from '../embeddable'; +import type { createVisEmbeddableFromObject } from '../legacy/embeddable'; import type { VisEditorsRegistry } from '../vis_editors_registry'; export interface VisualizeAppState { diff --git a/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts b/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts index 1ad0803edf38c..3a3898093a8eb 100644 --- a/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts +++ b/src/plugins/visualizations/public/visualize_app/utils/get_visualization_instance.ts @@ -16,7 +16,7 @@ import { createVisAsync } from '../../vis_async'; import { convertToSerializedVis, getSavedVisualization } from '../../utils/saved_visualize_utils'; import { SerializedVis, Vis, VisSavedObject, VisualizeEmbeddableContract } from '../..'; import type { VisInstance, VisualizeServices } from '../types'; -import { VisualizeInput } from '../../embeddable'; +import { VisualizeInput } from '../../legacy/embeddable'; function isErrorRelatedToRuntimeFields(error: ExpressionValueError['error']) { const originalError = error.original || error; diff --git a/test/analytics/config.ts b/test/analytics/config.ts index cc162b0a96d4b..aae2458c3ad6f 100644 --- a/test/analytics/config.ts +++ b/test/analytics/config.ts @@ -36,6 +36,7 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) { serverArgs: [ ...functionalConfig.get('kbnTestServer.serverArgs'), '--telemetry.optIn=true', + '--server.restrictInternalApis=false', `--plugin-path=${path.resolve(__dirname, './plugins/analytics_plugin_a')}`, `--plugin-path=${path.resolve(__dirname, './plugins/analytics_ftr_helpers')}`, ], diff --git a/test/analytics/services/kibana_ebt.ts b/test/analytics/services/kibana_ebt.ts index e82196d028fd4..f2b635dcbdbbe 100644 --- a/test/analytics/services/kibana_ebt.ts +++ b/test/analytics/services/kibana_ebt.ts @@ -9,6 +9,7 @@ import '@kbn/analytics-ftr-helpers-plugin/public/types'; import type { EBTHelpersContract } from '@kbn/analytics-ftr-helpers-plugin/common/types'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../functional/ftr_provider_context'; export function KibanaEBTServerProvider({ getService }: FtrProviderContext): EBTHelpersContract { @@ -18,6 +19,7 @@ export function KibanaEBTServerProvider({ getService }: FtrProviderContext): EBT await supertest .post(`/internal/analytics_ftr_helpers/opt_in`) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ consent: optIn }) .expect(200); }; @@ -38,6 +40,7 @@ export function KibanaEBTServerProvider({ getService }: FtrProviderContext): EBT fromTimestamp, }) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); return resp.body; @@ -48,6 +51,7 @@ export function KibanaEBTServerProvider({ getService }: FtrProviderContext): EBT .get(`/internal/analytics_ftr_helpers/count_events`) .query({ eventTypes: JSON.stringify(eventTypes), withTimeoutMs, fromTimestamp }) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); return resp.body.count; diff --git a/test/analytics/tests/analytics_from_the_server.ts b/test/analytics/tests/analytics_from_the_server.ts index a1b75db9985b3..af15d083419a3 100644 --- a/test/analytics/tests/analytics_from_the_server.ts +++ b/test/analytics/tests/analytics_from_the_server.ts @@ -10,6 +10,7 @@ import expect from '@kbn/expect'; import type { Event, TelemetryCounter } from '@kbn/core/server'; import type { Action } from '@kbn/analytics-plugin-a-plugin/server/custom_shipper'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../services'; export default function ({ getService }: FtrProviderContext) { @@ -23,6 +24,7 @@ export default function ({ getService }: FtrProviderContext) { .get(`/internal/analytics_plugin_a/stats`) .query({ takeNumberOfCounters, eventType: 'test-plugin-lifecycle' }) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); return resp.body; @@ -32,6 +34,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .get(`/internal/analytics_plugin_a/actions`) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); return resp.body; diff --git a/test/api_integration/apis/console/autocomplete_entities.ts b/test/api_integration/apis/console/autocomplete_entities.ts index 6cd0f6df35401..2a19f2c9f7f45 100644 --- a/test/api_integration/apis/console/autocomplete_entities.ts +++ b/test/api_integration/apis/console/autocomplete_entities.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; export default ({ getService }: FtrProviderContext) => { @@ -15,7 +16,10 @@ export default ({ getService }: FtrProviderContext) => { const supertest = getService('supertest'); const sendRequest = (query: object) => - supertest.get('/api/console/autocomplete_entities').query(query); + supertest + .get('/api/console/autocomplete_entities') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .query(query); describe('/api/console/autocomplete_entities', function () { const indexName = 'test-index-1'; diff --git a/test/api_integration/apis/console/es_config.ts b/test/api_integration/apis/console/es_config.ts index cea71fefb0142..190e35d1f3827 100644 --- a/test/api_integration/apis/console/es_config.ts +++ b/test/api_integration/apis/console/es_config.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -18,6 +19,7 @@ export default function ({ getService }: FtrProviderContext) { const { body } = await supertest .get('/api/console/es_config') .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(body.host).to.be.ok(); }); diff --git a/test/api_integration/apis/console/proxy_route.ts b/test/api_integration/apis/console/proxy_route.ts index bc02a4863eb99..3cc40f318d97b 100644 --- a/test/api_integration/apis/console/proxy_route.ts +++ b/test/api_integration/apis/console/proxy_route.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -19,6 +20,7 @@ export default function ({ getService }: FtrProviderContext) { return await supertest .post('/api/console/proxy?method=GET&path=/.kibana/_settings') .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .then((response) => { expect(response.header).to.have.property('warning'); const { warning } = response.header as { warning: string }; @@ -28,12 +30,12 @@ export default function ({ getService }: FtrProviderContext) { }); it('does not forward x-elastic-product-origin', async () => { - // If we pass the header and we still get the warning back, we assume that the header was not forwarded. return await supertest .post('/api/console/proxy?method=GET&path=/.kibana/_settings') .set('kbn-xsrf', 'true') .set('x-elastic-product-origin', 'kibana') .then((response) => { + expect(response.header).to.have.property('connection', 'close'); expect(response.header).to.have.property('warning'); const { warning } = response.header as { warning: string }; expect(warning.startsWith('299')).to.be(true); diff --git a/test/api_integration/apis/core/capabilities.ts b/test/api_integration/apis/core/capabilities.ts index d99c47213fb04..6816090d36c37 100644 --- a/test/api_integration/apis/core/capabilities.ts +++ b/test/api_integration/apis/core/capabilities.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -17,6 +18,7 @@ export default function ({ getService }: FtrProviderContext) { it(`returns a 400 when an invalid app id is provided`, async () => { const { body } = await supertest .post('/api/core/capabilities') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ applications: ['dashboard', 'discover', 'bad%app'], }) diff --git a/test/api_integration/apis/custom_integration/integrations.ts b/test/api_integration/apis/custom_integration/integrations.ts index ecb53f6200780..a3d50533010f1 100644 --- a/test/api_integration/apis/custom_integration/integrations.ts +++ b/test/api_integration/apis/custom_integration/integrations.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -19,6 +20,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .get(`/internal/customIntegrations/appendCustomIntegrations`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body).to.be.an('array'); @@ -37,6 +39,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .get(`/internal/customIntegrations/replacementCustomIntegrations`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body).to.be.an('array'); diff --git a/test/api_integration/apis/data_view_field_editor/field_preview.ts b/test/api_integration/apis/data_view_field_editor/field_preview.ts index 5190ebde33953..24762ea2242e4 100644 --- a/test/api_integration/apis/data_view_field_editor/field_preview.ts +++ b/test/api_integration/apis/data_view_field_editor/field_preview.ts @@ -9,7 +9,10 @@ import expect from '@kbn/expect'; -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { getErrorCodeFromErrorReason } from '@kbn/data-view-field-editor-plugin/public/lib/runtime_field_validation'; import { FIELD_PREVIEW_PATH, @@ -92,6 +95,7 @@ export default function ({ getService }: FtrProviderContext) { .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION) .send(payload) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(response.values).eql([test.expected]); @@ -109,6 +113,7 @@ export default function ({ getService }: FtrProviderContext) { index: INDEX_NAME, }) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(400); }); @@ -121,6 +126,7 @@ export default function ({ getService }: FtrProviderContext) { index: INDEX_NAME, }) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(400); }); @@ -133,6 +139,7 @@ export default function ({ getService }: FtrProviderContext) { context: 'keyword_field', }) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(400); }); }); @@ -150,7 +157,8 @@ export default function ({ getService }: FtrProviderContext) { context: 'keyword_field', index: INDEX_NAME, }) - .set('kbn-xsrf', 'xxx'); + .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); const errorCode = getErrorCodeFromErrorReason(response.error?.caused_by?.reason); diff --git a/test/api_integration/apis/data_views/deprecations/scripted_fields.ts b/test/api_integration/apis/data_views/deprecations/scripted_fields.ts index 7fcfd432d0782..083fabada4ec7 100644 --- a/test/api_integration/apis/data_views/deprecations/scripted_fields.ts +++ b/test/api_integration/apis/data_views/deprecations/scripted_fields.ts @@ -9,6 +9,7 @@ import expect from '@kbn/expect'; import type { DeprecationsGetResponse } from '@kbn/core/server'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -28,7 +29,9 @@ export default function ({ getService }: FtrProviderContext) { }); it('no scripted fields deprecations', async () => { - const { body } = await supertest.get('/api/deprecations/'); + const { body } = await supertest + .get('/api/deprecations/') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); const { deprecations } = body as DeprecationsGetResponse; const dataPluginDeprecations = deprecations.filter( @@ -40,27 +43,32 @@ export default function ({ getService }: FtrProviderContext) { it('scripted field deprecation', async () => { const title = `basic_index`; - await supertest.post('/api/index_patterns/index_pattern').send({ - index_pattern: { - title, - fields: { - foo: { - name: 'foo', - type: 'string', - scripted: true, - script: "doc['field_name'].value", - }, - bar: { - name: 'bar', - type: 'number', - scripted: true, - script: "doc['field_name'].value", + await supertest + .post('/api/index_patterns/index_pattern') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .send({ + index_pattern: { + title, + fields: { + foo: { + name: 'foo', + type: 'string', + scripted: true, + script: "doc['field_name'].value", + }, + bar: { + name: 'bar', + type: 'number', + scripted: true, + script: "doc['field_name'].value", + }, }, }, - }, - }); + }); - const { body } = await supertest.get('/api/deprecations/'); + const { body } = await supertest + .get('/api/deprecations/') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); const { deprecations } = body as DeprecationsGetResponse; const dataPluginDeprecations = deprecations.filter( ({ domainId }) => domainId === 'dataViews' diff --git a/test/api_integration/apis/data_views/existing_indices_route/params.ts b/test/api_integration/apis/data_views/existing_indices_route/params.ts index 4bebcca337260..8e1e4bab0cbdd 100644 --- a/test/api_integration/apis/data_views/existing_indices_route/params.ts +++ b/test/api_integration/apis/data_views/existing_indices_route/params.ts @@ -7,7 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { EXISTING_INDICES_PATH } from '@kbn/data-views-plugin/common/constants'; import { FtrProviderContext } from '../../../ftr_provider_context'; @@ -29,6 +32,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(EXISTING_INDICES_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({}) .expect(400)); @@ -36,6 +40,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(EXISTING_INDICES_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ indices: 'filebeat-*', }) @@ -45,6 +50,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(EXISTING_INDICES_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ indices: ['filebeat-*'], }) @@ -54,6 +60,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(EXISTING_INDICES_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ indices: ['filebeat-*', 'packetbeat-*'], }) @@ -63,6 +70,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(EXISTING_INDICES_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ [randomness.word()]: randomness.word(), }) @@ -72,6 +80,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(EXISTING_INDICES_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ indices: 'filebeat-*,packetbeat-*', }) diff --git a/test/api_integration/apis/data_views/existing_indices_route/response.ts b/test/api_integration/apis/data_views/existing_indices_route/response.ts index 8ccc723eff9d9..7959945081219 100644 --- a/test/api_integration/apis/data_views/existing_indices_route/response.ts +++ b/test/api_integration/apis/data_views/existing_indices_route/response.ts @@ -7,7 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { EXISTING_INDICES_PATH } from '@kbn/data-views-plugin/common/constants'; import { FtrProviderContext } from '../../../ftr_provider_context'; @@ -28,6 +31,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(EXISTING_INDICES_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ indices: ['basic_index', 'bad_index'], }) @@ -38,6 +42,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(EXISTING_INDICES_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ indices: ['bad_index'], }) diff --git a/test/api_integration/apis/data_views/fields_for_wildcard_route/conflicts.ts b/test/api_integration/apis/data_views/fields_for_wildcard_route/conflicts.ts index 19fdbeedaa9f2..852ea100ae051 100644 --- a/test/api_integration/apis/data_views/fields_for_wildcard_route/conflicts.ts +++ b/test/api_integration/apis/data_views/fields_for_wildcard_route/conflicts.ts @@ -7,7 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { FIELDS_FOR_WILDCARD_PATH } from '@kbn/data-views-plugin/common/constants'; import expect from '@kbn/expect'; @@ -29,6 +32,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'logs-*' }) .expect(200) .then((resp) => { diff --git a/test/api_integration/apis/data_views/fields_for_wildcard_route/filter.ts b/test/api_integration/apis/data_views/fields_for_wildcard_route/filter.ts index 0d66365907aec..04574801a16c8 100644 --- a/test/api_integration/apis/data_views/fields_for_wildcard_route/filter.ts +++ b/test/api_integration/apis/data_views/fields_for_wildcard_route/filter.ts @@ -7,7 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { FIELDS_FOR_WILDCARD_PATH } from '@kbn/data-views-plugin/common/constants'; import expect from '@kbn/expect'; @@ -38,6 +41,7 @@ export default function ({ getService }: FtrProviderContext) { const a = await supertest .put(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'helloworld*' }) .send({ index_filter: { exists: { field: 'bye' } } }); diff --git a/test/api_integration/apis/data_views/fields_for_wildcard_route/params.ts b/test/api_integration/apis/data_views/fields_for_wildcard_route/params.ts index 8b42c645f913a..04aaaa2adc331 100644 --- a/test/api_integration/apis/data_views/fields_for_wildcard_route/params.ts +++ b/test/api_integration/apis/data_views/fields_for_wildcard_route/params.ts @@ -7,7 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { FIELDS_FOR_WILDCARD_PATH } from '@kbn/data-views-plugin/common/constants'; import { FtrProviderContext } from '../../../ftr_provider_context'; @@ -29,6 +32,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({}) .expect(400)); @@ -36,6 +40,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', include_unmapped: true, @@ -46,6 +51,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: randomness.word(), [randomness.word()]: randomness.word(), @@ -57,6 +63,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: JSON.stringify(['baz']), @@ -67,6 +74,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: ['baz', 'foo'], @@ -77,6 +85,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: ['baz'], @@ -87,6 +96,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: 'baz', @@ -97,6 +107,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: 'foo,bar', @@ -109,6 +120,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', meta_fields: JSON.stringify(['meta']), @@ -119,6 +131,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', meta_fields: ['_id', 'meta'], @@ -129,6 +142,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', meta_fields: ['_id'], @@ -139,6 +153,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', meta_fields: 'foo,bar', diff --git a/test/api_integration/apis/data_views/fields_for_wildcard_route/response.ts b/test/api_integration/apis/data_views/fields_for_wildcard_route/response.ts index d818e0f85eac2..2b0fa0dab4424 100644 --- a/test/api_integration/apis/data_views/fields_for_wildcard_route/response.ts +++ b/test/api_integration/apis/data_views/fields_for_wildcard_route/response.ts @@ -7,7 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { FIELDS_FOR_WILDCARD_PATH } from '@kbn/data-views-plugin/common/constants'; import expect from '@kbn/expect'; @@ -89,6 +92,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index' }) .expect(200, { fields: testFields, @@ -101,6 +105,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index', fields: JSON.stringify(['bar']) }) .expect(200, { fields: [testFields[0]], @@ -112,6 +117,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index', meta_fields: JSON.stringify(['_id', '_source', 'crazy_meta_field']), @@ -205,6 +211,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'bad_index,basic_index' }) .expect(200, { fields: testFields, @@ -216,6 +223,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'bad_index,bad_index_2' }) .expect(404); }); @@ -224,6 +232,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'bad_index', }) @@ -238,6 +247,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index' }) .expect(200, { fields: [], @@ -251,6 +261,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_FOR_WILDCARD_PATH) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'fields-for-wildcard-000001', meta_fields: ['_id', '_index'], diff --git a/test/api_integration/apis/data_views/fields_route/cache.ts b/test/api_integration/apis/data_views/fields_route/cache.ts index a9ca10d3400ee..e906b34336f40 100644 --- a/test/api_integration/apis/data_views/fields_route/cache.ts +++ b/test/api_integration/apis/data_views/fields_route/cache.ts @@ -10,6 +10,7 @@ import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { FIELDS_PATH } from '@kbn/data-views-plugin/common/constants'; import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -26,11 +27,14 @@ export default function ({ getService }: FtrProviderContext) { ); it('are present', async () => { - const response = await supertest.get(FIELDS_PATH).query({ - pattern: '*', - include_unmapped: true, - apiVersion: INITIAL_REST_VERSION_INTERNAL, - }); + const response = await supertest + .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .query({ + pattern: '*', + include_unmapped: true, + apiVersion: INITIAL_REST_VERSION_INTERNAL, + }); const cacheControlHeader = response.get('cache-control'); @@ -44,11 +48,14 @@ export default function ({ getService }: FtrProviderContext) { it('no-cache when data_views:cache_max_age set to zero', async () => { await kibanaServer.uiSettings.update({ 'data_views:cache_max_age': 0 }); - const response = await supertest.get(FIELDS_PATH).query({ - pattern: 'b*', - include_unmapped: true, - apiVersion: INITIAL_REST_VERSION_INTERNAL, - }); + const response = await supertest + .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .query({ + pattern: 'b*', + include_unmapped: true, + apiVersion: INITIAL_REST_VERSION_INTERNAL, + }); const cacheControlHeader = response.get('cache-control'); @@ -63,15 +70,19 @@ export default function ({ getService }: FtrProviderContext) { }); it('returns 304 on matching etag', async () => { - const response = await supertest.get(FIELDS_PATH).query({ - pattern: '*', - include_unmapped: true, - apiVersion: INITIAL_REST_VERSION_INTERNAL, - }); + const response = await supertest + .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .query({ + pattern: '*', + include_unmapped: true, + apiVersion: INITIAL_REST_VERSION_INTERNAL, + }); await supertest .get(FIELDS_PATH) .set('If-None-Match', response.get('etag')!) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', include_unmapped: true, @@ -81,12 +92,15 @@ export default function ({ getService }: FtrProviderContext) { }); it('handles empty field lists', async () => { - const response = await supertest.get(FIELDS_PATH).query({ - pattern: 'xyz', - include_unmapped: true, - apiVersion: INITIAL_REST_VERSION_INTERNAL, - allow_no_index: true, - }); + const response = await supertest + .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .query({ + pattern: 'xyz', + include_unmapped: true, + apiVersion: INITIAL_REST_VERSION_INTERNAL, + allow_no_index: true, + }); expect(response.body.fields).to.be.empty(); }); diff --git a/test/api_integration/apis/data_views/fields_route/conflicts.ts b/test/api_integration/apis/data_views/fields_route/conflicts.ts index 18bbe689c9937..681512af62e7f 100644 --- a/test/api_integration/apis/data_views/fields_route/conflicts.ts +++ b/test/api_integration/apis/data_views/fields_route/conflicts.ts @@ -10,6 +10,7 @@ import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { FIELDS_PATH } from '@kbn/data-views-plugin/common/constants'; import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -27,6 +28,7 @@ export default function ({ getService }: FtrProviderContext) { it('flags fields with mismatched types as conflicting', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'logs-*', apiVersion: INITIAL_REST_VERSION_INTERNAL }) .expect(200) .then((resp) => { diff --git a/test/api_integration/apis/data_views/fields_route/params.ts b/test/api_integration/apis/data_views/fields_route/params.ts index 3d6dcef506aa5..bdd99b78e670b 100644 --- a/test/api_integration/apis/data_views/fields_route/params.ts +++ b/test/api_integration/apis/data_views/fields_route/params.ts @@ -9,6 +9,7 @@ import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/constants'; import { FIELDS_PATH } from '@kbn/data-views-plugin/common/constants'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -27,6 +28,7 @@ export default function ({ getService }: FtrProviderContext) { it('requires a pattern query param', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ apiVersion: INITIAL_REST_VERSION_INTERNAL, }) @@ -35,6 +37,7 @@ export default function ({ getService }: FtrProviderContext) { it('accepts include_unmapped param', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', include_unmapped: true, @@ -45,6 +48,7 @@ export default function ({ getService }: FtrProviderContext) { it('rejects unexpected query params', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: randomness.word(), [randomness.word()]: randomness.word(), @@ -56,6 +60,7 @@ export default function ({ getService }: FtrProviderContext) { it('accepts a JSON formatted fields query param', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: JSON.stringify(['baz']), @@ -66,6 +71,7 @@ export default function ({ getService }: FtrProviderContext) { it('accepts meta_fields query param in string array', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: ['baz', 'foo'], @@ -76,6 +82,7 @@ export default function ({ getService }: FtrProviderContext) { it('accepts single array fields query param', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: ['baz'], @@ -86,6 +93,7 @@ export default function ({ getService }: FtrProviderContext) { it('accepts single fields query param', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: 'baz', @@ -96,6 +104,7 @@ export default function ({ getService }: FtrProviderContext) { it('rejects a comma-separated list of fields', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', fields: 'foo,bar', @@ -108,6 +117,7 @@ export default function ({ getService }: FtrProviderContext) { it('accepts a JSON formatted meta_fields query param', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', meta_fields: JSON.stringify(['meta']), @@ -118,6 +128,7 @@ export default function ({ getService }: FtrProviderContext) { it('accepts meta_fields query param in string array', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', meta_fields: ['_id', 'meta'], @@ -128,6 +139,7 @@ export default function ({ getService }: FtrProviderContext) { it('accepts single meta_fields query param', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', meta_fields: ['_id'], @@ -138,6 +150,7 @@ export default function ({ getService }: FtrProviderContext) { it('rejects a comma-separated list of meta_fields', () => supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: '*', meta_fields: 'foo,bar', diff --git a/test/api_integration/apis/data_views/fields_route/response.ts b/test/api_integration/apis/data_views/fields_route/response.ts index 149ebf4d5ce4a..541434b872eb2 100644 --- a/test/api_integration/apis/data_views/fields_route/response.ts +++ b/test/api_integration/apis/data_views/fields_route/response.ts @@ -11,6 +11,7 @@ import { INITIAL_REST_VERSION_INTERNAL } from '@kbn/data-views-plugin/server/con import { FIELDS_PATH } from '@kbn/data-views-plugin/common/constants'; import expect from '@kbn/expect'; import { sortBy } from 'lodash'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -87,6 +88,7 @@ export default function ({ getService }: FtrProviderContext) { it('returns a flattened version of the fields in es', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index', apiVersion: INITIAL_REST_VERSION_INTERNAL }) .expect(200, { fields: testFields, @@ -98,6 +100,7 @@ export default function ({ getService }: FtrProviderContext) { it('returns a single field as requested', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index', fields: ['bar'], @@ -112,6 +115,7 @@ export default function ({ getService }: FtrProviderContext) { it('returns a single field as requested with json encoding', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index', fields: JSON.stringify(['bar']), @@ -126,6 +130,7 @@ export default function ({ getService }: FtrProviderContext) { it('always returns a field for all passed meta fields', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index', meta_fields: ['_id', '_source', 'crazy_meta_field'], @@ -219,6 +224,7 @@ export default function ({ getService }: FtrProviderContext) { it('can request fields by type', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index', field_types: 'boolean', @@ -233,6 +239,7 @@ export default function ({ getService }: FtrProviderContext) { it('can request fields by multiple types', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'basic_index', field_types: ['boolean', 'text'], @@ -247,6 +254,7 @@ export default function ({ getService }: FtrProviderContext) { it('returns fields when one pattern exists and the other does not', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'bad_index,basic_index', apiVersion: INITIAL_REST_VERSION_INTERNAL }) .expect(200, { fields: testFields, @@ -257,6 +265,7 @@ export default function ({ getService }: FtrProviderContext) { it('returns 404 when neither exists', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'bad_index,bad_index_2', apiVersion: INITIAL_REST_VERSION_INTERNAL }) .expect(404); }); @@ -264,6 +273,7 @@ export default function ({ getService }: FtrProviderContext) { it('returns 404 when no patterns exist', async () => { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'bad_index', apiVersion: INITIAL_REST_VERSION_INTERNAL, @@ -276,6 +286,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .get(FIELDS_PATH) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ pattern: 'fields-route-000001', meta_fields: ['_id', '_index'], diff --git a/test/api_integration/apis/data_views/has_user_index_pattern/has_user_index_pattern.ts b/test/api_integration/apis/data_views/has_user_index_pattern/has_user_index_pattern.ts index 0193040dcef2c..f781704bb5af3 100644 --- a/test/api_integration/apis/data_views/has_user_index_pattern/has_user_index_pattern.ts +++ b/test/api_integration/apis/data_views/has_user_index_pattern/has_user_index_pattern.ts @@ -7,7 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { INITIAL_REST_VERSION, INITIAL_REST_VERSION_INTERNAL, @@ -42,7 +45,8 @@ export default function ({ getService }: FtrProviderContext) { await esArchiver.emptyKibanaIndex(); const response = await supertest .get(servicePath) - .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL); + .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); expect(response.status).to.be(200); expect(response.body.result).to.be(false); }); @@ -54,6 +58,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .post(config.path) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ override: true, [config.serviceKey]: { @@ -63,7 +68,8 @@ export default function ({ getService }: FtrProviderContext) { const response = await supertest .get(servicePath) - .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL); + .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); expect(response.status).to.be(200); expect(response.body.result).to.be(true); @@ -76,6 +82,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .post(config.path) .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ override: true, [config.serviceKey]: { @@ -86,7 +93,8 @@ export default function ({ getService }: FtrProviderContext) { const response = await supertest .get(servicePath) - .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL); + .set(ELASTIC_HTTP_VERSION_HEADER, INITIAL_REST_VERSION_INTERNAL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); expect(response.status).to.be(200); expect(response.body.result).to.be(true); }); diff --git a/test/api_integration/apis/data_views/resolve_index/resolve_index.ts b/test/api_integration/apis/data_views/resolve_index/resolve_index.ts index 2cf3f6702cddf..cd13d23e80c1e 100644 --- a/test/api_integration/apis/data_views/resolve_index/resolve_index.ts +++ b/test/api_integration/apis/data_views/resolve_index/resolve_index.ts @@ -7,6 +7,7 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../../ftr_provider_context'; // node scripts/functional_tests --config test/api_integration/config.js --grep="Resolve index API" @@ -16,9 +17,15 @@ export default function ({ getService }: FtrProviderContext) { describe('Resolve index API', function () { it('should return 200 for a search for indices with wildcard', () => - supertest.get(`/internal/index-pattern-management/resolve_index/test*`).expect(200)); + supertest + .get(`/internal/index-pattern-management/resolve_index/test*`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200)); it('should return 404 for an exact match index', () => - supertest.get(`/internal/index-pattern-management/resolve_index/test`).expect(404)); + supertest + .get(`/internal/index-pattern-management/resolve_index/test`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(404)); }); } diff --git a/test/api_integration/apis/event_annotations/event_annotations.ts b/test/api_integration/apis/event_annotations/event_annotations.ts index 1232bc5d69adb..c6df9b16d3c6c 100644 --- a/test/api_integration/apis/event_annotations/event_annotations.ts +++ b/test/api_integration/apis/event_annotations/event_annotations.ts @@ -22,6 +22,7 @@ import type { } from '@kbn/event-annotation-plugin/common'; import { CONTENT_ID } from '@kbn/event-annotation-plugin/common'; import { EVENT_ANNOTATION_GROUP_TYPE } from '@kbn/event-annotation-common'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; const CONTENT_ENDPOINT = '/api/content_management/rpc'; @@ -94,6 +95,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`${CONTENT_ENDPOINT}/get`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(payload) .expect(200); @@ -138,6 +140,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`${CONTENT_ENDPOINT}/get`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(payload) .expect(404); @@ -151,7 +154,11 @@ export default function ({ getService }: FtrProviderContext) { describe('search', () => { const performSearch = (payload: EventAnnotationGroupSearchIn) => - supertest.post(`${CONTENT_ENDPOINT}/search`).set('kbn-xsrf', 'kibana').send(payload); + supertest + .post(`${CONTENT_ENDPOINT}/search`) + .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .send(payload); it(`should retrieve existing groups`, async () => { const payload: EventAnnotationGroupSearchIn = { @@ -277,6 +284,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`${CONTENT_ENDPOINT}/create`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(payload) .expect(200); @@ -325,6 +333,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`${CONTENT_ENDPOINT}/create`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(payload) .expect(400); @@ -345,6 +354,7 @@ export default function ({ getService }: FtrProviderContext) { return supertest .post(`${CONTENT_ENDPOINT}/create`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(payload); }; @@ -380,6 +390,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`${CONTENT_ENDPOINT}/update`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(payload) .expect(200); @@ -431,6 +442,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`${CONTENT_ENDPOINT}/update`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(payload) .expect(400); @@ -453,6 +465,7 @@ export default function ({ getService }: FtrProviderContext) { return supertest .post(`${CONTENT_ENDPOINT}/update`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(payload); }; const errorResp = await updateWithDataViewSpec(undefined).expect(400); @@ -477,7 +490,11 @@ export default function ({ getService }: FtrProviderContext) { version: API_VERSION, }; - return supertest.post(`${CONTENT_ENDPOINT}/delete`).set('kbn-xsrf', 'kibana').send(payload); + return supertest + .post(`${CONTENT_ENDPOINT}/delete`) + .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .send(payload); }; it(`should delete a group`, async () => { diff --git a/test/api_integration/apis/guided_onboarding/get_config.ts b/test/api_integration/apis/guided_onboarding/get_config.ts index 3331a08f33c3b..6ab2095e594b8 100644 --- a/test/api_integration/apis/guided_onboarding/get_config.ts +++ b/test/api_integration/apis/guided_onboarding/get_config.ts @@ -9,6 +9,7 @@ import expect from '@kbn/expect'; import { API_BASE_PATH } from '@kbn/guided-onboarding-plugin/common'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; const getConfigsPath = `${API_BASE_PATH}/configs`; @@ -19,7 +20,10 @@ export default function testGetGuideConfig({ getService }: FtrProviderContext) { // check that production guides are present ['siem', 'appSearch', 'websiteSearch', 'databaseSearch', 'kubernetes'].map((guideId) => { it(`returns config for ${guideId}`, async () => { - const response = await supertest.get(`${getConfigsPath}/${guideId}`).expect(200); + const response = await supertest + .get(`${getConfigsPath}/${guideId}`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body).not.to.be.empty(); const { config } = response.body; expect(config).to.not.be.empty(); diff --git a/test/api_integration/apis/guided_onboarding/get_guides.ts b/test/api_integration/apis/guided_onboarding/get_guides.ts index bc4a4628317dc..029a4b2eb33b7 100644 --- a/test/api_integration/apis/guided_onboarding/get_guides.ts +++ b/test/api_integration/apis/guided_onboarding/get_guides.ts @@ -15,6 +15,7 @@ import { } from '@kbn/guided-onboarding-plugin/server/saved_objects/guided_setup'; import { appSearchGuideId } from '@kbn/enterprise-search-plugin/common/guided_onboarding/search_guide_config'; import { API_BASE_PATH } from '@kbn/guided-onboarding-plugin/common'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; import { createGuides } from './helpers'; @@ -32,7 +33,10 @@ export default function testGetGuidesState({ getService }: FtrProviderContext) { }); it('returns an empty array if no guides', async () => { - const response = await supertest.get(getGuidesPath).expect(200); + const response = await supertest + .get(getGuidesPath) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body).not.to.be.empty(); expect(response.body.state).to.be.empty(); }); @@ -42,7 +46,10 @@ export default function testGetGuidesState({ getService }: FtrProviderContext) { testGuideStep1ActiveState, { ...testGuideStep1ActiveState, guideId: appSearchGuideId }, ]); - const response = await supertest.get(getGuidesPath).expect(200); + const response = await supertest + .get(getGuidesPath) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body).not.to.be.empty(); expect(response.body.state).to.eql([ testGuideStep1ActiveState, diff --git a/test/api_integration/apis/guided_onboarding/get_state.ts b/test/api_integration/apis/guided_onboarding/get_state.ts index 54118d993d139..68e291b75dc5e 100644 --- a/test/api_integration/apis/guided_onboarding/get_state.ts +++ b/test/api_integration/apis/guided_onboarding/get_state.ts @@ -19,6 +19,7 @@ import { pluginStateSavedObjectsType, } from '@kbn/guided-onboarding-plugin/server/saved_objects/guided_setup'; import { API_BASE_PATH } from '@kbn/guided-onboarding-plugin/common'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; import { createPluginState, createGuides } from './helpers'; @@ -42,7 +43,10 @@ export default function testGetState({ getService }: FtrProviderContext) { }); it('returns the default plugin state if no saved objects', async () => { - const response = await supertest.get(getStatePath).expect(200); + const response = await supertest + .get(getStatePath) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body.pluginState).not.to.be.empty(); expect(response.body).to.eql({ pluginState: mockPluginStateNotStarted, @@ -59,7 +63,10 @@ export default function testGetState({ getService }: FtrProviderContext) { creationDate: new Date().toISOString(), }); - const response = await supertest.get(getStatePath).expect(200); + const response = await supertest + .get(getStatePath) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body.pluginState).not.to.be.empty(); expect(response.body).to.eql({ pluginState: { @@ -80,7 +87,10 @@ export default function testGetState({ getService }: FtrProviderContext) { creationDate: new Date().toISOString(), }); - const response = await supertest.get(getStatePath).expect(200); + const response = await supertest + .get(getStatePath) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body.pluginState).not.to.be.empty(); expect(response.body).to.eql({ pluginState: { @@ -97,7 +107,10 @@ export default function testGetState({ getService }: FtrProviderContext) { creationDate: getDateXDaysAgo(40), }); - const response = await supertest.get(getStatePath).expect(200); + const response = await supertest + .get(getStatePath) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body.pluginState).not.to.be.empty(); expect(response.body.pluginState.isActivePeriod).to.eql(false); }); @@ -109,7 +122,10 @@ export default function testGetState({ getService }: FtrProviderContext) { creationDate: getDateXDaysAgo(20), }); - const response = await supertest.get(getStatePath).expect(200); + const response = await supertest + .get(getStatePath) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body.pluginState).not.to.be.empty(); expect(response.body.pluginState.isActivePeriod).to.eql(true); }); @@ -124,7 +140,10 @@ export default function testGetState({ getService }: FtrProviderContext) { creationDate: new Date().toISOString(), }); - const response = await supertest.get(getStatePath).expect(200); + const response = await supertest + .get(getStatePath) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(response.body.pluginState.activeGuide.params).to.eql(testGuideParams); }); }); diff --git a/test/api_integration/apis/guided_onboarding/put_state.ts b/test/api_integration/apis/guided_onboarding/put_state.ts index cf3b7b7bfbc3a..c6682be76d528 100644 --- a/test/api_integration/apis/guided_onboarding/put_state.ts +++ b/test/api_integration/apis/guided_onboarding/put_state.ts @@ -23,6 +23,7 @@ import { import { testGuideId } from '@kbn/guided-onboarding'; import { appSearchGuideId } from '@kbn/enterprise-search-plugin/common/guided_onboarding/search_guide_config'; import { API_BASE_PATH } from '@kbn/guided-onboarding-plugin/common'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; import { createGuides, createPluginState } from './helpers'; @@ -43,6 +44,7 @@ export default function testPutState({ getService }: FtrProviderContext) { const response = await supertest .put(putStatePath) .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ status: 'in_progress', }) @@ -72,6 +74,7 @@ export default function testPutState({ getService }: FtrProviderContext) { const response = await supertest .put(putStatePath) .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ status: 'in_progress', }) @@ -96,6 +99,7 @@ export default function testPutState({ getService }: FtrProviderContext) { await supertest .put(putStatePath) .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ guide: testGuideStep1ActiveState, }) @@ -115,6 +119,7 @@ export default function testPutState({ getService }: FtrProviderContext) { await supertest .put(putStatePath) .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ guide: testGuideNotActiveState, }) @@ -139,6 +144,7 @@ export default function testPutState({ getService }: FtrProviderContext) { await supertest .put(putStatePath) .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ guide: { ...testGuideStep1ActiveState, @@ -175,6 +181,7 @@ export default function testPutState({ getService }: FtrProviderContext) { await supertest .put(putStatePath) .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ guide: { ...testGuideStep2ActiveState, diff --git a/test/api_integration/apis/home/sample_data.ts b/test/api_integration/apis/home/sample_data.ts index 4778acc6f4d7a..d290f772fdec5 100644 --- a/test/api_integration/apis/home/sample_data.ts +++ b/test/api_integration/apis/home/sample_data.ts @@ -10,6 +10,7 @@ import expect from '@kbn/expect'; import type { Response } from 'superagent'; import differenceInMilliseconds from 'date-fns/differenceInMilliseconds'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -43,7 +44,11 @@ export default function ({ getService }: FtrProviderContext) { describe(`list in the ${space} space (before install)`, () => { it('should return list of sample data sets with installed status', async () => { - const resp = await supertest.get(apiPath).set('kbn-xsrf', 'kibana').expect(200); + const resp = await supertest + .get(apiPath) + .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); const flightsData = findFlightsData(resp); expect(flightsData.status).to.be('not_installed'); @@ -58,13 +63,18 @@ export default function ({ getService }: FtrProviderContext) { describe(`install in the ${space} space`, () => { it('should return 404 if id does not match any sample data sets', async () => { - await supertest.post(`${apiPath}/xxxx`).set('kbn-xsrf', 'kibana').expect(404); + await supertest + .post(`${apiPath}/xxxx`) + .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(404); }); it('should return 200 if success', async () => { const resp = await supertest .post(`${apiPath}/flights`) .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body).to.eql({ @@ -97,7 +107,10 @@ export default function ({ getService }: FtrProviderContext) { it('should load elasticsearch index containing sample data with dates relative to now parameter', async () => { const nowString = `2000-01-01T00:00:00`; - await supertest.post(`${apiPath}/flights?now=${nowString}`).set('kbn-xsrf', 'kibana'); + await supertest + .post(`${apiPath}/flights?now=${nowString}`) + .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); const resp = await es.search<{ timestamp: string }>({ index: 'kibana_sample_data_flights', @@ -115,7 +128,11 @@ export default function ({ getService }: FtrProviderContext) { describe(`list in the ${space} space (after install)`, () => { it('should return list of sample data sets with installed status', async () => { - const resp = await supertest.get(apiPath).set('kbn-xsrf', 'kibana').expect(200); + const resp = await supertest + .get(apiPath) + .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); const flightsData = findFlightsData(resp); expect(flightsData.status).to.be('installed'); @@ -143,7 +160,12 @@ export default function ({ getService }: FtrProviderContext) { describe(`uninstall in the ${space} space`, () => { it('should uninstall sample data', async () => { // Note: the second time this happens, the index has already been removed, but the uninstall works anyway - await supertest.delete(`${apiPath}/flights`).set('kbn-xsrf', 'kibana').expect(204); + await supertest + .delete(`${apiPath}/flights`) + .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(204); }); it('should remove elasticsearch index containing sample data', async () => { @@ -156,7 +178,11 @@ export default function ({ getService }: FtrProviderContext) { describe(`list in the ${space} space (after uninstall)`, () => { it('should return list of sample data sets with installed status', async () => { - const resp = await supertest.get(apiPath).set('kbn-xsrf', 'kibana').expect(200); + const resp = await supertest + .get(apiPath) + .set('kbn-xsrf', 'kibana') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); const flightsData = findFlightsData(resp); expect(flightsData.status).to.be('not_installed'); diff --git a/test/api_integration/apis/kql_telemetry/kql_telemetry.ts b/test/api_integration/apis/kql_telemetry/kql_telemetry.ts index c3e0d20d276b4..7d3224c0306a5 100644 --- a/test/api_integration/apis/kql_telemetry/kql_telemetry.ts +++ b/test/api_integration/apis/kql_telemetry/kql_telemetry.ts @@ -11,7 +11,10 @@ import expect from '@kbn/expect'; import { get } from 'lodash'; import { ANALYTICS_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server'; import { KQL_TELEMETRY_ROUTE_LATEST_VERSION } from '@kbn/data-plugin/common'; -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -36,6 +39,7 @@ export default function ({ getService }: FtrProviderContext) { .post('/internal/kql_opt_in_stats') .set('content-type', 'application/json') .set(ELASTIC_HTTP_VERSION_HEADER, KQL_TELEMETRY_ROUTE_LATEST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ opt_in: true }) .expect(200); @@ -55,6 +59,7 @@ export default function ({ getService }: FtrProviderContext) { .post('/internal/kql_opt_in_stats') .set('content-type', 'application/json') .set(ELASTIC_HTTP_VERSION_HEADER, KQL_TELEMETRY_ROUTE_LATEST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ opt_in: false }) .expect(200); @@ -74,6 +79,7 @@ export default function ({ getService }: FtrProviderContext) { .post('/internal/kql_opt_in_stats') .set('content-type', 'application/json') .set(ELASTIC_HTTP_VERSION_HEADER, KQL_TELEMETRY_ROUTE_LATEST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ opt_in: true }) .expect('Content-Type', /json/) .expect(200) @@ -87,6 +93,7 @@ export default function ({ getService }: FtrProviderContext) { .post('/internal/kql_opt_in_stats') .set('content-type', 'application/json') .set(ELASTIC_HTTP_VERSION_HEADER, KQL_TELEMETRY_ROUTE_LATEST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ opt_in: false }) .expect('Content-Type', /json/) .expect(200) @@ -101,6 +108,7 @@ export default function ({ getService }: FtrProviderContext) { .post('/internal/kql_opt_in_stats') .set('content-type', 'application/json') .set(ELASTIC_HTTP_VERSION_HEADER, KQL_TELEMETRY_ROUTE_LATEST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ opt_in: 'notabool' }) .expect(400), supertest diff --git a/test/api_integration/apis/saved_objects/bulk_create.ts b/test/api_integration/apis/saved_objects/bulk_create.ts index 80dbbc14e3b50..3e1ad63e3b6ed 100644 --- a/test/api_integration/apis/saved_objects/bulk_create.ts +++ b/test/api_integration/apis/saved_objects/bulk_create.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -47,6 +48,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with individual responses', async () => await supertest .post(`/s/${SPACE_ID}/api/saved_objects/_bulk_create`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(BULK_REQUESTS) .expect(200) .then((resp) => { @@ -87,6 +89,7 @@ export default function ({ getService }: FtrProviderContext) { it('should not return raw id when object id is unspecified', async () => await supertest .post(`/s/${SPACE_ID}/api/saved_objects/_bulk_create`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(BULK_REQUESTS.map(({ id, ...rest }) => rest)) .expect(200) .then((resp) => { diff --git a/test/api_integration/apis/saved_objects/bulk_delete.ts b/test/api_integration/apis/saved_objects/bulk_delete.ts index f5c191e8dabe7..68b2862ff5c8b 100644 --- a/test/api_integration/apis/saved_objects/bulk_delete.ts +++ b/test/api_integration/apis/saved_objects/bulk_delete.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -29,6 +30,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with individual responses when deleting many docs', async () => await supertest .post(`/api/saved_objects/_bulk_delete`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([ { type: 'visualization', @@ -60,6 +62,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return generic 404 when deleting an unknown doc', async () => await supertest .post(`/api/saved_objects/_bulk_delete`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([{ type: 'dashboard', id: 'not-a-real-id' }]) .expect(200) .then((resp) => { @@ -82,6 +85,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return the result of deleting valid and invalid objects in the same request', async () => await supertest .post(`/api/saved_objects/_bulk_delete`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([ { type: 'visualization', id: 'not-a-real-vis-id' }, { diff --git a/test/api_integration/apis/saved_objects/bulk_get.ts b/test/api_integration/apis/saved_objects/bulk_get.ts index 37bb4f17b530d..019297455bdd0 100644 --- a/test/api_integration/apis/saved_objects/bulk_get.ts +++ b/test/api_integration/apis/saved_objects/bulk_get.ts @@ -9,6 +9,7 @@ import { MAIN_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server'; import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -72,6 +73,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with individual responses', async () => await supertest .post(`/api/saved_objects/_bulk_get`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(BULK_REQUESTS) .expect(200) .then((resp) => { @@ -147,6 +149,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with individual responses that include the managed property of each object', async () => await supertest .post(`/api/saved_objects/_bulk_get`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(BULK_REQUESTS_MANAGED) .expect(200) .then((resp) => { @@ -281,6 +284,7 @@ export default function ({ getService }: FtrProviderContext) { const { body } = await supertest .post(`/api/saved_objects/_bulk_get`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([ { type: 'config', diff --git a/test/api_integration/apis/saved_objects/bulk_update.ts b/test/api_integration/apis/saved_objects/bulk_update.ts index 332cd84926922..2233dbdde641d 100644 --- a/test/api_integration/apis/saved_objects/bulk_update.ts +++ b/test/api_integration/apis/saved_objects/bulk_update.ts @@ -9,6 +9,7 @@ import expect from '@kbn/expect'; import _ from 'lodash'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -30,6 +31,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200', async () => { const response = await supertest .put(`/api/saved_objects/_bulk_update`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([ { type: 'visualization', @@ -98,6 +100,7 @@ export default function ({ getService }: FtrProviderContext) { const response = await supertest .put(`/api/saved_objects/_bulk_update`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([ { type: 'visualization', @@ -160,6 +163,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .put(`/api/saved_objects/_bulk_update`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([ { type: 'visualization', @@ -191,6 +195,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return a generic 404', async () => { const response = await supertest .put(`/api/saved_objects/_bulk_update`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([ { type: 'visualization', diff --git a/test/api_integration/apis/saved_objects/create.ts b/test/api_integration/apis/saved_objects/create.ts index 40b1a3617f1fa..1778719fbc502 100644 --- a/test/api_integration/apis/saved_objects/create.ts +++ b/test/api_integration/apis/saved_objects/create.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -30,6 +31,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200', async () => { await supertest .post(`/api/saved_objects/visualization`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ attributes: { title: 'My favorite vis', @@ -72,6 +74,7 @@ export default function ({ getService }: FtrProviderContext) { it('result should not be updated to the latest Kibana version if there are no migrations', async () => { await supertest .post(`/api/saved_objects/visualization`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ attributes: { title: 'My favorite vis', diff --git a/test/api_integration/apis/saved_objects/delete.ts b/test/api_integration/apis/saved_objects/delete.ts index ba2b66548a558..4630943680f3b 100644 --- a/test/api_integration/apis/saved_objects/delete.ts +++ b/test/api_integration/apis/saved_objects/delete.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -29,6 +30,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 when deleting a doc', async () => await supertest .delete(`/api/saved_objects/dashboard/be3733a0-9efe-11e7-acb3-3dab96693fab`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({}); @@ -37,6 +39,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return generic 404 when deleting an unknown doc', async () => await supertest .delete(`/api/saved_objects/dashboard/not-a-real-id`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(404) .then((resp) => { expect(resp.body).to.eql({ diff --git a/test/api_integration/apis/saved_objects/delete_unknown_types.ts b/test/api_integration/apis/saved_objects/delete_unknown_types.ts index e61c7d84bc580..b03f6eebc3cfb 100644 --- a/test/api_integration/apis/saved_objects/delete_unknown_types.ts +++ b/test/api_integration/apis/saved_objects/delete_unknown_types.ts @@ -12,6 +12,7 @@ import { MAIN_SAVED_OBJECT_INDEX, ANALYTICS_SAVED_OBJECT_INDEX, } from '@kbn/core-saved-objects-server'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); @@ -72,6 +73,7 @@ export default function ({ getService }: FtrProviderContext) { .post(`/internal/saved_objects/deprecations/_delete_unknown_types`) .send({}) .set('kbn-xsrf', 'true') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({ success: true }); diff --git a/test/api_integration/apis/saved_objects/find.ts b/test/api_integration/apis/saved_objects/find.ts index 4664171879813..fb100210b19ac 100644 --- a/test/api_integration/apis/saved_objects/find.ts +++ b/test/api_integration/apis/saved_objects/find.ts @@ -11,6 +11,7 @@ import { sortBy } from 'lodash'; import { MAIN_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server'; import expect from '@kbn/expect'; import { SavedObject } from '@kbn/core/server'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -47,6 +48,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with individual responses', async () => await supertest .get(`/s/${SPACE_ID}/api/saved_objects/_find?type=visualization&fields=title`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body.saved_objects.map((so: { id: string }) => so.id)).to.eql([ @@ -68,6 +70,7 @@ export default function ({ getService }: FtrProviderContext) { const { body } = await supertest .get(`/s/${SPACE_ID}/api/saved_objects/_find?type=config`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(body.saved_objects.map((so: { id: string }) => so.id)).to.eql(['7.0.0-alpha1']); @@ -81,6 +84,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with empty response', async () => await supertest .get(`/s/${SPACE_ID}/api/saved_objects/_find?type=wigwags`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({ @@ -97,6 +101,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with empty response', async () => await supertest .get(`/s/${SPACE_ID}/api/saved_objects/_find?type=visualization&page=100&per_page=100`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({ @@ -112,6 +117,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with empty response', async () => await supertest .get(`/s/${SPACE_ID}/api/saved_objects/_find?type=url&search_fields=a`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({ @@ -127,6 +133,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with empty response', async () => await supertest .get(`/s/${SPACE_ID}/api/saved_objects/_find?type=visualization&namespaces=foo`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({ @@ -142,6 +149,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with individual responses', async () => await supertest .get(`/api/saved_objects/_find?type=visualization&fields=title&namespaces=${SPACE_ID}`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect( @@ -161,6 +169,7 @@ export default function ({ getService }: FtrProviderContext) { .get( `/api/saved_objects/_find?type=visualization&fields=title&fields=originId&namespaces=*` ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const knownDocuments = resp.body.saved_objects.filter((so: { namespaces: string[] }) => @@ -187,6 +196,7 @@ export default function ({ getService }: FtrProviderContext) { .get( `/s/${SPACE_ID}/api/saved_objects/_find?type=visualization&filter=visualization.attributes.title:"Count of requests"` ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body.saved_objects.map((so: { id: string }) => so.id)).to.eql([ @@ -199,6 +209,7 @@ export default function ({ getService }: FtrProviderContext) { .get( `/s/${SPACE_ID}/api/saved_objects/_find?type=visualization&filter=dashboard.attributes.title:foo` ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(400) .then((resp) => { expect(resp.body).to.eql({ @@ -213,6 +224,7 @@ export default function ({ getService }: FtrProviderContext) { .get( `/s/${SPACE_ID}/api/saved_objects/_find?type=dashboard&filter=dashboard.attributes.title:foo { expect(resp.body.error).to.be('Bad Request'); @@ -231,6 +243,7 @@ export default function ({ getService }: FtrProviderContext) { }) )}` ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({ @@ -255,6 +268,7 @@ export default function ({ getService }: FtrProviderContext) { }) )}` ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(400) .then((resp) => { expect(resp.body).to.eql({ @@ -279,6 +293,7 @@ export default function ({ getService }: FtrProviderContext) { }) )}` ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(400) .then((resp) => { expect(resp.body).to.eql({ @@ -311,6 +326,7 @@ export default function ({ getService }: FtrProviderContext) { type: 'visualization', has_reference: JSON.stringify({ type: 'ref-type', id: 'ref-1' }), }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const objects = resp.body.saved_objects; @@ -332,6 +348,7 @@ export default function ({ getService }: FtrProviderContext) { ]), has_reference_operator: 'OR', }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const objects = resp.body.saved_objects; @@ -354,6 +371,7 @@ export default function ({ getService }: FtrProviderContext) { ]), has_reference_operator: 'AND', }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const objects = resp.body.saved_objects; @@ -383,6 +401,7 @@ export default function ({ getService }: FtrProviderContext) { type: 'visualization', has_no_reference: JSON.stringify({ type: 'ref-type', id: 'ref-1' }), }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const objects = resp.body.saved_objects; @@ -405,6 +424,7 @@ export default function ({ getService }: FtrProviderContext) { ]), has_no_reference_operator: 'OR', }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const objects = resp.body.saved_objects; @@ -428,6 +448,7 @@ export default function ({ getService }: FtrProviderContext) { ]), has_no_reference_operator: 'AND', }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const objects = resp.body.saved_objects; @@ -462,6 +483,7 @@ export default function ({ getService }: FtrProviderContext) { has_reference: JSON.stringify({ type: 'ref-type', id: 'ref-1' }), has_no_reference: JSON.stringify({ type: 'ref-type', id: 'ref-2' }), }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const objects = resp.body.saved_objects; @@ -478,6 +500,7 @@ export default function ({ getService }: FtrProviderContext) { has_reference: JSON.stringify({ type: 'ref-type', id: 'ref-1' }), has_no_reference: JSON.stringify({ type: 'ref-type', id: 'ref-1' }), }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const objects = resp.body.saved_objects; @@ -509,6 +532,7 @@ export default function ({ getService }: FtrProviderContext) { search_fields: 'title', search: 'my-vis*', }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const savedObjects = resp.body.saved_objects; @@ -525,6 +549,7 @@ export default function ({ getService }: FtrProviderContext) { search_fields: 'title', search: 'my-*', }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const savedObjects = resp.body.saved_objects; @@ -541,6 +566,7 @@ export default function ({ getService }: FtrProviderContext) { search_fields: 'title', search: 'some*vi*', }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const savedObjects = resp.body.saved_objects; @@ -557,6 +583,7 @@ export default function ({ getService }: FtrProviderContext) { search_fields: 'title', search: 'visuali*', }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { const savedObjects = resp.body.saved_objects; diff --git a/test/api_integration/apis/saved_objects/get.ts b/test/api_integration/apis/saved_objects/get.ts index 2f03a8d031a1e..d745c0ea2d585 100644 --- a/test/api_integration/apis/saved_objects/get.ts +++ b/test/api_integration/apis/saved_objects/get.ts @@ -9,6 +9,7 @@ import { MAIN_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server'; import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -37,6 +38,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200', async () => await supertest .get(`/api/saved_objects/visualization/dd7caf20-9efd-11e7-acb3-3dab96693fab`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({ @@ -74,6 +76,7 @@ export default function ({ getService }: FtrProviderContext) { it("should return an object's managed property", async () => { await supertest .get(`/api/saved_objects/dashboard/11fb046d-0e50-48a0-a410-a744b82cbffd`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { expect(resp.body).to.eql({ @@ -126,7 +129,10 @@ export default function ({ getService }: FtrProviderContext) { }, }); - const { body } = await supertest.get(`/api/saved_objects/config/7.0.0-alpha1`).expect(200); + const { body } = await supertest + .get(`/api/saved_objects/config/7.0.0-alpha1`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(body.coreMigrationVersion).to.be.ok(); expect(body.coreMigrationVersion).not.to.be('7.0.0'); @@ -138,6 +144,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return same generic error as when index does not exist', async () => await supertest .get(`/api/saved_objects/visualization/foobar`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(404) .then((resp) => { expect(resp.body).to.eql({ diff --git a/test/api_integration/apis/saved_objects/resolve.ts b/test/api_integration/apis/saved_objects/resolve.ts index b538216e0ec19..6ef773b2c170f 100644 --- a/test/api_integration/apis/saved_objects/resolve.ts +++ b/test/api_integration/apis/saved_objects/resolve.ts @@ -9,6 +9,7 @@ import { MAIN_SAVED_OBJECT_INDEX } from '@kbn/core-saved-objects-server'; import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -32,6 +33,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200', async () => await supertest .get(`/api/saved_objects/resolve/visualization/dd7caf20-9efd-11e7-acb3-3dab96693fab`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { resp.body.saved_object.updated_at = '2015-01-01T00:00:00.000Z'; @@ -85,6 +87,7 @@ export default function ({ getService }: FtrProviderContext) { const { body } = await supertest .get(`/api/saved_objects/resolve/config/7.0.0-alpha1`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(body.saved_object.coreMigrationVersion).to.be.ok(); @@ -97,6 +100,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return same generic error as when index does not exist', async () => await supertest .get(`/api/saved_objects/resolve/visualization/foobar`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(404) .then((resp) => { expect(resp.body).to.eql({ diff --git a/test/api_integration/apis/saved_objects/update.ts b/test/api_integration/apis/saved_objects/update.ts index e04072f0bae0e..744704a7d3537 100644 --- a/test/api_integration/apis/saved_objects/update.ts +++ b/test/api_integration/apis/saved_objects/update.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -33,6 +34,7 @@ export default function ({ getService }: FtrProviderContext) { title: 'My second favorite vis', }, }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp) => { // loose uuid validation @@ -66,6 +68,7 @@ export default function ({ getService }: FtrProviderContext) { title: 'foo', }, }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body).not.to.have.property('references'); @@ -82,6 +85,7 @@ export default function ({ getService }: FtrProviderContext) { }, references, }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body).to.have.property('references'); @@ -97,6 +101,7 @@ export default function ({ getService }: FtrProviderContext) { }, references: [], }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body).to.have.property('references'); @@ -115,10 +120,12 @@ export default function ({ getService }: FtrProviderContext) { description: 'upserted description', }, }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); const { body: upserted } = await supertest .get(`/api/saved_objects/visualization/upserted-viz`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(upserted.attributes).to.eql({ @@ -137,10 +144,12 @@ export default function ({ getService }: FtrProviderContext) { version: 9000, }, }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); const { body: notUpserted } = await supertest .get(`/api/saved_objects/visualization/upserted-viz`) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(notUpserted.attributes).to.eql({ @@ -158,6 +167,7 @@ export default function ({ getService }: FtrProviderContext) { title: 'My second favorite vis', }, }) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(404) .then((resp) => { expect(resp.body).eql({ diff --git a/test/api_integration/apis/saved_objects_management/bulk_delete.ts b/test/api_integration/apis/saved_objects_management/bulk_delete.ts index 5c71b982307f6..c1a862eb75b12 100644 --- a/test/api_integration/apis/saved_objects_management/bulk_delete.ts +++ b/test/api_integration/apis/saved_objects_management/bulk_delete.ts @@ -9,6 +9,7 @@ import expect from '@kbn/expect'; import type { Response } from 'supertest'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -52,6 +53,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 for an existing object', async () => await supertest .post(endpoint) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([validObject]) .expect(200) .then((response: Response) => { @@ -62,6 +64,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return error for invalid object type', async () => await supertest .post(endpoint) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([invalidObject]) .expect(200) .then((response: Response) => { @@ -72,6 +75,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return mix of successes and errors', async () => await supertest .post(endpoint) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([validObject, invalidObject]) .expect(200) .then((response: Response) => { diff --git a/test/api_integration/apis/saved_objects_management/bulk_get.ts b/test/api_integration/apis/saved_objects_management/bulk_get.ts index 0acbb03fa7d53..01a05ff48758d 100644 --- a/test/api_integration/apis/saved_objects_management/bulk_get.ts +++ b/test/api_integration/apis/saved_objects_management/bulk_get.ts @@ -9,6 +9,7 @@ import expect from '@kbn/expect'; import type { Response } from 'supertest'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import type { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -53,6 +54,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 for object that exists and inject metadata', async () => await supertest .post(URL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([validObject]) .expect(200) .then((response: Response) => { @@ -63,6 +65,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return error for invalid object type', async () => await supertest .post(URL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([invalidObject]) .expect(200) .then((response: Response) => { @@ -73,6 +76,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return mix of successes and errors', async () => await supertest .post(URL) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send([validObject, invalidObject]) .expect(200) .then((response: Response) => { diff --git a/test/api_integration/apis/saved_objects_management/find.ts b/test/api_integration/apis/saved_objects_management/find.ts index 539fb10c7ee09..5d5c953065eac 100644 --- a/test/api_integration/apis/saved_objects_management/find.ts +++ b/test/api_integration/apis/saved_objects_management/find.ts @@ -9,6 +9,7 @@ import expect from '@kbn/expect'; import { Response } from 'supertest'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -39,6 +40,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with individual responses', async () => await supertest .get('/api/kibana/management/saved_objects/_find?type=visualization') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp: Response) => { expect(resp.body.saved_objects.map((so: { id: string }) => so.id)).to.eql([ @@ -50,6 +52,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 200 with empty response', async () => await supertest .get('/api/kibana/management/saved_objects/_find?type=wigwags') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp: Response) => { expect(resp.body).to.eql({ @@ -67,6 +70,7 @@ export default function ({ getService }: FtrProviderContext) { .get( '/api/kibana/management/saved_objects/_find?type=visualization&page=100&perPage=100' ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp: Response) => { expect(resp.body).to.eql({ @@ -82,6 +86,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 400 when using searchFields', async () => await supertest .get('/api/kibana/management/saved_objects/_find?type=url&searchFields=a') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(400) .then((resp: Response) => { expect(resp.body).to.eql({ @@ -107,6 +112,7 @@ export default function ({ getService }: FtrProviderContext) { it('search for a reference', async () => { await supertest .get('/api/kibana/management/saved_objects/_find') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ type: 'visualization', hasReference: JSON.stringify({ type: 'ref-type', id: 'ref-1' }), @@ -121,6 +127,7 @@ export default function ({ getService }: FtrProviderContext) { it('search for multiple references with OR operator', async () => { await supertest .get('/api/kibana/management/saved_objects/_find') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ type: 'visualization', hasReference: JSON.stringify([ @@ -143,6 +150,7 @@ export default function ({ getService }: FtrProviderContext) { it('search for multiple references with AND operator', async () => { await supertest .get('/api/kibana/management/saved_objects/_find') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ type: 'visualization', hasReference: JSON.stringify([ @@ -163,6 +171,7 @@ export default function ({ getService }: FtrProviderContext) { it('sort objects by "type" in "asc" order', async () => { await supertest .get('/api/kibana/management/saved_objects/_find') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ type: ['visualization', 'dashboard'], sortField: 'type', @@ -179,6 +188,7 @@ export default function ({ getService }: FtrProviderContext) { it('sort objects by "type" in "desc" order', async () => { await supertest .get('/api/kibana/management/saved_objects/_find') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .query({ type: ['visualization', 'dashboard'], sortField: 'type', @@ -210,6 +220,7 @@ export default function ({ getService }: FtrProviderContext) { it('should inject meta attributes for searches', async () => await supertest .get('/api/kibana/management/saved_objects/_find?type=search') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp: Response) => { expect(resp.body.saved_objects).to.have.length(1); @@ -228,6 +239,7 @@ export default function ({ getService }: FtrProviderContext) { it('should inject meta attributes for dashboards', async () => await supertest .get('/api/kibana/management/saved_objects/_find?type=dashboard') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp: Response) => { expect(resp.body.saved_objects).to.have.length(1); @@ -246,6 +258,7 @@ export default function ({ getService }: FtrProviderContext) { it('should inject meta attributes for visualizations', async () => await supertest .get('/api/kibana/management/saved_objects/_find?type=visualization') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp: Response) => { expect(resp.body.saved_objects).to.have.length(2); @@ -274,6 +287,7 @@ export default function ({ getService }: FtrProviderContext) { it('should inject meta attributes for index patterns', async () => await supertest .get('/api/kibana/management/saved_objects/_find?type=index-pattern') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((resp: Response) => { expect(resp.body.saved_objects).to.have.length(1); diff --git a/test/api_integration/apis/saved_objects_management/relationships.ts b/test/api_integration/apis/saved_objects_management/relationships.ts index 9245c84674458..15b7ee51d40af 100644 --- a/test/api_integration/apis/saved_objects_management/relationships.ts +++ b/test/api_integration/apis/saved_objects_management/relationships.ts @@ -9,6 +9,7 @@ import expect from '@kbn/expect'; import { schema } from '@kbn/config-schema'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -67,6 +68,7 @@ export default function ({ getService }: FtrProviderContext) { it('should validate search response schema', async () => { const resp = await supertest .get(relationshipsUrl('search', '960372e0-3224-11e8-a572-ffca06da1357')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(() => { @@ -77,6 +79,7 @@ export default function ({ getService }: FtrProviderContext) { it('should work for searches', async () => { const resp = await supertest .get(relationshipsUrl('search', '960372e0-3224-11e8-a572-ffca06da1357')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body.relations).to.eql([ @@ -119,6 +122,7 @@ export default function ({ getService }: FtrProviderContext) { .get( relationshipsUrl('search', '960372e0-3224-11e8-a572-ffca06da1357', ['visualization']) ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body.relations).to.eql([ @@ -159,6 +163,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 404 if search finds no results', async () => { await supertest .get(relationshipsUrl('search', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(404); }); }); @@ -167,6 +172,7 @@ export default function ({ getService }: FtrProviderContext) { it('should validate dashboard response schema', async () => { const resp = await supertest .get(relationshipsUrl('dashboard', 'b70c7ae0-3224-11e8-a572-ffca06da1357')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(() => { @@ -177,6 +183,7 @@ export default function ({ getService }: FtrProviderContext) { it('should work for dashboards', async () => { const resp = await supertest .get(relationshipsUrl('dashboard', 'b70c7ae0-3224-11e8-a572-ffca06da1357')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body.relations).to.eql([ @@ -216,6 +223,7 @@ export default function ({ getService }: FtrProviderContext) { it('should filter based on savedObjectTypes', async () => { const resp = await supertest .get(relationshipsUrl('dashboard', 'b70c7ae0-3224-11e8-a572-ffca06da1357', ['search'])) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body.relations).to.eql([ @@ -255,6 +263,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 404 if dashboard finds no results', async () => { await supertest .get(relationshipsUrl('dashboard', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(404); }); }); @@ -263,6 +272,7 @@ export default function ({ getService }: FtrProviderContext) { it('should validate visualization response schema', async () => { const resp = await supertest .get(relationshipsUrl('visualization', 'a42c0580-3224-11e8-a572-ffca06da1357')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(() => { @@ -273,6 +283,7 @@ export default function ({ getService }: FtrProviderContext) { it('should work for visualizations', async () => { const resp = await supertest .get(relationshipsUrl('visualization', 'a42c0580-3224-11e8-a572-ffca06da1357')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body.relations).to.eql([ @@ -314,6 +325,7 @@ export default function ({ getService }: FtrProviderContext) { .get( relationshipsUrl('visualization', 'a42c0580-3224-11e8-a572-ffca06da1357', ['search']) ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body.relations).to.eql([ @@ -338,6 +350,7 @@ export default function ({ getService }: FtrProviderContext) { it('should return 404 if visualizations finds no results', async () => { await supertest .get(relationshipsUrl('visualization', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(404); }); }); @@ -346,6 +359,7 @@ export default function ({ getService }: FtrProviderContext) { it('should validate index-pattern response schema', async () => { const resp = await supertest .get(relationshipsUrl('index-pattern', '8963ca30-3224-11e8-a572-ffca06da1357')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(() => { @@ -356,6 +370,7 @@ export default function ({ getService }: FtrProviderContext) { it('should work for index patterns', async () => { const resp = await supertest .get(relationshipsUrl('index-pattern', '8963ca30-3224-11e8-a572-ffca06da1357')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body.relations).to.eql([ @@ -397,6 +412,7 @@ export default function ({ getService }: FtrProviderContext) { .get( relationshipsUrl('index-pattern', '8963ca30-3224-11e8-a572-ffca06da1357', ['search']) ) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); expect(resp.body.relations).to.eql([ @@ -421,13 +437,17 @@ export default function ({ getService }: FtrProviderContext) { it('should return 404 if index pattern finds no results', async () => { await supertest .get(relationshipsUrl('index-pattern', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(404); }); }); describe('invalid references', () => { it('should validate the response schema', async () => { - const resp = await supertest.get(relationshipsUrl('dashboard', 'invalid-refs')).expect(200); + const resp = await supertest + .get(relationshipsUrl('dashboard', 'invalid-refs')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(() => { responseSchema.validate(resp.body); @@ -435,7 +455,10 @@ export default function ({ getService }: FtrProviderContext) { }); it('should return the invalid relations', async () => { - const resp = await supertest.get(relationshipsUrl('dashboard', 'invalid-refs')).expect(200); + const resp = await supertest + .get(relationshipsUrl('dashboard', 'invalid-refs')) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect(200); expect(resp.body).to.eql({ invalidRelations: [ diff --git a/test/api_integration/apis/saved_objects_management/scroll_count.ts b/test/api_integration/apis/saved_objects_management/scroll_count.ts index dcaf1fedcd071..761f2aea4184a 100644 --- a/test/api_integration/apis/saved_objects_management/scroll_count.ts +++ b/test/api_integration/apis/saved_objects_management/scroll_count.ts @@ -8,6 +8,7 @@ */ import expect from '@kbn/expect'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; const apiUrl = '/api/kibana/management/saved_objects/scroll/counts'; @@ -36,6 +37,7 @@ export default function ({ getService }: FtrProviderContext) { it('returns the count for each included types', async () => { const res = await supertest .post(apiUrl) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ typesToInclude: defaultTypes, }) @@ -52,6 +54,7 @@ export default function ({ getService }: FtrProviderContext) { it('only returns count for types to include', async () => { const res = await supertest .post(apiUrl) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ typesToInclude: ['dashboard', 'search'], }) @@ -66,6 +69,7 @@ export default function ({ getService }: FtrProviderContext) { it('filters on title when `searchString` is provided', async () => { const res = await supertest .post(apiUrl) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ typesToInclude: defaultTypes, searchString: 'Amazing', @@ -83,6 +87,7 @@ export default function ({ getService }: FtrProviderContext) { it('includes all requested types even when none match the search', async () => { const res = await supertest .post(apiUrl) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ typesToInclude: ['dashboard', 'search', 'visualization'], searchString: 'nothing-will-match', @@ -139,6 +144,7 @@ export default function ({ getService }: FtrProviderContext) { it('returns the correct count for each included types', async () => { const res = await supertest .post(apiUrl) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ typesToInclude: ['visualization'], }) diff --git a/test/api_integration/apis/saved_queries/saved_queries.ts b/test/api_integration/apis/saved_queries/saved_queries.ts index 679020430b877..f211dfc06da7f 100644 --- a/test/api_integration/apis/saved_queries/saved_queries.ts +++ b/test/api_integration/apis/saved_queries/saved_queries.ts @@ -8,7 +8,10 @@ */ import expect from '@kbn/expect'; -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { SavedQueryAttributes, SAVED_QUERY_BASE_URL } from '@kbn/data-plugin/common'; import { FtrProviderContext } from '../../ftr_provider_context'; @@ -33,33 +36,46 @@ export default function ({ getService }: FtrProviderContext) { supertest .post(`${SAVED_QUERY_BASE_URL}/_create`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(query); const updateQuery = (id: string, query: Partial = mockSavedQuery) => supertest .put(`${SAVED_QUERY_BASE_URL}/${id}`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(query); const deleteQuery = (id: string) => - supertest.delete(`${SAVED_QUERY_BASE_URL}/${id}`).set(ELASTIC_HTTP_VERSION_HEADER, '1'); + supertest + .delete(`${SAVED_QUERY_BASE_URL}/${id}`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); const getQuery = (id: string) => - supertest.get(`${SAVED_QUERY_BASE_URL}/${id}`).set(ELASTIC_HTTP_VERSION_HEADER, '1'); + supertest + .get(`${SAVED_QUERY_BASE_URL}/${id}`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); const findQueries = (options: { search?: string; perPage?: number; page?: number } = {}) => supertest .post(`${SAVED_QUERY_BASE_URL}/_find`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(options); const countQueries = () => - supertest.get(`${SAVED_QUERY_BASE_URL}/_count`).set(ELASTIC_HTTP_VERSION_HEADER, '1'); + supertest + .get(`${SAVED_QUERY_BASE_URL}/_count`) + .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana'); const isDuplicateTitle = (title: string, id?: string) => supertest .post(`${SAVED_QUERY_BASE_URL}/_is_duplicate_title`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ title, id }); describe('Saved queries API', function () { diff --git a/test/api_integration/apis/scripts/languages.js b/test/api_integration/apis/scripts/languages.js index 2c85f359ce486..b77cc9c01c5ad 100644 --- a/test/api_integration/apis/scripts/languages.js +++ b/test/api_integration/apis/scripts/languages.js @@ -9,7 +9,10 @@ import expect from '@kbn/expect'; -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { SCRIPT_LANGUAGES_ROUTE_LATEST_VERSION } from '@kbn/data-plugin/common/constants'; export default function ({ getService }) { @@ -20,6 +23,7 @@ export default function ({ getService }) { supertest .get('/internal/scripts/languages') .set(ELASTIC_HTTP_VERSION_HEADER, SCRIPT_LANGUAGES_ROUTE_LATEST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((response) => { expect(response.body).to.be.an('array'); @@ -30,6 +34,7 @@ export default function ({ getService }) { supertest .get('/internal/scripts/languages') .set(ELASTIC_HTTP_VERSION_HEADER, SCRIPT_LANGUAGES_ROUTE_LATEST_VERSION) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200) .then((response) => { expect(response.body).to.contain('expression'); diff --git a/test/api_integration/apis/search/bsearch.ts b/test/api_integration/apis/search/bsearch.ts index ed080ee4f553c..2c4bcead1d475 100644 --- a/test/api_integration/apis/search/bsearch.ts +++ b/test/api_integration/apis/search/bsearch.ts @@ -10,7 +10,10 @@ import expect from '@kbn/expect'; import request from 'superagent'; import { inflateResponse } from '@kbn/bfetch-plugin/public/streaming'; -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { BFETCH_ROUTE_VERSION_LATEST } from '@kbn/bfetch-plugin/common'; import { FtrProviderContext } from '../../ftr_provider_context'; import { painlessErrReq } from './painless_err_req'; @@ -35,6 +38,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -68,6 +72,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch?compress=true`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -101,6 +106,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -144,6 +150,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -175,6 +182,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -215,6 +223,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -240,6 +249,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -274,6 +284,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -324,6 +335,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -359,6 +371,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -408,6 +421,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -436,6 +450,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -466,6 +481,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -495,6 +511,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { @@ -526,6 +543,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/bsearch`) .set(ELASTIC_HTTP_VERSION_HEADER, BFETCH_ROUTE_VERSION_LATEST) + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ batch: [ { diff --git a/test/api_integration/apis/search/search.ts b/test/api_integration/apis/search/search.ts index c3bf86933bd1c..01609bec6f1b9 100644 --- a/test/api_integration/apis/search/search.ts +++ b/test/api_integration/apis/search/search.ts @@ -7,7 +7,10 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import expect from '@kbn/expect'; import { FtrProviderContext } from '../../ftr_provider_context'; import { painlessErrReq } from './painless_err_req'; @@ -31,6 +34,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/search/es`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ params: { body: { @@ -53,6 +57,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/search/es`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ params: { terminateAfter: 1, @@ -78,6 +83,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/search`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ body: { query: { @@ -94,6 +100,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/search/banana`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ body: { query: { @@ -102,9 +109,8 @@ export default function ({ getService }: FtrProviderContext) { }, }) .expect(404); - verifyErrorResponse(resp.body, 404); - expect(resp.body.message).to.contain('banana not found'); + expect(resp.body.message).to.be('Search strategy banana not found'); expect(resp.header).to.have.property(ELASTIC_HTTP_VERSION_HEADER, '1'); }); @@ -112,6 +118,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/search/es`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ params: { timeout: 1, // This should be a time range string! @@ -133,6 +140,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/search/es`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ params: { body: { @@ -150,6 +158,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/search/es`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send(painlessErrReq) .expect(400); @@ -162,6 +171,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .delete(`/internal/search/es`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send() .expect(404); verifyErrorResponse(resp.body, 404); @@ -171,6 +181,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .delete(`/internal/search/es/123`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send() .expect(400); verifyErrorResponse(resp.body, 400); diff --git a/test/api_integration/apis/search/sql_search.ts b/test/api_integration/apis/search/sql_search.ts index e4d0f15e24040..374fdd263ee29 100644 --- a/test/api_integration/apis/search/sql_search.ts +++ b/test/api_integration/apis/search/sql_search.ts @@ -8,7 +8,10 @@ */ import expect from '@kbn/expect'; -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { @@ -31,6 +34,7 @@ export default function ({ getService }: FtrProviderContext) { const resp = await supertest .post(`/internal/search/sql`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ params: { query: sqlQuery, @@ -49,6 +53,7 @@ export default function ({ getService }: FtrProviderContext) { const resp1 = await supertest .post(`/internal/search/sql`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ params: { query: sqlQuery, @@ -61,6 +66,7 @@ export default function ({ getService }: FtrProviderContext) { const resp2 = await supertest .post(`/internal/search/sql/${id}`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({}); expect(resp2.status).to.be(200); @@ -77,6 +83,7 @@ export default function ({ getService }: FtrProviderContext) { const resp1 = await supertest .post(`/internal/search/sql`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ params: { query: sqlQuery, @@ -90,6 +97,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .post(`/internal/search/sql/${id}`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({}) .expect(200); @@ -97,6 +105,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .delete(`/internal/search/sql/${id}`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send() .expect(200); @@ -104,6 +113,7 @@ export default function ({ getService }: FtrProviderContext) { await supertest .post(`/internal/search/sql/${id}`) .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({}) .expect(404); }); diff --git a/test/api_integration/apis/suggestions/suggestions.js b/test/api_integration/apis/suggestions/suggestions.js index ad18af6689c63..97a1dbae734de 100644 --- a/test/api_integration/apis/suggestions/suggestions.js +++ b/test/api_integration/apis/suggestions/suggestions.js @@ -8,7 +8,10 @@ */ import expect from '@kbn/expect'; -import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common'; +import { + ELASTIC_HTTP_VERSION_HEADER, + X_ELASTIC_INTERNAL_ORIGIN_REQUEST, +} from '@kbn/core-http-common'; export default function ({ getService }) { const esArchiver = getService('esArchiver'); @@ -37,6 +40,7 @@ export default function ({ getService }) { supertest .post('/internal/kibana/suggestions/values/basic_index') .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ field: 'baz.keyword', query: '', @@ -51,6 +55,7 @@ export default function ({ getService }) { supertest .post('/internal/kibana/suggestions/values/basic_index') .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ field: 'baz.keyword', method: 'terms_agg', @@ -66,6 +71,7 @@ export default function ({ getService }) { supertest .post('/internal/kibana/suggestions/values/basic_index') .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ field: 'baz.keyword', method: 'terms_enum', @@ -81,6 +87,7 @@ export default function ({ getService }) { supertest .post('/internal/kibana/suggestions/values/basic_index') .set(ELASTIC_HTTP_VERSION_HEADER, '1') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .send({ field: 'baz.keyword', query: ' { + before(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + await kibanaServer.importExport.load( + 'test/functional/fixtures/kbn_archiver/dashboard/current/kibana' + ); + await kibanaServer.uiSettings.replace({ + defaultIndex: '0bf35f60-3dc9-11e8-8660-4d65aa086b3c', + }); + }); + + after(async () => { + await kibanaServer.savedObjects.cleanStandardList(); + }); + + it('renders a panel with predefined order of panel groups', async () => { + await PageObjects.dashboard.navigateToApp(); + await PageObjects.dashboard.clickNewDashboard(); + await PageObjects.dashboard.switchToEditMode(); + + await dashboardAddPanel.clickEditorMenuButton(); + + const panelSelectionList = await testSubjects.find('dashboardPanelSelectionList'); + + const panelGroupByOrder = new Map(); + + const panelGroups = await panelSelectionList.findAllByCssSelector( + '[data-test-subj*="dashboardEditorMenu-"]' + ); + + for (let i = 0; i < panelGroups.length; i++) { + const panelGroup = panelGroups[i]; + const order = await panelGroup.getAttribute('data-group-sort-order'); + // @ts-ignore + const [, panelGroupTitle] = (await panelGroup.getAttribute('data-test-subj'))?.match( + /dashboardEditorMenu-(.*)/ + ); + + panelGroupByOrder.set(order, panelGroupTitle); + } + + expect(panelGroupByOrder.size).to.eql(4); + + expect([...panelGroupByOrder.values()]).to.eql([ + 'visualizationsGroup', + 'annotation-and-navigationGroup', + 'observabilityGroup', + 'legacyGroup', + ]); + }); + }); +} diff --git a/test/functional/apps/dashboard/group5/index.ts b/test/functional/apps/dashboard/group5/index.ts index ee778c16ba374..c21bf0ef64ea7 100644 --- a/test/functional/apps/dashboard/group5/index.ts +++ b/test/functional/apps/dashboard/group5/index.ts @@ -37,6 +37,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./dashboard_error_handling')); loadTestFile(require.resolve('./legacy_urls')); loadTestFile(require.resolve('./saved_search_embeddable')); + loadTestFile(require.resolve('./dashboard_panel_listing')); // Note: This one must be last because it unloads some data for one of its tests! // No, this isn't ideal, but loading/unloading takes so much time and these are all bunched diff --git a/test/functional/apps/discover/context_awareness/extensions/_get_cell_renderers.ts b/test/functional/apps/discover/context_awareness/extensions/_get_cell_renderers.ts index b82bc9241b392..a1e884a82cb4f 100644 --- a/test/functional/apps/discover/context_awareness/extensions/_get_cell_renderers.ts +++ b/test/functional/apps/discover/context_awareness/extensions/_get_cell_renderers.ts @@ -37,135 +37,245 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); describe('ES|QL mode', () => { - it('should render log.level badge cell', async () => { - const state = kbnRison.encode({ - dataSource: { type: 'esql' }, - query: { - esql: 'from my-example-logs,logstash* | sort @timestamp desc | where `log.level` is not null', - }, + describe('Log Level Badge Cell', () => { + it('should render log.level badge cell', async () => { + const state = kbnRison.encode({ + dataSource: { type: 'esql' }, + query: { + esql: 'from my-example-logs,logstash* | sort @timestamp desc | where `log.level` is not null', + }, + }); + await common.navigateToActualUrl('discover', `?_a=${state}`, { + ensureCurrentUrl: false, + }); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('log.level'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + const firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 0); + const logLevelBadge = await firstCell.findByTestSubject('*logLevelBadgeCell-'); + expect(await logLevelBadge.getVisibleText()).to.be('debug'); + expect(await logLevelBadge.getComputedStyle('background-color')).to.be( + 'rgba(190, 207, 227, 1)' + ); }); - await common.navigateToActualUrl('discover', `?_a=${state}`, { - ensureCurrentUrl: false, + + it("should not render log.level badge cell if it's not a logs data source", async () => { + const state = kbnRison.encode({ + dataSource: { type: 'esql' }, + query: { + esql: 'from my-example* | sort @timestamp desc | where `log.level` is not null', + }, + }); + await common.navigateToActualUrl('discover', `?_a=${state}`, { + ensureCurrentUrl: false, + }); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('log.level'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + await retry.try(async () => { + const firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 0); + expect(await firstCell.getVisibleText()).to.be('debug'); + await testSubjects.missingOrFail('*logLevelBadgeCell-'); + }); }); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - await unifiedFieldList.clickFieldListItemAdd('log.level'); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - - const firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 0); - const logLevelBadge = await firstCell.findByTestSubject('*logLevelBadgeCell-'); - expect(await logLevelBadge.getVisibleText()).to.be('debug'); - expect(await logLevelBadge.getComputedStyle('background-color')).to.be( - 'rgba(190, 207, 227, 1)' - ); }); + describe('Service Name Cell', () => { + it('should render service.name cell', async () => { + const state = kbnRison.encode({ + dataSource: { type: 'esql' }, + query: { + esql: 'from my-example-logs,logstash* | sort @timestamp desc | where `service.name` is not null', + }, + }); + await common.navigateToActualUrl('discover', `?_a=${state}`, { + ensureCurrentUrl: false, + }); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('service.name'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); - it("should not render log.level badge cell if it's not a logs data source", async () => { - const state = kbnRison.encode({ - dataSource: { type: 'esql' }, - query: { - esql: 'from my-example* | sort @timestamp desc | where `log.level` is not null', - }, - }); - await common.navigateToActualUrl('discover', `?_a=${state}`, { - ensureCurrentUrl: false, + const firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 0); + const lastCell = await dataGrid.getCellElementExcludingControlColumns(2, 0); + const firstServiceNameCell = await firstCell.findByTestSubject('serviceNameCell-java'); + const lastServiceNameCell = await lastCell.findByTestSubject('serviceNameCell-unknown'); + expect(await firstServiceNameCell.getVisibleText()).to.be('product'); + expect(await lastServiceNameCell.getVisibleText()).to.be('accounting'); }); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - await unifiedFieldList.clickFieldListItemAdd('log.level'); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - await retry.try(async () => { - const firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 0); - expect(await firstCell.getVisibleText()).to.be('debug'); - await testSubjects.missingOrFail('*logLevelBadgeCell-'); + it("should not render service.name cell if it's not a logs data source", async () => { + const state = kbnRison.encode({ + dataSource: { type: 'esql' }, + query: { + esql: 'from my-example* | sort @timestamp desc | where `service.name` is not null', + }, + }); + await common.navigateToActualUrl('discover', `?_a=${state}`, { + ensureCurrentUrl: false, + }); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('service.name'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + await retry.try(async () => { + const firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 0); + expect(await firstCell.getVisibleText()).to.be('product'); + await testSubjects.missingOrFail('*serviceNameCell*'); + }); }); }); }); describe('data view mode', () => { - it('should render log.level badge cell', async () => { - await common.navigateToActualUrl('discover', undefined, { - ensureCurrentUrl: false, - }); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - await dataViews.switchToAndValidate('my-example-logs,logstash*'); - await queryBar.setQuery('log.level:*'); - await queryBar.submitQuery(); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - await unifiedFieldList.clickFieldListItemAdd('log.level'); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - - let firstCell: WebElementWrapper; - let logLevelBadge: WebElementWrapper; - - await retry.try(async () => { - firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 1); - logLevelBadge = await firstCell.findByTestSubject('*logLevelBadgeCell-'); - expect(await logLevelBadge.getVisibleText()).to.be('debug'); - expect(await logLevelBadge.getComputedStyle('background-color')).to.be( - 'rgba(190, 207, 227, 1)' - ); + describe('Log Level Badge Cell', () => { + it('should render log.level badge cell', async () => { + await common.navigateToActualUrl('discover', undefined, { + ensureCurrentUrl: false, + }); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await dataViews.switchToAndValidate('my-example-logs,logstash*'); + await queryBar.setQuery('log.level:*'); + await queryBar.submitQuery(); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('log.level'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + let firstCell: WebElementWrapper; + let logLevelBadge: WebElementWrapper; + + await retry.try(async () => { + firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 1); + logLevelBadge = await firstCell.findByTestSubject('*logLevelBadgeCell-'); + expect(await logLevelBadge.getVisibleText()).to.be('debug'); + expect(await logLevelBadge.getComputedStyle('background-color')).to.be( + 'rgba(190, 207, 227, 1)' + ); + }); + + // check Surrounding docs page + await dataGrid.clickRowToggle(); + const [, surroundingActionEl] = await dataGrid.getRowActions(); + await surroundingActionEl.click(); + await header.waitUntilLoadingHasFinished(); + await browser.refresh(); + await header.waitUntilLoadingHasFinished(); + + await retry.try(async () => { + firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 1); + logLevelBadge = await firstCell.findByTestSubject('*logLevelBadgeCell-'); + expect(await logLevelBadge.getVisibleText()).to.be('debug'); + expect(await logLevelBadge.getComputedStyle('background-color')).to.be( + 'rgba(190, 207, 227, 1)' + ); + }); }); - // check Surrounding docs page - await dataGrid.clickRowToggle(); - const [, surroundingActionEl] = await dataGrid.getRowActions(); - await surroundingActionEl.click(); - await header.waitUntilLoadingHasFinished(); - await browser.refresh(); - await header.waitUntilLoadingHasFinished(); - - await retry.try(async () => { - firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 1); - logLevelBadge = await firstCell.findByTestSubject('*logLevelBadgeCell-'); - expect(await logLevelBadge.getVisibleText()).to.be('debug'); - expect(await logLevelBadge.getComputedStyle('background-color')).to.be( - 'rgba(190, 207, 227, 1)' - ); + it("should not render log.level badge cell if it's not a logs data source", async () => { + await common.navigateToActualUrl('discover', undefined, { + ensureCurrentUrl: false, + }); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await dataViews.switchToAndValidate('my-example-*'); + await queryBar.setQuery('log.level:*'); + await queryBar.submitQuery(); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('log.level'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + let firstCell: WebElementWrapper; + + await retry.try(async () => { + firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 1); + expect(await firstCell.getVisibleText()).to.be('debug'); + await testSubjects.missingOrFail('*logLevelBadgeCell-'); + }); + + // check Surrounding docs page + await dataGrid.clickRowToggle(); + const [, surroundingActionEl] = await dataGrid.getRowActions(); + await surroundingActionEl.click(); + await header.waitUntilLoadingHasFinished(); + await browser.refresh(); + await header.waitUntilLoadingHasFinished(); + + await retry.try(async () => { + firstCell = await dataGrid.getCellElementExcludingControlColumns(1, 1); + expect(await firstCell.getVisibleText()).to.be('debug'); + await testSubjects.missingOrFail('*logLevelBadgeCell-'); + }); }); }); - it("should not render log.level badge cell if it's not a logs data source", async () => { - await common.navigateToActualUrl('discover', undefined, { - ensureCurrentUrl: false, - }); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - await dataViews.switchToAndValidate('my-example-*'); - await queryBar.setQuery('log.level:*'); - await queryBar.submitQuery(); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - await unifiedFieldList.clickFieldListItemAdd('log.level'); - await header.waitUntilLoadingHasFinished(); - await discover.waitUntilSearchingHasFinished(); - - let firstCell: WebElementWrapper; - - await retry.try(async () => { - firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 1); - expect(await firstCell.getVisibleText()).to.be('debug'); - await testSubjects.missingOrFail('*logLevelBadgeCell-'); + describe('Service Name Cell', () => { + it('should render service.name cell', async () => { + await common.navigateToActualUrl('discover', undefined, { + ensureCurrentUrl: false, + }); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await dataViews.switchToAndValidate('my-example-logs,logstash*'); + await queryBar.setQuery('service.name:*'); + await queryBar.submitQuery(); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('service.name'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + let firstCell: WebElementWrapper; + let lastCell: WebElementWrapper; + + await retry.try(async () => { + firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 1); + lastCell = await dataGrid.getCellElementExcludingControlColumns(2, 1); + const firstServiceNameCell = await firstCell.findByTestSubject('serviceNameCell-java'); + const lastServiceNameCell = await lastCell.findByTestSubject('serviceNameCell-unknown'); + expect(await firstServiceNameCell.getVisibleText()).to.be('product'); + expect(await lastServiceNameCell.getVisibleText()).to.be('accounting'); + }); }); - // check Surrounding docs page - await dataGrid.clickRowToggle(); - const [, surroundingActionEl] = await dataGrid.getRowActions(); - await surroundingActionEl.click(); - await header.waitUntilLoadingHasFinished(); - await browser.refresh(); - await header.waitUntilLoadingHasFinished(); - - await retry.try(async () => { - firstCell = await dataGrid.getCellElementExcludingControlColumns(1, 1); - expect(await firstCell.getVisibleText()).to.be('debug'); - await testSubjects.missingOrFail('*logLevelBadgeCell-'); + it("should not render service.name cell if it's not a logs data source", async () => { + await common.navigateToActualUrl('discover', undefined, { + ensureCurrentUrl: false, + }); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await dataViews.switchToAndValidate('my-example-*'); + await queryBar.setQuery('service.name:*'); + await queryBar.submitQuery(); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('service.name'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + let firstCell: WebElementWrapper; + let lastCell: WebElementWrapper; + + await retry.try(async () => { + firstCell = await dataGrid.getCellElementExcludingControlColumns(0, 1); + lastCell = await dataGrid.getCellElementExcludingControlColumns(2, 1); + + expect(await firstCell.getVisibleText()).to.be('product'); + expect(await lastCell.getVisibleText()).to.be('accounting'); + await testSubjects.missingOrFail('*serviceNameCell*'); + }); }); }); }); diff --git a/test/functional/apps/discover/esql/_esql_view.ts b/test/functional/apps/discover/esql/_esql_view.ts index f8871ded33fcf..5ac5a0d0e0c48 100644 --- a/test/functional/apps/discover/esql/_esql_view.ts +++ b/test/functional/apps/discover/esql/_esql_view.ts @@ -201,6 +201,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { expect(await dataGrid.getHeaders()).to.eql([ 'Select column', 'Control column', + 'Access to degraded docs', + 'Access to available stacktraces', 'Numberbytes', 'machine.ram_range', ]); diff --git a/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts b/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts index b8743f65e73ce..c2ae5c30bf86f 100644 --- a/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts +++ b/test/functional/apps/discover/group2_data_grid1/_data_grid_doc_table.ts @@ -84,7 +84,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { return text === 'Sep 22, 2015 @ 23:50:13.253'; }); - await dataGrid.clickCellExpandButton(0, 3); + await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 1); let expandDocId = ''; await retry.waitForWithTimeout('expandDocId to be valid', 5000, async () => { @@ -127,7 +127,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { log.debug(`row document timestamp: ${text}`); return text === 'Sep 22, 2015 @ 23:50:13.253'; }); - await dataGrid.clickCellExpandButton(0, 3); + await dataGrid.clickCellExpandButtonExcludingControlColumns(0, 1); let expandDocId = ''; await retry.waitForWithTimeout('expandDocId to be valid', 5000, async () => { diff --git a/test/functional/apps/discover/group3/_doc_viewer.ts b/test/functional/apps/discover/group3/_doc_viewer.ts index 6da0725978afe..3d3562e10beb4 100644 --- a/test/functional/apps/discover/group3/_doc_viewer.ts +++ b/test/functional/apps/discover/group3/_doc_viewer.ts @@ -233,6 +233,151 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { }); }); + describe('show only selected fields in ES|QL mode', function () { + beforeEach(async () => { + await discover.selectTextBaseLang(); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + }); + + it('should disable the switch when no fields are selected', async function () { + const testQuery = 'from logstash-* | sort @timestamp | limit 10'; + await monacoEditor.setCodeEditorValue(testQuery); + await testSubjects.click('querySubmitButton'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + await dataGrid.clickRowToggle(); + await discover.isShowingDocViewer(); + + const showOnlySelectedFieldsSwitch = await testSubjects.find( + 'unifiedDocViewerShowOnlySelectedFieldsSwitch' + ); + expect(await showOnlySelectedFieldsSwitch.getAttribute('disabled')).to.be('true'); + + const fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + const fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + + expect( + fieldNames.join(',').startsWith('@message,@tags,@timestamp,agent,bytes,clientip') + ).to.be(true); + }); + + it('should allow toggling the switch', async function () { + const testQuery = 'from logstash-* | sort @timestamp | limit 10'; + await monacoEditor.setCodeEditorValue(testQuery); + await testSubjects.click('querySubmitButton'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + await unifiedFieldList.clickFieldListItemAdd('agent.raw'); + await header.waitUntilLoadingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('agent'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + await dataGrid.clickRowToggle(); + await discover.isShowingDocViewer(); + + const showOnlySelectedFieldsSwitch = await testSubjects.find( + 'unifiedDocViewerShowOnlySelectedFieldsSwitch' + ); + expect(await showOnlySelectedFieldsSwitch.getAttribute('disabled')).to.be(null); + + let fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + let fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + + expect( + fieldNames.join(',').startsWith('@message,@tags,@timestamp,agent,bytes,clientip') + ).to.be(true); + + await showOnlySelectedFieldsSwitch.click(); + + await retry.waitFor('updates after switching to show only selected', async () => { + fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + return fieldNames.join(',') === 'agent.raw,agent'; + }); + + await dataGrid.togglePinActionInFlyout('agent'); + + await retry.waitFor('updates after pinning the last field', async () => { + fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + return fieldNames.join(',') === 'agent,agent.raw'; + }); + + await showOnlySelectedFieldsSwitch.click(); + + await retry.waitFor('updates after switching from showing only selected', async () => { + fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + return fieldNames.join(',').startsWith('agent,@message,@tags'); + }); + }); + }); + + describe('show only selected fields in data view mode', function () { + it('should disable the switch when no fields are selected', async function () { + await dataGrid.clickRowToggle(); + await discover.isShowingDocViewer(); + + const showOnlySelectedFieldsSwitch = await testSubjects.find( + 'unifiedDocViewerShowOnlySelectedFieldsSwitch' + ); + expect(await showOnlySelectedFieldsSwitch.getAttribute('disabled')).to.be('true'); + + const fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + const fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + + expect(fieldNames.join(',').startsWith('_id,_ignored,_index,_score,@message')).to.be(true); + }); + + it('should allow toggling the switch', async function () { + await unifiedFieldList.clickFieldListItemAdd('bytes'); + await header.waitUntilLoadingHasFinished(); + await unifiedFieldList.clickFieldListItemAdd('@tags'); + await header.waitUntilLoadingHasFinished(); + await discover.waitUntilSearchingHasFinished(); + + await dataGrid.clickRowToggle(); + await discover.isShowingDocViewer(); + + const showOnlySelectedFieldsSwitch = await testSubjects.find( + 'unifiedDocViewerShowOnlySelectedFieldsSwitch' + ); + expect(await showOnlySelectedFieldsSwitch.getAttribute('disabled')).to.be(null); + + let fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + let fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + + expect(fieldNames.join(',').startsWith('_id,_ignored,_index,_score,@message')).to.be(true); + + await showOnlySelectedFieldsSwitch.click(); + + await retry.waitFor('updates after switching to show only selected', async () => { + fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + return fieldNames.join(',') === '@timestamp,bytes,@tags'; + }); + + await dataGrid.togglePinActionInFlyout('bytes'); + + await retry.waitFor('updates after pinning the last field', async () => { + fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + return fieldNames.join(',') === 'bytes,@timestamp,@tags'; + }); + + await showOnlySelectedFieldsSwitch.click(); + + await retry.waitFor('updates after switching from showing only selected', async () => { + fieldNameCells = await find.allByCssSelector('.kbnDocViewer__fieldName'); + fieldNames = await Promise.all(fieldNameCells.map((cell) => cell.getVisibleText())); + return fieldNames.join(',').startsWith('bytes,_id,_ignored,_index,_score,@message'); + }); + }); + }); + describe('pinning fields', function () { it('should be able to pin and unpin fields', async function () { await dataGrid.clickRowToggle(); diff --git a/test/functional/apps/discover/group3/_lens_vis.ts b/test/functional/apps/discover/group3/_lens_vis.ts index 2577958b03599..681d1c090a6e3 100644 --- a/test/functional/apps/discover/group3/_lens_vis.ts +++ b/test/functional/apps/discover/group3/_lens_vis.ts @@ -102,7 +102,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { return seriesType; } - describe('discover lens vis', function () { + // Failing: See https://github.com/elastic/kibana/issues/184600 + describe.skip('discover lens vis', function () { before(async () => { await security.testUser.setRoles(['kibana_admin', 'test_logstash_reader']); await esArchiver.loadIfNeeded('test/functional/fixtures/es_archiver/logstash_functional'); diff --git a/test/functional/apps/management/data_views/_scripted_fields.ts b/test/functional/apps/management/data_views/_scripted_fields.ts index b5697ab30eae6..172537bf4e73a 100644 --- a/test/functional/apps/management/data_views/_scripted_fields.ts +++ b/test/functional/apps/management/data_views/_scripted_fields.ts @@ -487,7 +487,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { it('should filter by scripted field value in Discover', async function () { await PageObjects.header.waitUntilLoadingHasFinished(); - await dataGrid.clickCellFilterForButton(0, 3); + await dataGrid.clickCellFilterForButtonExcludingControlColumns(0, 1); await PageObjects.header.waitUntilLoadingHasFinished(); await retry.try(async function () { diff --git a/test/functional/config.base.js b/test/functional/config.base.js index 36d1bf0d27af1..940595a7f2ad1 100644 --- a/test/functional/config.base.js +++ b/test/functional/config.base.js @@ -32,7 +32,8 @@ export default async function ({ readConfigFile }) { '--savedObjects.maxImportPayloadBytes=10485760', // override default to not allow hiddenFromHttpApis saved object types access to the HTTP Apis. see https://github.com/elastic/dev/issues/2200 '--savedObjects.allowHttpApiAccess=false', - + // disable internal API restriction. See https://github.com/elastic/kibana/issues/163654 + '--server.restrictInternalApis=false', // to be re-enabled once kibana/issues/102552 is completed '--xpack.reporting.enabled=false', diff --git a/test/functional/fixtures/es_archiver/discover/context_awareness/data.json.gz b/test/functional/fixtures/es_archiver/discover/context_awareness/data.json.gz index cd1f670958d7d..62eb2e67a32d3 100644 Binary files a/test/functional/fixtures/es_archiver/discover/context_awareness/data.json.gz and b/test/functional/fixtures/es_archiver/discover/context_awareness/data.json.gz differ diff --git a/test/functional/fixtures/es_archiver/discover/context_awareness/mappings.json b/test/functional/fixtures/es_archiver/discover/context_awareness/mappings.json index ef7a7edf29e00..9fd9e964f8959 100644 --- a/test/functional/fixtures/es_archiver/discover/context_awareness/mappings.json +++ b/test/functional/fixtures/es_archiver/discover/context_awareness/mappings.json @@ -9,6 +9,22 @@ "@timestamp": { "type": "date" }, + "agent": { + "properties": { + "name": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, "data_stream": { "properties": { "type": { @@ -26,6 +42,18 @@ }, "message": { "type": "match_only_text" + }, + "service": { + "properties": { + "name": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "keyword" + } + } } } }, @@ -49,6 +77,22 @@ "@timestamp": { "type": "date" }, + "agent": { + "properties": { + "name": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, "data_stream": { "properties": { "type": { @@ -63,6 +107,18 @@ "type": "long" } } + }, + "service": { + "properties": { + "name": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "keyword" + } + } } } }, diff --git a/test/plugin_functional/test_suites/core_plugins/rendering.ts b/test/plugin_functional/test_suites/core_plugins/rendering.ts index 95a4b8899eb18..9bd43504d7db1 100644 --- a/test/plugin_functional/test_suites/core_plugins/rendering.ts +++ b/test/plugin_functional/test_suites/core_plugins/rendering.ts @@ -229,6 +229,7 @@ export default function ({ getService }: PluginFunctionalProviderContext) { 'xpack.ccr.ui.enabled (boolean?)', 'xpack.cloud.base_url (string?)', 'xpack.cloud.cname (string?)', + 'xpack.cloud.csp (string?)', 'xpack.cloud.deployment_url (string?)', 'xpack.cloud.deployments_url (string?)', 'xpack.cloud.is_elastic_staff_owned (boolean?)', diff --git a/test/plugin_functional/test_suites/data_plugin/session.ts b/test/plugin_functional/test_suites/data_plugin/session.ts index 812641e508d2c..d69a7529a19ad 100644 --- a/test/plugin_functional/test_suites/data_plugin/session.ts +++ b/test/plugin_functional/test_suites/data_plugin/session.ts @@ -32,7 +32,8 @@ export default function ({ getService, getPageObjects }: PluginFunctionalProvide return sessionIds.split(','); }; - describe('Session management', function describeSessionManagementTests() { + // Failing: See https://github.com/elastic/kibana/issues/192510 + describe.skip('Session management', function describeSessionManagementTests() { describe('Discover', () => { before(async () => { await common.navigateToApp('discover'); diff --git a/test/server_integration/http/platform/cache.ts b/test/server_integration/http/platform/cache.ts index 34ce91e9303db..13e216ff3e8f9 100644 --- a/test/server_integration/http/platform/cache.ts +++ b/test/server_integration/http/platform/cache.ts @@ -7,6 +7,7 @@ * License v3.0 only", or the "Server Side Public License, v 1". */ +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../services/types'; export default function ({ getService }: FtrProviderContext) { @@ -23,12 +24,17 @@ export default function ({ getService }: FtrProviderContext) { it('allows translation bundles to be cached', async () => { await supertest .get('/translations/en.json') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect('Cache-Control', 'public, max-age=31536000, immutable') .expect(200); }); it('allows the bootstrap bundles to be cached', async () => { - await supertest.get('/bootstrap.js').expect('Cache-Control', 'must-revalidate').expect(200); + await supertest + .get('/bootstrap.js') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') + .expect('Cache-Control', 'must-revalidate') + .expect(200); }); }); } diff --git a/test/server_integration/http/platform/status.ts b/test/server_integration/http/platform/status.ts index a00aa46ad9f23..f27a5e624de76 100644 --- a/test/server_integration/http/platform/status.ts +++ b/test/server_integration/http/platform/status.ts @@ -9,6 +9,7 @@ import expect from '@kbn/expect'; import type { ServiceStatus, ServiceStatusLevels } from '@kbn/core/server'; +import { X_ELASTIC_INTERNAL_ORIGIN_REQUEST } from '@kbn/core-http-common'; import { FtrProviderContext } from '../../services/types'; type ServiceStatusSerialized = Omit & { level: string }; @@ -30,6 +31,7 @@ export default function ({ getService }: FtrProviderContext) { supertest .post(`/internal/status_plugin_a/status/set?level=${level}`) .set('kbn-xsrf', 'xxx') + .set(X_ELASTIC_INTERNAL_ORIGIN_REQUEST, 'kibana') .expect(200); describe('status service', function () { diff --git a/tsconfig.base.json b/tsconfig.base.json index 44bb897bea1c2..f931b2e3ea28d 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1010,10 +1010,10 @@ "@kbn/import-resolver/*": ["packages/kbn-import-resolver/*"], "@kbn/index-lifecycle-management-plugin": ["x-pack/plugins/index_lifecycle_management"], "@kbn/index-lifecycle-management-plugin/*": ["x-pack/plugins/index_lifecycle_management/*"], - "@kbn/index-management": ["x-pack/packages/index-management"], - "@kbn/index-management/*": ["x-pack/packages/index-management/*"], "@kbn/index-management-plugin": ["x-pack/plugins/index_management"], "@kbn/index-management-plugin/*": ["x-pack/plugins/index_management/*"], + "@kbn/index-management-shared-types": ["x-pack/packages/index-management/index_management_shared_types"], + "@kbn/index-management-shared-types/*": ["x-pack/packages/index-management/index_management_shared_types/*"], "@kbn/index-patterns-test-plugin": ["test/plugin_functional/plugins/index_patterns"], "@kbn/index-patterns-test-plugin/*": ["test/plugin_functional/plugins/index_patterns/*"], "@kbn/inference_integration_flyout": ["x-pack/packages/ml/inference_integration_flyout"], @@ -1038,6 +1038,8 @@ "@kbn/interactive-setup-test-endpoints-plugin/*": ["test/interactive_setup_api_integration/plugins/test_endpoints/*"], "@kbn/interpreter": ["packages/kbn-interpreter"], "@kbn/interpreter/*": ["packages/kbn-interpreter/*"], + "@kbn/inventory-plugin": ["x-pack/plugins/observability_solution/inventory"], + "@kbn/inventory-plugin/*": ["x-pack/plugins/observability_solution/inventory/*"], "@kbn/investigate-app-plugin": ["x-pack/plugins/observability_solution/investigate_app"], "@kbn/investigate-app-plugin/*": ["x-pack/plugins/observability_solution/investigate_app/*"], "@kbn/investigate-plugin": ["x-pack/plugins/observability_solution/investigate"], @@ -1746,6 +1748,12 @@ "@kbn/spaces-test-plugin/*": ["x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin/*"], "@kbn/spec-to-console": ["packages/kbn-spec-to-console"], "@kbn/spec-to-console/*": ["packages/kbn-spec-to-console/*"], + "@kbn/sse-utils": ["packages/kbn-sse-utils"], + "@kbn/sse-utils/*": ["packages/kbn-sse-utils/*"], + "@kbn/sse-utils-client": ["packages/kbn-sse-utils-client"], + "@kbn/sse-utils-client/*": ["packages/kbn-sse-utils-client/*"], + "@kbn/sse-utils-server": ["packages/kbn-sse-utils-server"], + "@kbn/sse-utils-server/*": ["packages/kbn-sse-utils-server/*"], "@kbn/stack-alerts-plugin": ["x-pack/plugins/stack_alerts"], "@kbn/stack-alerts-plugin/*": ["x-pack/plugins/stack_alerts/*"], "@kbn/stack-connectors-plugin": ["x-pack/plugins/stack_connectors"], diff --git a/versions.json b/versions.json index 4055d0be06df2..b92cb052dfc3c 100644 --- a/versions.json +++ b/versions.json @@ -2,21 +2,25 @@ "notice": "This file is not maintained outside of the main branch and should only be used for tooling.", "versions": [ { - "version": "8.16.0", + "version": "9.0.0", "branch": "main", "currentMajor": true, "currentMinor": true }, + { + "version": "8.16.0", + "branch": "8.x", + "previousMajor": true, + "previousMinor": true + }, { "version": "8.15.2", "branch": "8.15", - "currentMajor": true, - "previousMinor": true + "previousMajor": true }, { "version": "7.17.25", - "branch": "7.17", - "previousMajor": true + "branch": "7.17" } ] } diff --git a/x-pack/.i18nrc.json b/x-pack/.i18nrc.json index f2ab7a782915e..a36cc693a6b71 100644 --- a/x-pack/.i18nrc.json +++ b/x-pack/.i18nrc.json @@ -59,6 +59,7 @@ "xpack.ingestPipelines": "plugins/ingest_pipelines", "xpack.integrationAssistant": "plugins/integration_assistant", "xpack.inference": "plugins/inference", + "xpack.inventory": "plugins/observability_solution/inventory", "xpack.investigate": "plugins/observability_solution/investigate", "xpack.investigateApp": "plugins/observability_solution/investigate_app", "xpack.kubernetesSecurity": "plugins/kubernetes_security", diff --git a/x-pack/examples/alerting_example/public/components/view_astros_alert.tsx b/x-pack/examples/alerting_example/public/components/view_astros_alert.tsx index be1e0799cf51d..5cb30226520af 100644 --- a/x-pack/examples/alerting_example/public/components/view_astros_alert.tsx +++ b/x-pack/examples/alerting_example/public/components/view_astros_alert.tsx @@ -72,16 +72,16 @@ export const ViewPeopleInSpaceAlertPage = withRouter(({ http, id }: Props) => { {isEmpty(alertState.alerts) ? (

    - The people in {alert.params.craft} at the moment are not {alert.params.op}{' '} - {alert.params.outerSpaceCapacity} + The people in {alert.params.craft as string} at the moment are not{' '} + {alert.params.op as string} {alert.params.outerSpaceCapacity as string}

    ) : (

    - The rule has been triggered because the people in {alert.params.craft} at the moment{' '} - {alert.params.op} {alert.params.outerSpaceCapacity} + The rule has been triggered because the people in {alert.params.craft as string} at + the moment {alert.params.op as string} {alert.params.outerSpaceCapacity as string}

    diff --git a/x-pack/examples/alerting_example/server/plugin.ts b/x-pack/examples/alerting_example/server/plugin.ts index 110071a17fa2d..43b3bc82c4416 100644 --- a/x-pack/examples/alerting_example/server/plugin.ts +++ b/x-pack/examples/alerting_example/server/plugin.ts @@ -12,6 +12,7 @@ import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common'; import { PluginSetupContract as AlertingSetup } from '@kbn/alerting-plugin/server'; import { FeaturesPluginSetup } from '@kbn/features-plugin/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { ruleType as alwaysFiringRule } from './rule_types/always_firing'; import { ruleType as peopleInSpaceRule } from './rule_types/astros'; import { ruleType as patternRule } from './rule_types/pattern'; @@ -41,6 +42,7 @@ export class AlertingExamplePlugin implements Plugin/x-pack/packages/index-management'], + rootDir: '../../../..', + roots: ['/x-pack/packages/index-management/index_management_shared_types'], }; diff --git a/x-pack/packages/index-management/kibana.jsonc b/x-pack/packages/index-management/index_management_shared_types/kibana.jsonc similarity index 60% rename from x-pack/packages/index-management/kibana.jsonc rename to x-pack/packages/index-management/index_management_shared_types/kibana.jsonc index dc4e61342c6bc..ad87bb2bb4797 100644 --- a/x-pack/packages/index-management/kibana.jsonc +++ b/x-pack/packages/index-management/index_management_shared_types/kibana.jsonc @@ -1,5 +1,5 @@ { "type": "shared-common", - "id": "@kbn/index-management", + "id": "@kbn/index-management-shared-types", "owner": "@elastic/kibana-management" } diff --git a/x-pack/packages/index-management/package.json b/x-pack/packages/index-management/index_management_shared_types/package.json similarity index 62% rename from x-pack/packages/index-management/package.json rename to x-pack/packages/index-management/index_management_shared_types/package.json index c1f7664895348..be6b3a888953d 100644 --- a/x-pack/packages/index-management/package.json +++ b/x-pack/packages/index-management/index_management_shared_types/package.json @@ -1,5 +1,5 @@ { - "name": "@kbn/index-management", + "name": "@kbn/index-management-shared-types", "private": true, "version": "1.0.0", "license": "Elastic License 2.0" diff --git a/x-pack/packages/index-management/src/home_sections.ts b/x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts similarity index 100% rename from x-pack/packages/index-management/src/home_sections.ts rename to x-pack/packages/index-management/index_management_shared_types/src/home_sections.ts diff --git a/x-pack/packages/index-management/src/services/extensions_service.ts b/x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts similarity index 100% rename from x-pack/packages/index-management/src/services/extensions_service.ts rename to x-pack/packages/index-management/index_management_shared_types/src/services/extensions_service.ts diff --git a/x-pack/packages/index-management/src/services/index.ts b/x-pack/packages/index-management/index_management_shared_types/src/services/index.ts similarity index 100% rename from x-pack/packages/index-management/src/services/index.ts rename to x-pack/packages/index-management/index_management_shared_types/src/services/index.ts diff --git a/x-pack/packages/index-management/src/services/public_api_service.ts b/x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts similarity index 100% rename from x-pack/packages/index-management/src/services/public_api_service.ts rename to x-pack/packages/index-management/index_management_shared_types/src/services/public_api_service.ts diff --git a/x-pack/packages/index-management/src/types.ts b/x-pack/packages/index-management/index_management_shared_types/src/types.ts similarity index 100% rename from x-pack/packages/index-management/src/types.ts rename to x-pack/packages/index-management/index_management_shared_types/src/types.ts diff --git a/x-pack/packages/index-management/tsconfig.json b/x-pack/packages/index-management/index_management_shared_types/tsconfig.json similarity index 85% rename from x-pack/packages/index-management/tsconfig.json rename to x-pack/packages/index-management/index_management_shared_types/tsconfig.json index c92c31a7ea49b..351991448dba7 100644 --- a/x-pack/packages/index-management/tsconfig.json +++ b/x-pack/packages/index-management/index_management_shared_types/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../../../tsconfig.base.json", "compilerOptions": { "outDir": "target/types", "types": [ diff --git a/x-pack/packages/kbn-cloud-security-posture-common/index.ts b/x-pack/packages/kbn-cloud-security-posture-common/index.ts index b5211af3342a3..86ed573fc3915 100644 --- a/x-pack/packages/kbn-cloud-security-posture-common/index.ts +++ b/x-pack/packages/kbn-cloud-security-posture-common/index.ts @@ -17,7 +17,7 @@ export type { BaseCspSetupStatus, CspSetupStatus, } from './types/status'; -export type { CspFinding } from './types/findings'; +export type { CspFinding, CspFindingResult } from './types/findings'; export type { BenchmarksCisId } from './types/benchmark'; export * from './constants'; export { diff --git a/x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts b/x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts index 19b0d685f2347..52503b589c44a 100644 --- a/x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts +++ b/x-pack/packages/kbn-cloud-security-posture-common/types/findings.ts @@ -41,7 +41,7 @@ interface CspFindingCloud { region?: string; } -interface CspFindingResult { +export interface CspFindingResult { evaluation: 'passed' | 'failed'; expected?: Record; evidence: Record; diff --git a/x-pack/packages/kbn-cloud-security-posture/src/hooks/use_misconfiguration_findings.ts b/x-pack/packages/kbn-cloud-security-posture/src/hooks/use_misconfiguration_findings.ts new file mode 100644 index 0000000000000..aee35ca602ef8 --- /dev/null +++ b/x-pack/packages/kbn-cloud-security-posture/src/hooks/use_misconfiguration_findings.ts @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { useQuery } from '@tanstack/react-query'; +import { lastValueFrom } from 'rxjs'; +import { CspFinding } from '@kbn/cloud-security-posture-common'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import type { CoreStart } from '@kbn/core/public'; +import { showErrorToast } from '../..'; +import type { + CspClientPluginStartDeps, + LatestFindingsRequest, + LatestFindingsResponse, + UseMisconfigurationOptions, +} from '../../type'; + +import { useGetCspBenchmarkRulesStatesApi } from './use_get_benchmark_rules_state_api'; +import { + buildMisconfigurationsFindingsQuery, + getMisconfigurationAggregationCount, +} from '../utils/hooks_utils'; + +export const useMisconfigurationFindings = (options: UseMisconfigurationOptions) => { + const { + data, + notifications: { toasts }, + } = useKibana().services; + const { data: rulesStates } = useGetCspBenchmarkRulesStatesApi(); + + return useQuery( + ['csp_misconfiguration_findings', { params: options }, rulesStates], + async () => { + const { + rawResponse: { hits, aggregations }, + } = await lastValueFrom( + data.search.search({ + params: buildMisconfigurationsFindingsQuery(options, rulesStates!), + }) + ); + if (!aggregations) throw new Error('expected aggregations to be defined'); + + return { + count: getMisconfigurationAggregationCount(aggregations.count.buckets), + rows: hits.hits.map((finding) => ({ + result: finding._source?.result, + rule: finding?._source?.rule, + resource: finding?._source?.resource, + })) as Array>, + }; + }, + { + enabled: options.enabled && !!rulesStates, + keepPreviousData: true, + onError: (err: Error) => showErrorToast(toasts, err), + } + ); +}; diff --git a/x-pack/packages/kbn-cloud-security-posture/src/hooks/use_misconfiguration_preview.ts b/x-pack/packages/kbn-cloud-security-posture/src/hooks/use_misconfiguration_preview.ts index af7371da95301..9828bb32c7752 100644 --- a/x-pack/packages/kbn-cloud-security-posture/src/hooks/use_misconfiguration_preview.ts +++ b/x-pack/packages/kbn-cloud-security-posture/src/hooks/use_misconfiguration_preview.ts @@ -6,118 +6,22 @@ */ import { useQuery } from '@tanstack/react-query'; import { lastValueFrom } from 'rxjs'; -import type { IKibanaSearchResponse, IKibanaSearchRequest } from '@kbn/search-types'; -import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { - CDR_MISCONFIGURATIONS_INDEX_PATTERN, - LATEST_FINDINGS_RETENTION_POLICY, - CspFinding, -} from '@kbn/cloud-security-posture-common'; -import type { CspBenchmarkRulesStates } from '@kbn/cloud-security-posture-common/schema/rules/latest'; -import { buildMutedRulesFilter } from '@kbn/cloud-security-posture-common'; import { useKibana } from '@kbn/kibana-react-plugin/public'; import type { CoreStart } from '@kbn/core/public'; import { showErrorToast } from '../..'; -import type { CspClientPluginStartDeps } from '../../type'; +import type { + CspClientPluginStartDeps, + LatestFindingsRequest, + LatestFindingsResponse, + UseMisconfigurationOptions, +} from '../../type'; import { useGetCspBenchmarkRulesStatesApi } from './use_get_benchmark_rules_state_api'; +import { + buildMisconfigurationsFindingsQuery, + getMisconfigurationAggregationCount, +} from '../utils/hooks_utils'; -interface MisconfigurationPreviewBaseEsQuery { - query?: { - bool: { - filter: estypes.QueryDslQueryContainer[]; - }; - }; -} - -interface UseMisconfigurationPreviewOptions extends MisconfigurationPreviewBaseEsQuery { - sort: string[][]; - enabled: boolean; - pageSize: number; -} - -type LatestFindingsRequest = IKibanaSearchRequest; -type LatestFindingsResponse = IKibanaSearchResponse< - estypes.SearchResponse ->; - -interface FindingsAggs { - count: estypes.AggregationsMultiBucketAggregateBase; -} - -const RESULT_EVALUATION = { - PASSED: 'passed', - FAILED: 'failed', - UNKNOWN: 'unknown', -}; - -export const getFindingsCountAggQueryMisconfigurationPreview = () => ({ - count: { - filters: { - other_bucket_key: RESULT_EVALUATION.UNKNOWN, - filters: { - [RESULT_EVALUATION.PASSED]: { match: { 'result.evaluation': RESULT_EVALUATION.PASSED } }, - [RESULT_EVALUATION.FAILED]: { match: { 'result.evaluation': RESULT_EVALUATION.FAILED } }, - }, - }, - }, -}); - -export const getMisconfigurationAggregationCount = ( - buckets: estypes.AggregationsBuckets -) => { - return Object.entries(buckets).reduce( - (evaluation, [key, value]) => { - evaluation[key] = (evaluation[key] || 0) + (value.doc_count || 0); - return evaluation; - }, - { - [RESULT_EVALUATION.PASSED]: 0, - [RESULT_EVALUATION.FAILED]: 0, - [RESULT_EVALUATION.UNKNOWN]: 0, - } - ); -}; - -export const buildMisconfigurationsFindingsQuery = ( - { query }: UseMisconfigurationPreviewOptions, - rulesStates: CspBenchmarkRulesStates -) => { - const mutedRulesFilterQuery = buildMutedRulesFilter(rulesStates); - - return { - index: CDR_MISCONFIGURATIONS_INDEX_PATTERN, - size: 0, - aggs: getFindingsCountAggQueryMisconfigurationPreview(), - ignore_unavailable: false, - query: buildMisconfigurationsFindingsQueryWithFilters(query, mutedRulesFilterQuery), - }; -}; - -const buildMisconfigurationsFindingsQueryWithFilters = ( - query: UseMisconfigurationPreviewOptions['query'], - mutedRulesFilterQuery: estypes.QueryDslQueryContainer[] -) => { - return { - ...query, - bool: { - ...query?.bool, - filter: [ - ...(query?.bool?.filter ?? []), - { - range: { - '@timestamp': { - gte: `now-${LATEST_FINDINGS_RETENTION_POLICY}`, - lte: 'now', - }, - }, - }, - ], - must_not: [...mutedRulesFilterQuery], - }, - }; -}; - -export const useMisconfigurationPreview = (options: UseMisconfigurationPreviewOptions) => { +export const useMisconfigurationPreview = (options: UseMisconfigurationOptions) => { const { data, notifications: { toasts }, @@ -134,10 +38,10 @@ export const useMisconfigurationPreview = (options: UseMisconfigurationPreviewOp params: buildMisconfigurationsFindingsQuery(options, rulesStates!), }) ); - if (!aggregations) throw new Error('expected aggregations to be defined'); - + if (!aggregations && !options.ignore_unavailable) + throw new Error('expected aggregations to be defined'); return { - count: getMisconfigurationAggregationCount(aggregations.count.buckets), + count: getMisconfigurationAggregationCount(aggregations?.count?.buckets), }; }, { diff --git a/x-pack/packages/kbn-cloud-security-posture/src/utils/hooks_utils.ts b/x-pack/packages/kbn-cloud-security-posture/src/utils/hooks_utils.ts new file mode 100644 index 0000000000000..a1951f7327b40 --- /dev/null +++ b/x-pack/packages/kbn-cloud-security-posture/src/utils/hooks_utils.ts @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { + CDR_MISCONFIGURATIONS_INDEX_PATTERN, + LATEST_FINDINGS_RETENTION_POLICY, +} from '@kbn/cloud-security-posture-common'; +import type { CspBenchmarkRulesStates } from '@kbn/cloud-security-posture-common/schema/rules/latest'; +import { buildMutedRulesFilter } from '@kbn/cloud-security-posture-common'; +import type { UseMisconfigurationOptions } from '../../type'; + +const MISCONFIGURATIONS_SOURCE_FIELDS = ['result.*', 'rule.*', 'resource.*']; +interface AggregationBucket { + doc_count?: number; +} + +type AggregationBuckets = Record; + +const RESULT_EVALUATION = { + PASSED: 'passed', + FAILED: 'failed', + UNKNOWN: 'unknown', +}; + +export const getFindingsCountAggQueryMisconfiguration = () => ({ + count: { + filters: { + other_bucket_key: RESULT_EVALUATION.UNKNOWN, + filters: { + [RESULT_EVALUATION.PASSED]: { match: { 'result.evaluation': RESULT_EVALUATION.PASSED } }, + [RESULT_EVALUATION.FAILED]: { match: { 'result.evaluation': RESULT_EVALUATION.FAILED } }, + }, + }, + }, +}); + +export const getMisconfigurationAggregationCount = ( + buckets?: estypes.AggregationsBuckets +) => { + const defaultBuckets: AggregationBuckets = { + [RESULT_EVALUATION.PASSED]: { doc_count: 0 }, + [RESULT_EVALUATION.FAILED]: { doc_count: 0 }, + [RESULT_EVALUATION.UNKNOWN]: { doc_count: 0 }, + }; + + // if buckets are undefined we will use default buckets + const usedBuckets = buckets || defaultBuckets; + return Object.entries(usedBuckets).reduce( + (evaluation, [key, value]) => { + evaluation[key] = (evaluation[key] || 0) + (value.doc_count || 0); + return evaluation; + }, + { + [RESULT_EVALUATION.PASSED]: 0, + [RESULT_EVALUATION.FAILED]: 0, + [RESULT_EVALUATION.UNKNOWN]: 0, + } + ); +}; + +export const buildMisconfigurationsFindingsQuery = ( + { query }: UseMisconfigurationOptions, + rulesStates: CspBenchmarkRulesStates, + isPreview = false +) => { + const mutedRulesFilterQuery = buildMutedRulesFilter(rulesStates); + + return { + index: CDR_MISCONFIGURATIONS_INDEX_PATTERN, + size: isPreview ? 0 : 500, + aggs: getFindingsCountAggQueryMisconfiguration(), + ignore_unavailable: true, + query: buildMisconfigurationsFindingsQueryWithFilters(query, mutedRulesFilterQuery), + _source: MISCONFIGURATIONS_SOURCE_FIELDS, + }; +}; + +const buildMisconfigurationsFindingsQueryWithFilters = ( + query: UseMisconfigurationOptions['query'], + mutedRulesFilterQuery: estypes.QueryDslQueryContainer[] +) => { + return { + ...query, + bool: { + ...query?.bool, + filter: [ + ...(query?.bool?.filter ?? []), + { + range: { + '@timestamp': { + gte: `now-${LATEST_FINDINGS_RETENTION_POLICY}`, + lte: 'now', + }, + }, + }, + ], + must_not: [...mutedRulesFilterQuery], + }, + }; +}; diff --git a/x-pack/packages/kbn-cloud-security-posture/type.ts b/x-pack/packages/kbn-cloud-security-posture/type.ts index 70daabecf67d3..666d432df609d 100644 --- a/x-pack/packages/kbn-cloud-security-posture/type.ts +++ b/x-pack/packages/kbn-cloud-security-posture/type.ts @@ -22,6 +22,9 @@ import type { FleetStart } from '@kbn/fleet-plugin/public'; import type { UsageCollectionStart } from '@kbn/usage-collection-plugin/public'; import { SharePluginStart } from '@kbn/share-plugin/public'; import { SpacesPluginStart } from '@kbn/spaces-plugin/public'; +import { CspFinding } from '@kbn/cloud-security-posture-common'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { IKibanaSearchResponse, IKibanaSearchRequest } from '@kbn/search-types'; import type { BoolQuery } from '@kbn/es-query'; export interface FindingsBaseEsQuery { @@ -51,3 +54,27 @@ export interface CspClientPluginStartDeps { // optional usageCollection?: UsageCollectionStart; } + +export interface MisconfigurationBaseEsQuery { + query?: { + bool: { + filter: estypes.QueryDslQueryContainer[]; + }; + }; +} + +export interface UseMisconfigurationOptions extends MisconfigurationBaseEsQuery { + sort: string[][]; + enabled: boolean; + pageSize: number; + ignore_unavailable?: boolean; +} + +export type LatestFindingsRequest = IKibanaSearchRequest; +export type LatestFindingsResponse = IKibanaSearchResponse< + estypes.SearchResponse +>; + +export interface FindingsAggs { + count: estypes.AggregationsMultiBucketAggregateBase; +} diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/assistant_body/empty_convo.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/assistant_body/empty_convo.tsx index 58d47a696225f..3aa0e2271beff 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/assistant_body/empty_convo.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/assistant_body/empty_convo.tsx @@ -9,31 +9,23 @@ import React, { Dispatch, SetStateAction } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiPanel, EuiText } from '@elastic/eui'; import { css } from '@emotion/react'; import { PromptResponse } from '@kbn/elastic-assistant-common'; -import { QueryObserverResult } from '@tanstack/react-query'; -import { Conversation } from '../../..'; import { AssistantAnimatedIcon } from '../assistant_animated_icon'; import { SystemPrompt } from '../prompt_editor/system_prompt'; import { SetupKnowledgeBaseButton } from '../../knowledge_base/setup_knowledge_base_button'; import * as i18n from '../translations'; interface Props { - currentConversation: Conversation | undefined; currentSystemPromptId: string | undefined; isSettingsModalVisible: boolean; - refetchCurrentUserConversations: () => Promise< - QueryObserverResult, unknown> - >; setIsSettingsModalVisible: Dispatch>; - setCurrentSystemPromptId: Dispatch>; + setCurrentSystemPromptId: (promptId: string | undefined) => void; allSystemPrompts: PromptResponse[]; } export const EmptyConvo: React.FC = ({ allSystemPrompts, - currentConversation, currentSystemPromptId, isSettingsModalVisible, - refetchCurrentUserConversations, setCurrentSystemPromptId, setIsSettingsModalVisible, }) => { @@ -59,13 +51,11 @@ export const EmptyConvo: React.FC = ({
    diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/assistant_body/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/assistant_body/index.tsx index 362ab6e3e41ef..757f385db058c 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/assistant_body/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/assistant_body/index.tsx @@ -18,7 +18,6 @@ import { HttpSetup } from '@kbn/core-http-browser'; import { euiThemeVars } from '@kbn/ui-theme'; import { css } from '@emotion/react'; import { PromptResponse } from '@kbn/elastic-assistant-common'; -import { QueryObserverResult } from '@tanstack/react-query'; import { AssistantAnimatedIcon } from '../assistant_animated_icon'; import { EmptyConvo } from './empty_convo'; import { WelcomeSetup } from './welcome_setup'; @@ -35,11 +34,8 @@ interface Props { isSettingsModalVisible: boolean; isWelcomeSetup: boolean; isLoading: boolean; - refetchCurrentUserConversations: () => Promise< - QueryObserverResult, unknown> - >; http: HttpSetup; - setCurrentSystemPromptId: Dispatch>; + setCurrentSystemPromptId: (promptId: string | undefined) => void; setIsSettingsModalVisible: Dispatch>; } @@ -55,17 +51,16 @@ export const AssistantBody: FunctionComponent = ({ isLoading, isSettingsModalVisible, isWelcomeSetup, - refetchCurrentUserConversations, setIsSettingsModalVisible, }) => { - const isNewConversation = useMemo( + const isEmptyConversation = useMemo( () => currentConversation?.messages.length === 0, [currentConversation?.messages.length] ); const disclaimer = useMemo( () => - isNewConversation && ( + isEmptyConversation && ( = ({ {i18n.DISCLAIMER} ), - [isNewConversation] + [isEmptyConversation] ); // Start Scrolling @@ -113,13 +108,11 @@ export const AssistantBody: FunctionComponent = ({ currentConversation={currentConversation} handleOnConversationSelected={handleOnConversationSelected} /> - ) : currentConversation?.messages.length === 0 ? ( + ) : isEmptyConversation ? ( diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.test.tsx index b2479b33fdb99..0de7adc484fc1 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.test.tsx @@ -9,7 +9,6 @@ import { HttpSetup } from '@kbn/core-http-browser'; import { useSendMessage } from '../use_send_message'; import { useConversation } from '../use_conversation'; import { emptyWelcomeConvo, welcomeConvo } from '../../mock/conversation'; -import { defaultSystemPrompt, mockSystemPrompt } from '../../mock/system_prompt'; import { useChatSend, UseChatSendProps } from './use_chat_send'; import { act, renderHook } from '@testing-library/react-hooks'; import { waitFor } from '@testing-library/react'; @@ -28,7 +27,6 @@ const setCurrentConversation = jest.fn(); export const testProps: UseChatSendProps = { selectedPromptContexts: {}, - allSystemPrompts: [defaultSystemPrompt, mockSystemPrompt], currentConversation: { ...emptyWelcomeConvo, id: 'an-id' }, http: { basePath: { @@ -38,7 +36,6 @@ export const testProps: UseChatSendProps = { anonymousPaths: {}, externalUrl: {}, } as unknown as HttpSetup, - currentSystemPromptId: defaultSystemPrompt.id, setSelectedPromptContexts, setCurrentConversation, refetchCurrentUserConversations: jest.fn(), @@ -64,10 +61,11 @@ describe('use chat send', () => { }); it('handleOnChatCleared clears the conversation', async () => { (clearConversation as jest.Mock).mockReturnValueOnce(testProps.currentConversation); - const { result } = renderHook(() => useChatSend(testProps), { + const { result, waitForNextUpdate } = renderHook(() => useChatSend(testProps), { wrapper: TestProviders, }); - await act(async () => { + await waitForNextUpdate(); + act(() => { result.current.handleOnChatCleared(); }); expect(clearConversation).toHaveBeenCalled(); @@ -78,21 +76,7 @@ describe('use chat send', () => { expect(setCurrentConversation).toHaveBeenCalled(); }); }); - it('handleChatSend sends message with context prompt when a valid prompt text is provided', async () => { - const promptText = 'prompt text'; - const { result } = renderHook(() => useChatSend(testProps), { - wrapper: TestProviders, - }); - result.current.handleChatSend(promptText); - await waitFor(() => { - expect(sendMessage).toHaveBeenCalled(); - const appendMessageSend = sendMessage.mock.calls[0][0].message; - expect(appendMessageSend).toEqual( - `You are a helpful, expert assistant who answers questions about Elastic Security. Do not answer questions unrelated to Elastic Security.\nIf you answer a question related to KQL or EQL, it should be immediately usable within an Elastic Security timeline; please always format the output correctly with back ticks. Any answer provided for Query DSL should also be usable in a security timeline. This means you should only ever include the "filter" portion of the query.\nUse the following context to answer questions:\n\n${promptText}` - ); - }); - }); it('handleChatSend sends message with only provided prompt text and context already exists in convo history', async () => { const promptText = 'prompt text'; const { result } = renderHook( @@ -112,7 +96,7 @@ describe('use chat send', () => { }); }); it('handleRegenerateResponse removes the last message of the conversation, resends the convo to GenAI, and appends the message received', async () => { - const { result } = renderHook( + const { result, waitForNextUpdate } = renderHook( () => useChatSend({ ...testProps, currentConversation: { ...welcomeConvo, id: 'welcome-id' } }), { @@ -120,7 +104,10 @@ describe('use chat send', () => { } ); - result.current.handleRegenerateResponse(); + await waitForNextUpdate(); + act(() => { + result.current.handleRegenerateResponse(); + }); expect(removeLastMessage).toHaveBeenCalledWith('welcome-id'); await waitFor(() => { @@ -131,10 +118,13 @@ describe('use chat send', () => { }); it('sends telemetry events for both user and assistant', async () => { const promptText = 'prompt text'; - const { result } = renderHook(() => useChatSend(testProps), { + const { result, waitForNextUpdate } = renderHook(() => useChatSend(testProps), { wrapper: TestProviders, }); - result.current.handleChatSend(promptText); + await waitForNextUpdate(); + act(() => { + result.current.handleChatSend(promptText); + }); await waitFor(() => { expect(reportAssistantMessageSent).toHaveBeenNthCalledWith(1, { @@ -143,6 +133,7 @@ describe('use chat send', () => { actionTypeId: '.gen-ai', model: undefined, provider: 'OpenAI', + isEnabledKnowledgeBase: false, }); expect(reportAssistantMessageSent).toHaveBeenNthCalledWith(2, { conversationId: testProps.currentConversation?.title, @@ -150,6 +141,7 @@ describe('use chat send', () => { actionTypeId: '.gen-ai', model: undefined, provider: 'OpenAI', + isEnabledKnowledgeBase: false, }); }); }); diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.tsx index 905a4513a250f..95de527ff7a3a 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/chat_send/use_chat_send.tsx @@ -8,7 +8,9 @@ import React, { useCallback, useState } from 'react'; import { HttpSetup } from '@kbn/core-http-browser'; import { i18n } from '@kbn/i18n'; -import { PromptResponse, Replacements } from '@kbn/elastic-assistant-common'; +import { Replacements } from '@kbn/elastic-assistant-common'; +import { useKnowledgeBaseStatus } from '../api/knowledge_base/use_knowledge_base_status'; +import { ESQL_RESOURCE } from '../../knowledge_base/setup_knowledge_base_button'; import { DataStreamApis } from '../use_data_stream_apis'; import { NEW_CHAT } from '../conversations/conversation_sidepanel/translations'; import type { ClientMessage } from '../../assistant_context/types'; @@ -20,9 +22,7 @@ import { Conversation, useAssistantContext } from '../../..'; import { getMessageFromRawResponse } from '../helpers'; export interface UseChatSendProps { - allSystemPrompts: PromptResponse[]; currentConversation?: Conversation; - currentSystemPromptId: string | undefined; http: HttpSetup; refetchCurrentUserConversations: DataStreamApis['refetchCurrentUserConversations']; selectedPromptContexts: Record; @@ -46,9 +46,7 @@ export interface UseChatSend { * Handles sending user messages to the API and updating the conversation state. */ export const useChatSend = ({ - allSystemPrompts, currentConversation, - currentSystemPromptId, http, refetchCurrentUserConversations, selectedPromptContexts, @@ -60,6 +58,12 @@ export const useChatSend = ({ const { isLoading, sendMessage, abortStream } = useSendMessage(); const { clearConversation, removeLastMessage } = useConversation(); + const { data: kbStatus } = useKnowledgeBaseStatus({ http, resource: ESQL_RESOURCE }); + const isSetupComplete = + kbStatus?.elser_exists && + kbStatus?.index_exists && + kbStatus?.pipeline_exists && + kbStatus?.esql_exists; // Handles sending latest user prompt to API const handleSendMessage = useCallback( @@ -75,14 +79,11 @@ export const useChatSend = ({ ); return; } - const systemPrompt = allSystemPrompts.find((prompt) => prompt.id === currentSystemPromptId); const userMessage = getCombinedMessage({ - isNewChat: currentConversation.messages.length === 0, currentReplacements: currentConversation.replacements, promptText, selectedPromptContexts, - selectedSystemPrompt: systemPrompt, }); const baseReplacements: Replacements = @@ -123,6 +124,7 @@ export const useChatSend = ({ actionTypeId: currentConversation.apiConfig.actionTypeId, model: currentConversation.apiConfig.model, provider: currentConversation.apiConfig.provider, + isEnabledKnowledgeBase: isSetupComplete ?? false, }); const responseMessage: ClientMessage = getMessageFromRawResponse(rawResponse); @@ -138,14 +140,14 @@ export const useChatSend = ({ actionTypeId: currentConversation.apiConfig.actionTypeId, model: currentConversation.apiConfig.model, provider: currentConversation.apiConfig.provider, + isEnabledKnowledgeBase: isSetupComplete ?? false, }); }, [ - allSystemPrompts, assistantTelemetry, currentConversation, - currentSystemPromptId, http, + isSetupComplete, selectedPromptContexts, sendMessage, setCurrentConversation, diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings/conversation_settings.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings/conversation_settings.tsx index d929c132baf43..852cd20882904 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings/conversation_settings.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings/conversation_settings.tsx @@ -126,7 +126,6 @@ export const ConversationSettings: React.FC = React.m selectedConversation={selectedConversationWithApiConfig} setConversationSettings={setConversationSettings} setConversationsSettingsBulkActions={setConversationsSettingsBulkActions} - onSelectedConversationChange={onSelectedConversationChange} /> diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings/conversation_settings_editor.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings/conversation_settings_editor.tsx index f5c74cf77ee85..ba18594836792 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings/conversation_settings_editor.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings/conversation_settings_editor.tsx @@ -13,7 +13,6 @@ import { FormattedMessage } from '@kbn/i18n-react'; import { OpenAiProviderType } from '@kbn/stack-connectors-plugin/public/common'; import { noop } from 'lodash/fp'; import { PromptResponse } from '@kbn/elastic-assistant-common'; -import { QueryObserverResult } from '@tanstack/react-query'; import { Conversation } from '../../../..'; import * as i18n from './translations'; import * as i18nModel from '../../../connectorland/models/model_selector/translations'; @@ -37,8 +36,6 @@ export interface ConversationSettingsEditorProps { setConversationsSettingsBulkActions: React.Dispatch< React.SetStateAction >; - onSelectedConversationChange: (conversation?: Conversation) => void; - refetchConversations?: () => Promise, unknown>>; } /** @@ -47,15 +44,13 @@ export interface ConversationSettingsEditorProps { export const ConversationSettingsEditor: React.FC = React.memo( ({ allSystemPrompts, - selectedConversation, conversationSettings, + conversationsSettingsBulkActions, http, isDisabled = false, + selectedConversation, setConversationSettings, - conversationsSettingsBulkActions, setConversationsSettingsBulkActions, - onSelectedConversationChange, - refetchConversations, }) => { const { data: connectors, isSuccess: areConnectorsFetched } = useLoadConnectors({ http, @@ -276,16 +271,11 @@ export const ConversationSettingsEditor: React.FC diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings_management/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings_management/index.tsx index 10c0867cafb38..f8818f5faab25 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings_management/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/conversations/conversation_settings_management/index.tsx @@ -321,11 +321,9 @@ const ConversationSettingsManagementComponent: React.FC = ({ conversationsSettingsBulkActions={conversationsSettingsBulkActions} http={http} isDisabled={isDisabled} - refetchConversations={refetchConversations} selectedConversation={selectedConversation} setConversationSettings={setConversationSettings} setConversationsSettingsBulkActions={setConversationsSettingsBulkActions} - onSelectedConversationChange={onSelectedConversationChange} /> )} diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/index.tsx index 3a8c47d90b3f1..43f637b1769f3 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/index.tsx @@ -125,7 +125,7 @@ const AssistantComponent: React.FC = ({ const defaultConnector = useMemo(() => getDefaultConnector(connectors), [connectors]); const { currentConversation, - currentSystemPromptId, + currentSystemPrompt, handleCreateConversation, handleOnConversationDeleted, handleOnConversationSelected, @@ -272,16 +272,14 @@ const AssistantComponent: React.FC = ({ const { abortStream, - handleOnChatCleared: onChatCleared, + handleOnChatCleared, handleChatSend, handleRegenerateResponse, isLoading: isLoadingChatSend, setUserPrompt, userPrompt, } = useChatSend({ - allSystemPrompts, currentConversation, - currentSystemPromptId, http, refetchCurrentUserConversations, selectedPromptContexts, @@ -289,18 +287,6 @@ const AssistantComponent: React.FC = ({ setCurrentConversation, }); - const handleOnChatCleared = useCallback(() => { - onChatCleared(); - if (!currentSystemPromptId) { - setCurrentSystemPromptId(currentConversation?.apiConfig?.defaultSystemPromptId); - } - }, [ - currentConversation?.apiConfig?.defaultSystemPromptId, - currentSystemPromptId, - onChatCleared, - setCurrentSystemPromptId, - ]); - useEffect(() => { // Adding `conversationTitle !== selectedConversationTitle` to prevent auto-run still executing after changing selected conversation if (currentConversation?.messages.length || conversationTitle !== currentConversation?.title) { @@ -389,6 +375,7 @@ const AssistantComponent: React.FC = ({ isFetchingResponse: isLoadingChatSend, setIsStreaming, currentUserAvatar, + systemPromptContent: currentSystemPrompt?.content, })} // Avoid comments going off the flyout css={css` @@ -415,6 +402,7 @@ const AssistantComponent: React.FC = ({ isLoadingChatSend, setIsStreaming, currentUserAvatar, + currentSystemPrompt?.content, selectedPromptContextsCount, ] ); @@ -530,14 +518,13 @@ const AssistantComponent: React.FC = ({ allSystemPrompts={allSystemPrompts} comments={comments} currentConversation={currentConversation} - currentSystemPromptId={currentSystemPromptId} + currentSystemPromptId={currentSystemPrompt?.id} handleOnConversationSelected={handleOnConversationSelected} http={http} isAssistantEnabled={isAssistantEnabled} isLoading={isInitialLoad} isSettingsModalVisible={isSettingsModalVisible} isWelcomeSetup={isWelcomeSetup} - refetchCurrentUserConversations={refetchCurrentUserConversations} setCurrentSystemPromptId={setCurrentSystemPromptId} setIsSettingsModalVisible={setIsSettingsModalVisible} /> diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.test.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.test.ts index 33b33f83e6581..cd4dfe9219484 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.test.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.test.ts @@ -6,9 +6,8 @@ */ import type { ClientMessage } from '../../assistant_context/types'; -import { getCombinedMessage, getSystemMessages } from './helpers'; +import { getCombinedMessage } from './helpers'; import { mockGetAnonymizedValue } from '../../mock/get_anonymized_value'; -import { mockSystemPrompt } from '../../mock/system_prompt'; import { mockAlertPromptContext } from '../../mock/prompt_context'; import type { SelectedPromptContext } from '../prompt_context/types'; @@ -21,77 +20,14 @@ const mockSelectedAlertPromptContext: SelectedPromptContext = { describe('helpers', () => { beforeEach(() => jest.clearAllMocks()); - describe('getSystemMessages', () => { - it('should return an empty array if isNewChat is false', () => { - const result = getSystemMessages({ - isNewChat: false, - selectedSystemPrompt: mockSystemPrompt, - }); - - expect(result).toEqual([]); - }); - - it('should return an empty array if selectedSystemPrompt is undefined', () => { - const result = getSystemMessages({ isNewChat: true, selectedSystemPrompt: undefined }); - - expect(result).toEqual([]); - }); - - describe('when isNewChat is true and selectedSystemPrompt is defined', () => { - let result: ClientMessage[]; - - beforeEach(() => { - result = getSystemMessages({ isNewChat: true, selectedSystemPrompt: mockSystemPrompt }); - }); - - it('should return a message with the content of the selectedSystemPrompt', () => { - expect(result[0].content).toBe(mockSystemPrompt.content); - }); - - it('should return a message with the role "system"', () => { - expect(result[0].role).toBe('system'); - }); - - it('should return a message with a valid timestamp', () => { - const timestamp = new Date(result[0].timestamp); - - expect(timestamp instanceof Date && !isNaN(timestamp.valueOf())).toBe(true); - }); - }); - }); - describe('getCombinedMessage', () => { - it('returns correct content for a new chat with a system prompt', async () => { + it('returns correct content for a chat', async () => { const message: ClientMessage = await getCombinedMessage({ currentReplacements: {}, - isNewChat: true, promptText: 'User prompt text', selectedPromptContexts: { [mockSelectedAlertPromptContext.promptContextId]: mockSelectedAlertPromptContext, }, - selectedSystemPrompt: mockSystemPrompt, - }); - - expect(message.content) - .toEqual(`You are a helpful, expert assistant who answers questions about Elastic Security. - -CONTEXT: -""" -alert data -""" - -User prompt text`); - }); - - it('returns correct content for a new chat WITHOUT a system prompt', async () => { - const message: ClientMessage = await getCombinedMessage({ - currentReplacements: {}, - isNewChat: true, - promptText: 'User prompt text', - selectedPromptContexts: { - [mockSelectedAlertPromptContext.promptContextId]: mockSelectedAlertPromptContext, - }, - selectedSystemPrompt: undefined, // <-- no system prompt }); expect(message.content).toEqual(`CONTEXT: @@ -105,12 +41,10 @@ User prompt text`); it('returns the correct content for an existing chat', async () => { const message: ClientMessage = await getCombinedMessage({ currentReplacements: {}, - isNewChat: false, promptText: 'User prompt text', selectedPromptContexts: { [mockSelectedAlertPromptContext.promptContextId]: mockSelectedAlertPromptContext, }, - selectedSystemPrompt: mockSystemPrompt, }); expect(message.content).toEqual(`CONTEXT: @@ -124,12 +58,10 @@ User prompt text`); it('returns the expected role', async () => { const message: ClientMessage = await getCombinedMessage({ currentReplacements: {}, - isNewChat: true, promptText: 'User prompt text', selectedPromptContexts: { [mockSelectedAlertPromptContext.promptContextId]: mockSelectedAlertPromptContext, }, - selectedSystemPrompt: mockSystemPrompt, }); expect(message.role).toBe('user'); @@ -138,32 +70,25 @@ User prompt text`); it('returns a valid timestamp', async () => { const message: ClientMessage = await getCombinedMessage({ currentReplacements: {}, - isNewChat: true, promptText: 'User prompt text', selectedPromptContexts: {}, - selectedSystemPrompt: mockSystemPrompt, }); expect(Date.parse(message.timestamp)).not.toBeNaN(); }); - it('should return the correct combined message for a new chat without prompt context', () => { + it('should return the correct combined message for a chat without prompt context', () => { const result = getCombinedMessage({ currentReplacements: {}, - isNewChat: true, promptText: 'User prompt text', - selectedSystemPrompt: mockSystemPrompt, selectedPromptContexts: {}, }); - expect(result.content).toEqual( - `You are a helpful, expert assistant who answers questions about Elastic Security.\n\nUser prompt text` - ); + expect(result.content).toEqual(`User prompt text`); }); - it('should return the correct combined message for a new chat without system context and multiple selectedPromptContext', () => { + it('should return the correct combined message for a chat with multiple selectedPromptContext', () => { const result = getCombinedMessage({ currentReplacements: {}, - isNewChat: true, promptText: 'User prompt text', selectedPromptContexts: { context1: { @@ -177,7 +102,6 @@ User prompt text`); replacements: {}, }, }, - selectedSystemPrompt: { ...mockSystemPrompt, content: '' }, }); expect(result.content).toEqual( @@ -188,10 +112,8 @@ User prompt text`); it('should remove extra spaces when there is no prompt content or system prompt', () => { const result = getCombinedMessage({ currentReplacements: {}, - isNewChat: true, promptText: 'User prompt text', selectedPromptContexts: {}, - selectedSystemPrompt: { ...mockSystemPrompt, content: '' }, }); expect(result.content).toEqual(`User prompt text`); @@ -229,13 +151,11 @@ User prompt text`); const message = await getCombinedMessage({ currentReplacements: {}, getAnonymizedValue: mockGetAnonymizedValue, - isNewChat: true, promptText: 'User prompt text', selectedPromptContexts: { [mockPromptContextWithDataToAnonymize.promptContextId]: mockPromptContextWithDataToAnonymize, }, - selectedSystemPrompt: mockSystemPrompt, }); expect(message.replacements).toEqual({ @@ -247,15 +167,11 @@ User prompt text`); }); it('returns the expected content when `isNewChat` is false', async () => { - const isNewChat = false; // <-- not a new chat - const message: ClientMessage = await getCombinedMessage({ currentReplacements: {}, getAnonymizedValue: mockGetAnonymizedValue, - isNewChat, promptText: 'User prompt text', selectedPromptContexts: {}, - selectedSystemPrompt: mockSystemPrompt, }); expect(message.content).toEqual(`User prompt text`); diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.ts index 4868eff04b4e7..0689ff6fd4ef6 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/helpers.ts @@ -5,41 +5,20 @@ * 2.0. */ -import { Replacements, transformRawData, PromptResponse } from '@kbn/elastic-assistant-common'; +import { Replacements, transformRawData } from '@kbn/elastic-assistant-common'; import type { ClientMessage } from '../../assistant_context/types'; import { getAnonymizedValue as defaultGetAnonymizedValue } from '../get_anonymized_value'; import type { SelectedPromptContext } from '../prompt_context/types'; -import { SYSTEM_PROMPT_CONTEXT_NON_I18N } from '../../content/prompts/system/translations'; +import { SYSTEM_PROMPT_CONTEXT_NON_I18N } from './translations'; -export const getSystemMessages = ({ - isNewChat, - selectedSystemPrompt, -}: { - isNewChat: boolean; - selectedSystemPrompt: PromptResponse | undefined; -}): ClientMessage[] => { - if (!isNewChat || selectedSystemPrompt == null) { - return []; - } - - const message: ClientMessage = { - content: selectedSystemPrompt.content, - role: 'system', - timestamp: new Date().toLocaleString(), - }; - - return [message]; -}; interface ClientMessageWithReplacements extends ClientMessage { replacements: Replacements; } export function getCombinedMessage({ currentReplacements, getAnonymizedValue = defaultGetAnonymizedValue, - isNewChat, promptText, selectedPromptContexts, - selectedSystemPrompt, }: { currentReplacements: Replacements | undefined; getAnonymizedValue?: ({ @@ -49,10 +28,8 @@ export function getCombinedMessage({ currentReplacements: Replacements | undefined; rawValue: string; }) => string; - isNewChat: boolean; promptText: string; selectedPromptContexts: Record; - selectedSystemPrompt: PromptResponse | undefined; }): ClientMessageWithReplacements { let replacements: Replacements = currentReplacements ?? {}; const onNewReplacements = (newReplacements: Replacements) => { @@ -74,10 +51,8 @@ export function getCombinedMessage({ }); const content = `${ - isNewChat && selectedSystemPrompt && selectedSystemPrompt.content.length > 0 - ? `${selectedSystemPrompt?.content ?? ''}\n\n` - : '' - }${promptContextsContent.length > 0 ? `${promptContextsContent}\n` : ''}${promptText}`; + promptContextsContent.length > 0 ? `${promptContextsContent}\n` : '' + }${promptText}`; return { // trim ensures any extra \n and other whitespace is removed diff --git a/x-pack/packages/kbn-elastic-assistant/impl/content/prompts/system/translations.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/translations.ts similarity index 61% rename from x-pack/packages/kbn-elastic-assistant/impl/content/prompts/system/translations.ts rename to x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/translations.ts index 75cb6017cb1a3..7dfc07a77247c 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/content/prompts/system/translations.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt/translations.ts @@ -5,15 +5,6 @@ * 2.0. */ -import { i18n } from '@kbn/i18n'; - -export const DEFAULT_SYSTEM_PROMPT_NAME = i18n.translate( - 'xpack.elasticAssistant.assistant.content.prompts.system.defaultSystemPromptName', - { - defaultMessage: 'Default system prompt', - } -); - export const SYSTEM_PROMPT_CONTEXT_NON_I18N = (context: string) => { return `CONTEXT:\n"""\n${context}\n"""`; }; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/helpers.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/helpers.test.tsx index 1d3105a64ac2d..a75c1fa838db5 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/helpers.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/helpers.test.tsx @@ -15,23 +15,18 @@ import { getOptions, getOptionFromPrompt } from './helpers'; describe('helpers', () => { describe('getOptionFromPrompt', () => { + const option = getOptionFromPrompt(mockSystemPrompt); it('returns an EuiSuperSelectOption with the correct value', () => { - const option = getOptionFromPrompt({ ...mockSystemPrompt, isCleared: false }); - expect(option.value).toBe(mockSystemPrompt.id); }); it('returns an EuiSuperSelectOption with the correct inputDisplay', () => { - const option = getOptionFromPrompt({ ...mockSystemPrompt, isCleared: false }); - render(<>{option.inputDisplay}); expect(screen.getByTestId('systemPromptText')).toHaveTextContent(mockSystemPrompt.name); }); it('shows the expected name in the dropdownDisplay', () => { - const option = getOptionFromPrompt({ ...mockSystemPrompt, isCleared: false }); - render({option.dropdownDisplay}); expect(screen.getByTestId(`systemPrompt-${mockSystemPrompt.name}`)).toHaveTextContent( @@ -40,8 +35,6 @@ describe('helpers', () => { }); it('shows the expected prompt content in the dropdownDisplay', () => { - const option = getOptionFromPrompt({ ...mockSystemPrompt, isCleared: false }); - render({option.dropdownDisplay}); expect(screen.getByTestId('content')).toHaveTextContent(mockSystemPrompt.content); @@ -53,7 +46,7 @@ describe('helpers', () => { const prompts = [mockSystemPrompt, mockSuperheroSystemPrompt]; const promptIds = prompts.map(({ id }) => id); - const options = getOptions({ prompts, isCleared: false }); + const options = getOptions(prompts); const optionValues = options.map(({ value }) => value); expect(optionValues).toEqual(promptIds); diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/helpers.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/helpers.tsx index b28d13a91fcd2..7d54d347964e4 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/helpers.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/helpers.tsx @@ -23,13 +23,11 @@ interface GetOptionFromPromptProps extends PromptResponse { content: string; id: string; name: string; - isCleared: boolean; } export const getOptionFromPrompt = ({ content, id, - isCleared, name, }: GetOptionFromPromptProps): EuiSuperSelectOption => ({ value: id, @@ -38,7 +36,7 @@ export const getOptionFromPrompt = ({ data-test-subj="systemPromptText" // @ts-ignore css={css` - color: ${isCleared ? euiThemeVars.euiColorLightShade : euiThemeVars.euiColorDarkestShade}; + color: ${euiThemeVars.euiColorDarkestShade}; `} > {name} @@ -58,12 +56,6 @@ export const getOptionFromPrompt = ({ ), }); -interface GetOptionsProps { - prompts: PromptResponse[] | undefined; - isCleared: boolean; -} -export const getOptions = ({ - prompts, - isCleared, -}: GetOptionsProps): Array> => - prompts?.map((p) => getOptionFromPrompt({ ...p, isCleared })) ?? []; +export const getOptions = ( + prompts: PromptResponse[] | undefined +): Array> => prompts?.map((p) => getOptionFromPrompt(p)) ?? []; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/index.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/index.test.tsx index af68f1d83e6aa..e7ce435cf2556 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/index.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/index.test.tsx @@ -6,16 +6,13 @@ */ import React from 'react'; -import { render, screen, fireEvent, waitFor, within } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; +import { render, screen, fireEvent } from '@testing-library/react'; import { mockSystemPrompt } from '../../../mock/system_prompt'; import { SystemPrompt } from '.'; import { Conversation } from '../../../..'; import { DEFAULT_CONVERSATION_TITLE } from '../../use_conversation/translations'; import { TestProviders } from '../../../mock/test_providers/test_providers'; -import { TEST_IDS } from '../../constants'; -import { useAssistantContext } from '../../../assistant_context'; import { WELCOME_CONVERSATION } from '../../use_conversation/sample_conversations'; import { PromptResponse } from '@kbn/elastic-assistant-common'; @@ -62,7 +59,6 @@ jest.mock('../../use_conversation', () => { }); describe('SystemPrompt', () => { - const currentSystemPromptId = undefined; const isSettingsModalVisible = false; const onSystemPromptSelectionChange = jest.fn(); const setIsSettingsModalVisible = jest.fn(); @@ -79,14 +75,11 @@ describe('SystemPrompt', () => { }); }); - describe('when conversation is undefined', () => { - const conversation = undefined; - + describe('when currentSystemPromptId is undefined', () => { beforeEach(() => { render( { }); it('does NOT render the clear button', () => { - expect(screen.queryByTestId('clear')).not.toBeInTheDocument(); + expect(screen.queryByTestId('clearSystemPrompt')).not.toBeInTheDocument(); }); }); - describe('when conversation is NOT null', () => { + describe('when currentSystemPromptId does not exist', () => { beforeEach(() => { render( { ); }); - it('does render the system prompt select', () => { - expect(screen.queryByTestId('selectSystemPrompt')).toBeInTheDocument(); + it('renders the system prompt select', () => { + expect(screen.getByTestId('selectSystemPrompt')).toBeInTheDocument(); }); - it('renders the system prompt text', () => { - expect(screen.getByTestId('systemPromptText')).toHaveTextContent(mockSystemPrompt.name); + it('does NOT render the edit button', () => { + expect(screen.queryByTestId('edit')).not.toBeInTheDocument(); }); - it('renders the clear button', () => { - expect(screen.getByTestId('clearSystemPrompt')).toBeInTheDocument(); + it('does NOT render the clear button', () => { + expect(screen.queryByTestId('clearSystemPrompt')).not.toBeInTheDocument(); }); }); - // TODO: To be implemented as part of the global settings tests instead of within the SystemPrompt component - describe.skip('when a new prompt is saved', () => { - it('should save new prompt correctly', async () => { - const customPromptName = 'custom prompt'; - const customPromptText = 'custom prompt text'; - render( - - - - ); - await userEvent.click(screen.getByTestId('edit')); - await userEvent.click(screen.getByTestId(TEST_IDS.ADD_SYSTEM_PROMPT)); - - expect(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).toBeVisible(); - - await userEvent.type( - within(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_SELECTOR)).getByTestId('comboBoxInput'), - `${customPromptName}[Enter]` - ); - - await userEvent.type( - screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.PROMPT_TEXT), - customPromptText - ); - - await userEvent.click(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.SAVE)); - - await waitFor(() => { - expect(mockUseAssistantContext.setAllSystemPrompts).toHaveBeenCalledTimes(1); - expect(mockUseAssistantContext.setAllSystemPrompts).toHaveBeenNthCalledWith(1, [ - mockSystemPrompt, - { - id: customPromptName, - content: customPromptText, - name: customPromptName, - promptType: 'system', - }, - ]); - expect(screen.queryByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).not.toBeInTheDocument(); - }); - }); - - it('should save new prompt as a default prompt', async () => { - const customPromptName = 'custom prompt'; - const customPromptText = 'custom prompt text'; + describe('when currentSystemPromptId exists', () => { + beforeEach(() => { render( - - - - ); - await userEvent.click(screen.getByTestId('edit')); - await userEvent.click(screen.getByTestId(TEST_IDS.ADD_SYSTEM_PROMPT)); - - expect(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).toBeVisible(); - - await userEvent.type( - within(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_SELECTOR)).getByTestId('comboBoxInput'), - `${customPromptName}[Enter]` - ); - - await userEvent.type( - screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.PROMPT_TEXT), - customPromptText - ); - - await userEvent.click( - screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.TOGGLE_ALL_DEFAULT_CONVERSATIONS) + ); - - await waitFor(() => { - expect( - screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.TOGGLE_ALL_DEFAULT_CONVERSATIONS) - ).toBeChecked(); - }); - - await userEvent.click(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.SAVE)); - - await waitFor(() => { - expect(mockUseAssistantContext.setAllSystemPrompts).toHaveBeenCalledTimes(1); - expect(mockUseAssistantContext.setAllSystemPrompts).toHaveBeenNthCalledWith(1, [ - { - ...mockSystemPrompt, - isNewConversationDefault: false, - }, - { - id: customPromptName, - content: customPromptText, - name: customPromptName, - promptType: 'system', - isNewConversationDefault: true, - }, - ]); - expect(screen.queryByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).not.toBeInTheDocument(); - }); }); - it('should save new prompt as a default prompt for selected conversations', async () => { - const customPromptName = 'custom prompt'; - const customPromptText = 'custom prompt text'; - render( - - - - ); - await userEvent.click(screen.getByTestId('edit')); - await userEvent.click(screen.getByTestId(TEST_IDS.ADD_SYSTEM_PROMPT)); - - expect(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).toBeVisible(); - - await userEvent.type( - within(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_SELECTOR)).getByTestId('comboBoxInput'), - `${customPromptName}[Enter]` - ); - - await userEvent.type( - screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.PROMPT_TEXT), - customPromptText - ); - - await userEvent.click( - within(screen.getByTestId(TEST_IDS.CONVERSATIONS_MULTISELECTOR)).getByTestId( - 'comboBoxInput' - ) - ); - - await waitFor(() => { - expect( - screen.getByTestId( - TEST_IDS.CONVERSATIONS_MULTISELECTOR_OPTION(DEFAULT_CONVERSATION_TITLE) - ) - ).toBeVisible(); - }); - - // select Default Conversation - await userEvent.click( - screen.getByTestId(TEST_IDS.CONVERSATIONS_MULTISELECTOR_OPTION(DEFAULT_CONVERSATION_TITLE)) - ); - - await userEvent.click(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.SAVE)); - - await waitFor(() => { - expect(screen.queryByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).not.toBeInTheDocument(); - }); - - expect(mockUseAssistantContext.setAllSystemPrompts).toHaveBeenCalledTimes(1); - expect(mockUseAssistantContext.setConversations).toHaveBeenCalledTimes(1); - expect(mockUseAssistantContext.setConversations).toHaveBeenNthCalledWith( - 1, - expect.objectContaining({ - [DEFAULT_CONVERSATION_TITLE]: expect.objectContaining({ - id: DEFAULT_CONVERSATION_TITLE, - apiConfig: expect.objectContaining({ - defaultSystemPromptId: customPromptName, - }), - }), - }) - ); + it('does render the system prompt select', () => { + expect(screen.queryByTestId('selectSystemPrompt')).toBeInTheDocument(); }); - it('should save new prompt correctly when prompt is removed from selected conversation', async () => { - render( - - - - ); - await userEvent.click(screen.getByTestId('edit')); - await userEvent.click(screen.getByTestId(TEST_IDS.ADD_SYSTEM_PROMPT)); - - expect(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).toBeVisible(); - - await userEvent.type( - within(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_SELECTOR)).getByTestId('comboBoxInput'), - `${mockSystemPrompt.name}[Enter]` - ); - - expect( - within(screen.getByTestId(TEST_IDS.CONVERSATIONS_MULTISELECTOR)).getByText( - DEFAULT_CONVERSATION_TITLE - ) - ).toBeVisible(); - - await userEvent.click( - within(screen.getByTestId(TEST_IDS.CONVERSATIONS_MULTISELECTOR)).getByTestId( - 'comboBoxClearButton' - ) - ); - - await userEvent.click(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.SAVE)); - - await waitFor(() => { - expect(screen.queryByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).toBeFalsy(); - }); - expect(mockUseAssistantContext.setAllSystemPrompts).toHaveBeenCalledTimes(1); - expect(mockUseAssistantContext.setConversations).toHaveBeenCalledTimes(1); - expect(mockUseAssistantContext.setConversations).toHaveBeenNthCalledWith( - 1, - expect.objectContaining({ - [DEFAULT_CONVERSATION_TITLE]: expect.objectContaining({ - id: DEFAULT_CONVERSATION_TITLE, - apiConfig: expect.objectContaining({ - defaultSystemPromptId: undefined, - }), - }), - }) - ); + it('renders the system prompt text', () => { + expect(screen.getByTestId('systemPromptText')).toHaveTextContent(mockSystemPrompt.name); }); - it('should save new prompt correctly when prompt is removed from a conversation and linked to another conversation in a single transaction', async () => { - const secondMockConversation: Conversation = { - id: 'second', - category: 'assistant', - apiConfig: { - actionTypeId: '.gen-ai', - connectorId: '123', - defaultSystemPromptId: undefined, - }, - title: 'second', - messages: [], - replacements: {}, - }; - const localMockConversations: Record = { - [DEFAULT_CONVERSATION_TITLE]: BASE_CONVERSATION, - [secondMockConversation.title]: secondMockConversation, - }; - - const localMockUseAssistantContext = { - conversations: localMockConversations, - setConversations: jest.fn(), - setAllSystemPrompts: jest.fn(), - allSystemPrompts: mockSystemPrompts, - hero: 'abc', - }; - (useAssistantContext as jest.Mock).mockImplementation(() => ({ - ...localMockUseAssistantContext, - })); - - render( - - - - ); - await userEvent.click(screen.getByTestId('edit')); - await userEvent.click(screen.getByTestId(TEST_IDS.ADD_SYSTEM_PROMPT)); - - expect(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).toBeVisible(); - - await userEvent.type( - within(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_SELECTOR)).getByTestId('comboBoxInput'), - `${mockSystemPrompt.name}[Enter]` - ); - - expect( - within(screen.getByTestId(TEST_IDS.CONVERSATIONS_MULTISELECTOR)).getByText( - DEFAULT_CONVERSATION_TITLE - ) - ).toBeVisible(); - - // removed selected conversation - await userEvent.click( - within(screen.getByTestId(TEST_IDS.CONVERSATIONS_MULTISELECTOR)).getByTestId( - 'comboBoxClearButton' - ) - ); - - // add `second` conversation - await userEvent.type( - within(screen.getByTestId(TEST_IDS.CONVERSATIONS_MULTISELECTOR)).getByTestId( - 'comboBoxInput' - ), - 'second[Enter]' - ); - - await userEvent.click(screen.getByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.SAVE)); - - await waitFor(() => { - expect(screen.queryByTestId(TEST_IDS.SYSTEM_PROMPT_MODAL.ID)).toBeFalsy(); - }); - - expect(localMockUseAssistantContext.setAllSystemPrompts).toHaveBeenCalledTimes(1); - expect(localMockUseAssistantContext.setConversations).toHaveBeenCalledTimes(1); - expect(localMockUseAssistantContext.setConversations).toHaveBeenNthCalledWith(1, { - [DEFAULT_CONVERSATION_TITLE]: expect.objectContaining({ - id: DEFAULT_CONVERSATION_TITLE, - apiConfig: expect.objectContaining({ - defaultSystemPromptId: undefined, - }), - }), - [secondMockConversation.title]: { - ...secondMockConversation, - apiConfig: { - connectorId: '123', - defaultSystemPromptId: mockSystemPrompt.id, - }, - }, - }); + it('renders the clear button', () => { + expect(screen.getByTestId('clearSystemPrompt')).toBeInTheDocument(); }); }); - it('shows the system prompt select when system prompt text is clicked', () => { render( void; setIsSettingsModalVisible: React.Dispatch>; - allSystemPrompts: PromptResponse[]; - refetchConversations?: () => Promise, unknown>>; } const SystemPromptComponent: React.FC = ({ - conversation, + allSystemPrompts, currentSystemPromptId, isSettingsModalVisible, onSystemPromptSelectionChange, setIsSettingsModalVisible, - allSystemPrompts, - refetchConversations, }) => { - const [isCleared, setIsCleared] = useState(false); - const selectedPrompt = useMemo(() => { - if (currentSystemPromptId !== undefined) { - setIsCleared(false); - return allSystemPrompts.find((p) => p.id === currentSystemPromptId); - } else { - return allSystemPrompts.find((p) => p.id === conversation?.apiConfig?.defaultSystemPromptId); - } - }, [allSystemPrompts, conversation?.apiConfig?.defaultSystemPromptId, currentSystemPromptId]); + const selectedPrompt = useMemo( + () => + currentSystemPromptId !== undefined + ? allSystemPrompts.find((p) => p.id === currentSystemPromptId) + : undefined, + [allSystemPrompts, currentSystemPromptId] + ); const handleClearSystemPrompt = useCallback(() => { - if (currentSystemPromptId === undefined) { - setIsCleared(false); - onSystemPromptSelectionChange( - allSystemPrompts.find((p) => p.id === conversation?.apiConfig?.defaultSystemPromptId)?.id - ); - } else { - setIsCleared(true); - onSystemPromptSelectionChange(undefined); - } - }, [ - allSystemPrompts, - conversation?.apiConfig?.defaultSystemPromptId, - currentSystemPromptId, - onSystemPromptSelectionChange, - ]); + onSystemPromptSelectionChange(undefined); + }, [onSystemPromptSelectionChange]); return ( diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/select_system_prompt/index.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/select_system_prompt/index.test.tsx index 30f3cd12d1c7c..68b305da90057 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/select_system_prompt/index.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/select_system_prompt/index.test.tsx @@ -46,9 +46,9 @@ const props: Props = { isNewConversationDefault: true, }, ], - conversation: undefined, isSettingsModalVisible: false, isClearable: true, + onSystemPromptSelectionChange: jest.fn(), selectedPrompt: { id: 'default-system-prompt', content: '', name: '', promptType: 'system' }, setIsSettingsModalVisible: jest.fn(), }; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/select_system_prompt/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/select_system_prompt/index.tsx index 2fa4f0d210055..c567e18a446f4 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/select_system_prompt/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/select_system_prompt/index.tsx @@ -22,12 +22,9 @@ import { PromptResponse, PromptTypeEnum, } from '@kbn/elastic-assistant-common/impl/schemas/prompts/bulk_crud_prompts_route.gen'; -import { QueryObserverResult } from '@tanstack/react-query'; -import { Conversation } from '../../../../..'; import { getOptions } from '../helpers'; import * as i18n from '../translations'; import { useAssistantContext } from '../../../../assistant_context'; -import { useConversation } from '../../../use_conversation'; import { TEST_IDS } from '../../../constants'; import { PROMPT_CONTEXT_SELECTOR_PREFIX } from '../../../quick_prompts/prompt_context_selector/translations'; import { SYSTEM_PROMPTS_TAB } from '../../../settings/const'; @@ -35,20 +32,14 @@ import { SYSTEM_PROMPTS_TAB } from '../../../settings/const'; export interface Props { allPrompts: PromptResponse[]; compressed?: boolean; - conversation?: Conversation; - selectedPrompt: PromptResponse | undefined; clearSelectedSystemPrompt?: () => void; isClearable?: boolean; - isCleared?: boolean; isDisabled?: boolean; isOpen?: boolean; isSettingsModalVisible: boolean; + selectedPrompt: PromptResponse | undefined; setIsSettingsModalVisible: React.Dispatch>; - onSystemPromptSelectionChange?: (promptId: string | undefined) => void; - onSelectedConversationChange?: (result: Conversation) => void; - setConversationSettings?: React.Dispatch>>; - setConversationsSettingsBulkActions?: React.Dispatch>; - refetchConversations?: () => Promise, unknown>>; + onSystemPromptSelectionChange: (promptId: string | undefined) => void; } const ADD_NEW_SYSTEM_PROMPT = 'ADD_NEW_SYSTEM_PROMPT'; @@ -56,24 +47,16 @@ const ADD_NEW_SYSTEM_PROMPT = 'ADD_NEW_SYSTEM_PROMPT'; const SelectSystemPromptComponent: React.FC = ({ allPrompts, compressed = false, - conversation, - selectedPrompt, clearSelectedSystemPrompt, isClearable = false, - isCleared = false, isDisabled = false, isOpen = false, - refetchConversations, isSettingsModalVisible, onSystemPromptSelectionChange, + selectedPrompt, setIsSettingsModalVisible, - onSelectedConversationChange, - setConversationSettings, - setConversationsSettingsBulkActions, }) => { const { setSelectedSettingsTab } = useAssistantContext(); - const { setApiConfig } = useConversation(); - const allSystemPrompts = useMemo( () => allPrompts.filter((p) => p.promptType === PromptTypeEnum.system), [allPrompts] @@ -83,26 +66,8 @@ const SelectSystemPromptComponent: React.FC = ({ const handleOnBlur = useCallback(() => setIsOpenLocal(false), []); const valueOfSelected = useMemo(() => selectedPrompt?.id, [selectedPrompt?.id]); - // Write the selected system prompt to the conversation config - const setSelectedSystemPrompt = useCallback( - async (promptId?: string) => { - if (conversation && conversation.apiConfig) { - const result = await setApiConfig({ - conversation, - apiConfig: { - ...conversation.apiConfig, - defaultSystemPromptId: promptId, - }, - }); - await refetchConversations?.(); - return result; - } - }, - [conversation, refetchConversations, setApiConfig] - ); - - const addNewSystemPrompt = useMemo(() => { - return { + const addNewSystemPrompt = useMemo( + () => ({ value: ADD_NEW_SYSTEM_PROMPT, inputDisplay: i18n.ADD_NEW_SYSTEM_PROMPT, dropdownDisplay: ( @@ -118,14 +83,12 @@ const SelectSystemPromptComponent: React.FC = ({
    ), - }; - }, []); + }), + [] + ); // SuperSelect State/Actions - const options = useMemo( - () => getOptions({ prompts: allSystemPrompts, isCleared }), - [allSystemPrompts, isCleared] - ); + const options = useMemo(() => getOptions(allSystemPrompts), [allSystemPrompts]); const onChange = useCallback( async (selectedSystemPromptId: string) => { @@ -134,38 +97,9 @@ const SelectSystemPromptComponent: React.FC = ({ setSelectedSettingsTab(SYSTEM_PROMPTS_TAB); return; } - // Note: if callback is provided, this component does not persist. Extract to separate component - if (onSystemPromptSelectionChange != null) { - onSystemPromptSelectionChange(selectedSystemPromptId); - } - const result = await setSelectedSystemPrompt(selectedSystemPromptId); - if (result) { - setConversationSettings?.((prev: Record) => { - const newConversationsSettings = Object.entries(prev).reduce< - Record - >((acc, [key, convo]) => { - if (result.title === convo.title) { - acc[result.id] = result; - } else { - acc[key] = convo; - } - return acc; - }, {}); - return newConversationsSettings; - }); - onSelectedConversationChange?.(result); - setConversationsSettingsBulkActions?.({}); - } + onSystemPromptSelectionChange(selectedSystemPromptId); }, - [ - onSelectedConversationChange, - onSystemPromptSelectionChange, - setConversationSettings, - setConversationsSettingsBulkActions, - setIsSettingsModalVisible, - setSelectedSettingsTab, - setSelectedSystemPrompt, - ] + [onSystemPromptSelectionChange, setIsSettingsModalVisible, setSelectedSettingsTab] ); const clearSystemPrompt = useCallback(() => { @@ -234,14 +168,10 @@ const SelectSystemPromptComponent: React.FC = ({ inline-size: 16px; block-size: 16px; border-radius: 16px; - background: ${isCleared - ? euiThemeVars.euiColorLightShade - : euiThemeVars.euiColorMediumShade}; + background: ${euiThemeVars.euiColorMediumShade}; :hover:not(:disabled) { - background: ${isCleared - ? euiThemeVars.euiColorLightShade - : euiThemeVars.euiColorMediumShade}; + background: ${euiThemeVars.euiColorMediumShade}; transform: none; } diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/system_prompt_modal/system_prompt_editor.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/system_prompt_modal/system_prompt_editor.tsx index 5c0e7f8aa3e56..aa507ab2cf8ab 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/system_prompt_modal/system_prompt_editor.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/system_prompt_modal/system_prompt_editor.tsx @@ -32,10 +32,7 @@ import { TEST_IDS } from '../../../constants'; import { ConversationsBulkActions } from '../../../api'; import { getSelectedConversations } from '../system_prompt_settings_management/utils'; import { useSystemPromptEditor } from './use_system_prompt_editor'; -import { - getConversationApiConfig, - getFallbackDefaultSystemPrompt, -} from '../../../use_conversation/helpers'; +import { getConversationApiConfig } from '../../../use_conversation/helpers'; interface Props { connectors: AIConnector[] | undefined; @@ -186,7 +183,7 @@ export const SystemPromptEditorComponent: React.FC = ({ if (selectedSystemPrompt != null) { setConversationSettings((prev) => keyBy( - 'title', + 'id', /* * updatedConversationWithPrompts calculates the present of prompt for * each conversation. Based on the values of selected conversation, it goes @@ -228,9 +225,7 @@ export const SystemPromptEditorComponent: React.FC = ({ conversation: convo, defaultConnector, }).apiConfig, - defaultSystemPromptId: - getDefaultSystemPromptId(convo) ?? - getFallbackDefaultSystemPrompt({ allSystemPrompts: systemPromptSettings })?.id, + defaultSystemPromptId: getDefaultSystemPromptId(convo), }, }; } diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/system_prompt_modal/system_prompt_settings.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/system_prompt_modal/system_prompt_settings.test.tsx index 5116da2a56207..f203146e8728b 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/system_prompt_modal/system_prompt_settings.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/prompt_editor/system_prompt/system_prompt_modal/system_prompt_settings.test.tsx @@ -133,14 +133,14 @@ describe('SystemPromptSettings', () => { fireEvent.click(getByTestId('change-multi')); expect(setConversationSettings).toHaveReturnedWith({ - [welcomeConvo.title]: { + [welcomeConvo.id]: { ...welcomeConvo, apiConfig: { ...welcomeConvo.apiConfig, defaultSystemPromptId: 'mock-system-prompt-1', }, }, - [alertConvo.title]: { + [alertConvo.id]: { ...alertConvo, apiConfig: { ...alertConvo.apiConfig, diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/assistant_settings.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/assistant_settings.tsx index 753a941ef4f62..f92ca3fc3c763 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/assistant_settings.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/settings/assistant_settings.tsx @@ -172,7 +172,9 @@ export const AssistantSettings: React.FC = React.memo( // If the selected conversation is deleted, we need to select a new conversation to prevent a crash creating a conversation that already exists const isSelectedConversationDeleted = defaultSelectedConversationId && - conversationSettings[defaultSelectedConversationId] == null; + // sometimes the key is a title, so do not rely on conversationSettings[defaultSelectedConversationId] + !Object.values(conversationSettings).some(({ id }) => id === defaultSelectedConversationId); + const newSelectedConversation: Conversation | undefined = Object.values(conversationSettings)[0]; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/upgrade_license_cta/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/upgrade_license_cta/index.tsx index 4908b580552fb..e69b530beaf60 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/upgrade_license_cta/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/upgrade_license_cta/index.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; import { css } from '@emotion/react'; import { HttpSetup } from '@kbn/core-http-browser'; -import { ENTERPRISE } from '../../content/prompts/welcome/translations'; +import { ENTERPRISE } from './translations'; import { UpgradeButtons } from '../../upgrade/upgrade_buttons'; interface OwnProps { diff --git a/x-pack/packages/kbn-elastic-assistant/impl/content/prompts/welcome/translations.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/upgrade_license_cta/translations.ts similarity index 100% rename from x-pack/packages/kbn-elastic-assistant/impl/content/prompts/welcome/translations.ts rename to x-pack/packages/kbn-elastic-assistant/impl/assistant/upgrade_license_cta/translations.ts diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_assistant_overlay/index.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_assistant_overlay/index.test.tsx index 9e21d9da57d74..780ffcbd9a323 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_assistant_overlay/index.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_assistant_overlay/index.test.tsx @@ -12,6 +12,7 @@ import { useAssistantOverlay } from '.'; import { waitFor } from '@testing-library/react'; import { useFetchCurrentUserConversations } from '../api'; import { Conversation } from '../../assistant_context/types'; +import { mockConnectors } from '../../mock/connectors'; const mockUseAssistantContext = { registerPromptContext: jest.fn(), @@ -27,19 +28,21 @@ jest.mock('../../assistant_context', () => { }; }); jest.mock('../api/conversations/use_fetch_current_user_conversations'); +const mockCreateConversation = jest.fn().mockResolvedValue({ id: 'conversation-id' }); jest.mock('../use_conversation', () => { return { useConversation: jest.fn(() => ({ + createConversation: mockCreateConversation, currentConversation: { id: 'conversation-id' }, })), }; }); -jest.mock('../helpers'); + jest.mock('../../connectorland/helpers'); jest.mock('../../connectorland/use_load_connectors', () => { return { useLoadConnectors: jest.fn(() => ({ - data: [], + data: mockConnectors, error: null, isSuccess: true, })), @@ -158,10 +161,78 @@ describe('useAssistantOverlay', () => { result.current.showAssistantOverlay(true); }); + expect(mockCreateConversation).not.toHaveBeenCalled(); expect(mockUseAssistantContext.showAssistantOverlay).toHaveBeenCalledWith({ showOverlay: true, promptContextId: 'id', conversationTitle: 'conversation-id', }); }); + + it('calls `showAssistantOverlay` and creates a new conversation when shouldCreateConversation: true and the conversation does not exist', async () => { + const isAssistantAvailable = true; + const { result } = renderHook(() => + useAssistantOverlay( + 'event', + 'conversation-id', + 'description', + () => Promise.resolve('data'), + 'id', + null, + 'tooltip', + isAssistantAvailable + ) + ); + + act(() => { + result.current.showAssistantOverlay(true, true); + }); + + expect(mockCreateConversation).toHaveBeenCalledWith({ + title: 'conversation-id', + apiConfig: { + actionTypeId: '.gen-ai', + connectorId: 'connectorId', + }, + category: 'assistant', + }); + + await waitFor(() => { + expect(mockUseAssistantContext.showAssistantOverlay).toHaveBeenCalledWith({ + showOverlay: true, + promptContextId: 'id', + conversationTitle: 'conversation-id', + }); + }); + }); + + it('calls `showAssistantOverlay` and does not create a new conversation when shouldCreateConversation: true and the conversation exists', async () => { + const isAssistantAvailable = true; + const { result } = renderHook(() => + useAssistantOverlay( + 'event', + 'electric sheep', + 'description', + () => Promise.resolve('data'), + 'id', + null, + 'tooltip', + isAssistantAvailable + ) + ); + + act(() => { + result.current.showAssistantOverlay(true, true); + }); + + expect(mockCreateConversation).not.toHaveBeenCalled(); + + await waitFor(() => { + expect(mockUseAssistantContext.showAssistantOverlay).toHaveBeenCalledWith({ + showOverlay: true, + promptContextId: 'id', + conversationTitle: 'electric sheep', + }); + }); + }); }); diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_assistant_overlay/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_assistant_overlay/index.tsx index ae13f370ba639..69884bfbe6818 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_assistant_overlay/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_assistant_overlay/index.tsx @@ -11,6 +11,12 @@ import { useCallback, useEffect, useMemo } from 'react'; import { useAssistantContext } from '../../assistant_context'; import { getUniquePromptContextId } from '../../assistant_context/helpers'; import type { PromptContext } from '../prompt_context/types'; +import { useConversation } from '../use_conversation'; +import { getDefaultConnector, mergeBaseWithPersistedConversations } from '../helpers'; +import { getGenAiConfig } from '../../connectorland/helpers'; +import { useLoadConnectors } from '../../connectorland/use_load_connectors'; +import { FetchConversationsResponse, useFetchCurrentUserConversations } from '../api'; +import { Conversation } from '../../assistant_context/types'; interface UseAssistantOverlay { showAssistantOverlay: (show: boolean, silent?: boolean) => void; @@ -76,6 +82,26 @@ export const useAssistantOverlay = ( */ replacements?: Replacements | null ): UseAssistantOverlay => { + const { http } = useAssistantContext(); + const { data: connectors } = useLoadConnectors({ + http, + }); + + const defaultConnector = useMemo(() => getDefaultConnector(connectors), [connectors]); + const apiConfig = useMemo(() => getGenAiConfig(defaultConnector), [defaultConnector]); + + const { createConversation } = useConversation(); + + const onFetchedConversations = useCallback( + (conversationsData: FetchConversationsResponse): Record => + mergeBaseWithPersistedConversations({}, conversationsData), + [] + ); + const { data: conversations, isLoading } = useFetchCurrentUserConversations({ + http, + onFetch: onFetchedConversations, + isAssistantEnabled, + }); // memoize the props so that we can use them in the effect below: const _category: PromptContext['category'] = useMemo(() => category, [category]); const _description: PromptContext['description'] = useMemo(() => description, [description]); @@ -104,8 +130,34 @@ export const useAssistantOverlay = ( // proxy show / hide calls to assistant context, using our internal prompt context id: // silent:boolean doesn't show the toast notification if the conversation is not found const showAssistantOverlay = useCallback( - async (showOverlay: boolean) => { + // shouldCreateConversation should only be passed for + // non-default conversations that may need to be initialized + async (showOverlay: boolean, shouldCreateConversation: boolean = false) => { if (promptContextId != null) { + if (shouldCreateConversation) { + let conversation; + if (!isLoading) { + conversation = conversationTitle + ? Object.values(conversations).find((conv) => conv.title === conversationTitle) + : undefined; + } + + if (isAssistantEnabled && !conversation && defaultConnector && !isLoading) { + try { + await createConversation({ + apiConfig: { + ...apiConfig, + actionTypeId: defaultConnector?.actionTypeId, + connectorId: defaultConnector?.id, + }, + category: 'assistant', + title: conversationTitle ?? '', + }); + } catch (e) { + /* empty */ + } + } + } assistantContextShowOverlay({ showOverlay, promptContextId, @@ -113,7 +165,17 @@ export const useAssistantOverlay = ( }); } }, - [assistantContextShowOverlay, conversationTitle, promptContextId] + [ + apiConfig, + assistantContextShowOverlay, + conversationTitle, + conversations, + createConversation, + defaultConnector, + isAssistantEnabled, + isLoading, + promptContextId, + ] ); useEffect(() => { diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_conversation/helpers.test.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_conversation/helpers.test.ts index a5ae389a40353..3aa8215f0a090 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_conversation/helpers.test.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_conversation/helpers.test.ts @@ -120,10 +120,10 @@ describe('useConversation helpers', () => { expect(result).toEqual(systemPrompts[1]); }); - test('should return the fallback prompt if default new system prompt do not exist', () => { + test('should return undefined if default new system prompt do not exist', () => { const result = getDefaultNewSystemPrompt([systemPrompts[0]]); - expect(result).toEqual(systemPrompts[0]); + expect(result).toEqual(undefined); }); test('should return undefined if default (starred) isNewConversationDefault system prompt does not exist and there are no system prompts', () => { diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_conversation/helpers.ts b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_conversation/helpers.ts index dce5a1ab11388..85370e511dfc9 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_conversation/helpers.ts +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_conversation/helpers.ts @@ -10,7 +10,6 @@ import { ApiConfig, PromptResponse } from '@kbn/elastic-assistant-common'; import { Conversation } from '../../assistant_context/types'; import { AIConnector } from '../../connectorland/connector_selector'; import { getGenAiConfig } from '../../connectorland/helpers'; -import { DEFAULT_SYSTEM_PROMPT_NAME } from '../../content/prompts/system/translations'; export interface CodeBlockDetails { type: QueryType; @@ -76,11 +75,10 @@ export const analyzeMarkdown = (markdown: string): CodeBlockDetails[] => { * * @param allSystemPrompts All available System Prompts */ -export const getDefaultNewSystemPrompt = (allSystemPrompts: PromptResponse[]) => { - const fallbackSystemPrompt = allSystemPrompts.find( - (prompt) => prompt.name === DEFAULT_SYSTEM_PROMPT_NAME - ); - return allSystemPrompts.find((prompt) => prompt.isNewConversationDefault) ?? fallbackSystemPrompt; +export const getDefaultNewSystemPrompt = ( + allSystemPrompts: PromptResponse[] +): PromptResponse | undefined => { + return allSystemPrompts.find((prompt) => prompt.isNewConversationDefault); }; /** @@ -103,24 +101,6 @@ export const getDefaultSystemPrompt = ({ return conversationSystemPrompt; }; -/** - * Returns the default system prompt - * - * @param allSystemPrompts All available System Prompts - * @param conversation Conversation to get the default system prompt for - */ -export const getFallbackDefaultSystemPrompt = ({ - allSystemPrompts, -}: { - allSystemPrompts: PromptResponse[]; -}): PromptResponse | undefined => { - const fallbackSystemPrompt = allSystemPrompts.find( - (prompt) => prompt.name === DEFAULT_SYSTEM_PROMPT_NAME - ); - - return fallbackSystemPrompt; -}; - /** * Returns the API config for a conversation * diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_current_conversation/index.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_current_conversation/index.test.tsx index 36a6ed5a10a3a..0f04068a89ca2 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_current_conversation/index.test.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_current_conversation/index.test.tsx @@ -72,17 +72,31 @@ describe('useCurrentConversation', () => { const { result } = setupHook(); expect(result.current.currentConversation).toBeUndefined(); - expect(result.current.currentSystemPromptId).toBeUndefined(); + expect(result.current.currentSystemPrompt).toBeUndefined(); }); - it('should set the current system prompt ID when the prompt selection changes', () => { - const { result } = setupHook(); + it('should set the current system prompt ID when the prompt selection changes', async () => { + const conversationId = 'welcome_id'; + const conversation = mockData.welcome_id; + mockUseConversation.getConversation.mockResolvedValue(conversation); + + const { result } = setupHook({ + conversationId, + conversations: { [conversationId]: conversation }, + }); - act(() => { - result.current.setCurrentSystemPromptId('prompt-id'); + await act(async () => { + await result.current.setCurrentSystemPromptId('prompt-id'); }); - expect(result.current.currentSystemPromptId).toBe('prompt-id'); + expect(mockUseConversation.setApiConfig).toHaveBeenCalledWith({ + conversation, + apiConfig: { + ...conversation.apiConfig, + defaultSystemPromptId: 'prompt-id', + }, + }); + expect(defaultProps.refetchCurrentUserConversations).toHaveBeenCalled(); }); it('should fetch and set the current conversation', async () => { @@ -136,7 +150,7 @@ describe('useCurrentConversation', () => { }); expect(result.current.currentConversation).toEqual(conversation); - expect(result.current.currentSystemPromptId).toBe('something-crazy'); + expect(result.current.currentSystemPrompt?.id).toBe('something-crazy'); }); it('should non-existing handle conversation selection', async () => { @@ -169,7 +183,7 @@ describe('useCurrentConversation', () => { }); expect(result.current.currentConversation).toEqual(mockData.welcome_id); - expect(result.current.currentSystemPromptId).toBe('system-prompt-id'); + expect(result.current.currentSystemPrompt?.id).toBe('system-prompt-id'); }); it('should create a new conversation', async () => { @@ -210,6 +224,115 @@ describe('useCurrentConversation', () => { expect(mockUseConversation.createConversation).toHaveBeenCalled(); }); + it('should create a new conversation using the connector portion of the apiConfig of the current conversation', async () => { + const newConversation = { + ...mockData.welcome_id, + id: 'new-id', + title: 'NEW_CHAT', + messages: [], + } as Conversation; + mockUseConversation.createConversation.mockResolvedValue(newConversation); + + const { result } = setupHook({ + conversations: { + 'old-id': { + ...mockData.welcome_id, + id: 'old-id', + title: 'Old Chat', + messages: [], + } as Conversation, + }, + conversationId: 'old-id', + refetchCurrentUserConversations: jest.fn().mockResolvedValue({ + data: { + 'old-id': { + ...mockData.welcome_id, + id: 'old-id', + title: 'Old Chat', + messages: [], + } as Conversation, + [newConversation.id]: newConversation, + }, + }), + }); + + await act(async () => { + await result.current.handleCreateConversation(); + }); + const { defaultSystemPromptId: _, ...everythingExceptSystemPromptId } = + mockData.welcome_id.apiConfig; + + expect(mockUseConversation.createConversation).toHaveBeenCalledWith({ + apiConfig: everythingExceptSystemPromptId, + title: 'New chat', + }); + }); + + it('should create a new conversation with correct isNewConversationDefault: true system prompt', async () => { + const newConversation = { + ...mockData.welcome_id, + id: 'new-id', + title: 'NEW_CHAT', + messages: [], + } as Conversation; + mockUseConversation.createConversation.mockResolvedValue(newConversation); + + const { result } = setupHook({ + conversations: { + 'old-id': { + ...mockData.welcome_id, + id: 'old-id', + title: 'Old Chat', + messages: [], + } as Conversation, + }, + allSystemPrompts: [ + { + timestamp: '2024-09-10T15:52:24.761Z', + users: [ + { + id: 'u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0', + name: 'elastic', + }, + ], + content: 'Address the user as Mr Orange in each response', + isNewConversationDefault: true, + updatedAt: '2024-09-10T22:07:44.915Z', + id: 'LBOi3JEBy3uD9EGi1d_G', + name: 'Call me Orange', + promptType: 'system', + consumer: 'securitySolutionUI', + }, + ], + conversationId: 'old-id', + refetchCurrentUserConversations: jest.fn().mockResolvedValue({ + data: { + 'old-id': { + ...mockData.welcome_id, + id: 'old-id', + title: 'Old Chat', + messages: [], + } as Conversation, + [newConversation.id]: newConversation, + }, + }), + }); + + await act(async () => { + await result.current.handleCreateConversation(); + }); + const { defaultSystemPromptId: _, ...everythingExceptSystemPromptId } = + mockData.welcome_id.apiConfig; + + expect(mockUseConversation.createConversation).toHaveBeenCalledWith({ + apiConfig: { + ...everythingExceptSystemPromptId, + defaultSystemPromptId: 'LBOi3JEBy3uD9EGi1d_G', + }, + title: 'New chat', + }); + }); + it('should delete a conversation', async () => { const conversationTitle = 'Test Conversation'; const conversation = { diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_current_conversation/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_current_conversation/index.tsx index 3f08b0a332ad6..d599190ca5623 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_current_conversation/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant/use_current_conversation/index.tsx @@ -13,7 +13,7 @@ import deepEqual from 'fast-deep-equal'; import { AIConnector } from '../../connectorland/connector_selector'; import { getGenAiConfig } from '../../connectorland/helpers'; import { NEW_CHAT } from '../conversations/conversation_sidepanel/translations'; -import { getDefaultSystemPrompt } from '../use_conversation/helpers'; +import { getDefaultNewSystemPrompt, getDefaultSystemPrompt } from '../use_conversation/helpers'; import { useConversation } from '../use_conversation'; import { sleep } from '../helpers'; import { Conversation, WELCOME_CONVERSATION_TITLE } from '../../..'; @@ -31,7 +31,7 @@ export interface Props { interface UseCurrentConversation { currentConversation: Conversation | undefined; - currentSystemPromptId: string | undefined; + currentSystemPrompt: PromptResponse | undefined; handleCreateConversation: () => Promise; handleOnConversationDeleted: (cTitle: string) => Promise; handleOnConversationSelected: ({ cId, cTitle }: { cId: string; cTitle: string }) => Promise; @@ -41,7 +41,7 @@ interface UseCurrentConversation { isStreamRefetch?: boolean; }) => Promise; setCurrentConversation: Dispatch>; - setCurrentSystemPromptId: Dispatch>; + setCurrentSystemPromptId: (promptId: string | undefined) => void; } /** @@ -83,12 +83,22 @@ export const useCurrentConversation = ({ [allSystemPrompts, currentConversation] ); - const [currentSystemPromptId, setCurrentSystemPromptId] = useState( - currentSystemPrompt?.id + // Write the selected system prompt to the conversation config + const setCurrentSystemPromptId = useCallback( + async (promptId?: string) => { + if (currentConversation && currentConversation.apiConfig) { + await setApiConfig({ + conversation: currentConversation, + apiConfig: { + ...currentConversation.apiConfig, + defaultSystemPromptId: promptId, + }, + }); + await refetchCurrentUserConversations(); + } + }, + [currentConversation, refetchCurrentUserConversations, setApiConfig] ); - useEffect(() => { - setCurrentSystemPromptId(currentSystemPrompt?.id); - }, [currentSystemPrompt?.id]); /** * END SYSTEM PROMPT @@ -248,10 +258,20 @@ export const useCurrentConversation = ({ }); return; } + const newSystemPrompt = getDefaultNewSystemPrompt(allSystemPrompts); const newConversation = await createConversation({ title: NEW_CHAT, - apiConfig: currentConversation?.apiConfig, + ...(currentConversation?.apiConfig != null && + currentConversation?.apiConfig?.actionTypeId != null + ? { + apiConfig: { + connectorId: currentConversation.apiConfig.connectorId, + actionTypeId: currentConversation.apiConfig.actionTypeId, + ...(newSystemPrompt?.id != null ? { defaultSystemPromptId: newSystemPrompt.id } : {}), + }, + } + : {}), }); if (newConversation) { @@ -263,6 +283,7 @@ export const useCurrentConversation = ({ await refetchCurrentUserConversations(); } }, [ + allSystemPrompts, conversations, createConversation, currentConversation?.apiConfig, @@ -272,7 +293,7 @@ export const useCurrentConversation = ({ return { currentConversation, - currentSystemPromptId, + currentSystemPrompt, handleCreateConversation, handleOnConversationDeleted, handleOnConversationSelected, diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/index.tsx index b9f2f789f1df8..4217a3d9dc2b8 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/index.tsx @@ -5,7 +5,6 @@ * 2.0. */ -import { EuiCommentProps } from '@elastic/eui'; import type { HttpSetup } from '@kbn/core-http-browser'; import { omit } from 'lodash/fp'; import React, { useCallback, useMemo, useState, useRef } from 'react'; @@ -21,7 +20,12 @@ import type { RegisterPromptContext, UnRegisterPromptContext, } from '../assistant/prompt_context/types'; -import type { Conversation } from './types'; +import { + AssistantAvailability, + AssistantTelemetry, + Conversation, + GetAssistantMessages, +} from './types'; import { DEFAULT_ASSISTANT_TITLE } from '../assistant/translations'; import { CodeBlockDetails } from '../assistant/use_conversation/helpers'; import { PromptContextTemplate } from '../assistant/prompt_context/types'; @@ -34,7 +38,6 @@ import { STREAMING_LOCAL_STORAGE_KEY, TRACE_OPTIONS_SESSION_STORAGE_KEY, } from './constants'; -import { AssistantAvailability, AssistantTelemetry } from './types'; import { useCapabilities } from '../assistant/api/capabilities/use_capabilities'; import { WELCOME_CONVERSATION_TITLE } from '../assistant/use_conversation/translations'; import { SettingsTabs } from '../assistant/settings/types'; @@ -63,16 +66,7 @@ export interface AssistantProviderProps { basePromptContexts?: PromptContextTemplate[]; docLinks: Omit; children: React.ReactNode; - getComments: (commentArgs: { - abortStream: () => void; - currentConversation?: Conversation; - isFetchingResponse: boolean; - refetchCurrentConversation: ({ isStreamRefetch }: { isStreamRefetch?: boolean }) => void; - regenerateMessage: (conversationId: string) => void; - showAnonymizedValues: boolean; - setIsStreaming: (isStreaming: boolean) => void; - currentUserAvatar?: UserAvatar; - }) => EuiCommentProps[]; + getComments: GetAssistantMessages; http: HttpSetup; baseConversations: Record; nameSpace?: string; @@ -102,16 +96,7 @@ export interface UseAssistantContext { docLinks: Omit; basePath: string; baseConversations: Record; - getComments: (commentArgs: { - abortStream: () => void; - currentConversation?: Conversation; - isFetchingResponse: boolean; - refetchCurrentConversation: ({ isStreamRefetch }: { isStreamRefetch?: boolean }) => void; - regenerateMessage: () => void; - showAnonymizedValues: boolean; - currentUserAvatar?: UserAvatar; - setIsStreaming: (isStreaming: boolean) => void; - }) => EuiCommentProps[]; + getComments: GetAssistantMessages; http: HttpSetup; knowledgeBase: KnowledgeBaseConfig; getLastConversationId: (conversationTitle?: string) => string; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx b/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx index 790087158102e..dad5ef04e0c18 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/assistant_context/types.tsx @@ -6,6 +6,8 @@ */ import { ApiConfig, Message, Replacements } from '@kbn/elastic-assistant-common'; +import { EuiCommentProps } from '@elastic/eui'; +import { UserAvatar } from '.'; export interface MessagePresentation { delay?: number; @@ -50,6 +52,7 @@ export interface AssistantTelemetry { actionTypeId: string; model?: string; provider?: string; + isEnabledKnowledgeBase: boolean; }) => void; reportAssistantQuickPrompt: (params: { conversationId: string; promptTitle: string }) => void; reportAssistantSettingToggled: (params: { assistantStreamingEnabled?: boolean }) => void; @@ -67,3 +70,15 @@ export interface AssistantAvailability { // When true, user has `Edit` privilege for `AnonymizationFields` hasUpdateAIAssistantAnonymization: boolean; } + +export type GetAssistantMessages = (commentArgs: { + abortStream: () => void; + currentConversation?: Conversation; + isFetchingResponse: boolean; + refetchCurrentConversation: ({ isStreamRefetch }: { isStreamRefetch?: boolean }) => void; + regenerateMessage: (conversationId: string) => void; + showAnonymizedValues: boolean; + currentUserAvatar?: UserAvatar; + setIsStreaming: (isStreaming: boolean) => void; + systemPromptContent?: string; +}) => EuiCommentProps[]; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/data_anonymization_editor/read_only_context_viewer/index.test.tsx b/x-pack/packages/kbn-elastic-assistant/impl/data_anonymization_editor/read_only_context_viewer/index.test.tsx deleted file mode 100644 index 101b5058b5481..0000000000000 --- a/x-pack/packages/kbn-elastic-assistant/impl/data_anonymization_editor/read_only_context_viewer/index.test.tsx +++ /dev/null @@ -1,26 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { render, screen } from '@testing-library/react'; - -import { SYSTEM_PROMPT_CONTEXT_NON_I18N } from '../../content/prompts/system/translations'; -import { ReadOnlyContextViewer, Props } from '.'; - -const defaultProps: Props = { - rawData: 'this content is NOT anonymized', -}; - -describe('ReadOnlyContextViewer', () => { - it('renders the context with the correct formatting', () => { - render(); - - const contextBlock = screen.getByTestId('readOnlyContextViewer'); - - expect(contextBlock.textContent).toBe(SYSTEM_PROMPT_CONTEXT_NON_I18N(defaultProps.rawData)); - }); -}); diff --git a/x-pack/packages/kbn-elastic-assistant/impl/data_anonymization_editor/read_only_context_viewer/index.tsx b/x-pack/packages/kbn-elastic-assistant/impl/data_anonymization_editor/read_only_context_viewer/index.tsx index 0fd2da1942bc5..5c4cd6e06f1cc 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/data_anonymization_editor/read_only_context_viewer/index.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/data_anonymization_editor/read_only_context_viewer/index.tsx @@ -7,8 +7,7 @@ import { EuiCodeBlock } from '@elastic/eui'; import React from 'react'; - -import { SYSTEM_PROMPT_CONTEXT_NON_I18N } from '../../content/prompts/system/translations'; +import { SYSTEM_PROMPT_CONTEXT_NON_I18N } from '../../assistant/prompt/translations'; export interface Props { rawData: string; diff --git a/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/setup_knowledge_base_button.tsx b/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/setup_knowledge_base_button.tsx index f9566ff8e89bc..008597c1e8243 100644 --- a/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/setup_knowledge_base_button.tsx +++ b/x-pack/packages/kbn-elastic-assistant/impl/knowledge_base/setup_knowledge_base_button.tsx @@ -13,7 +13,7 @@ import { useAssistantContext } from '../..'; import { useSetupKnowledgeBase } from '../assistant/api/knowledge_base/use_setup_knowledge_base'; import { useKnowledgeBaseStatus } from '../assistant/api/knowledge_base/use_knowledge_base_status'; -const ESQL_RESOURCE = 'esql'; +export const ESQL_RESOURCE = 'esql'; /** * Self-contained component that renders a button to set up the knowledge base. diff --git a/x-pack/packages/kbn-elastic-assistant/index.ts b/x-pack/packages/kbn-elastic-assistant/index.ts index 7cd882cd633b8..0baff57648cc8 100644 --- a/x-pack/packages/kbn-elastic-assistant/index.ts +++ b/x-pack/packages/kbn-elastic-assistant/index.ts @@ -106,6 +106,8 @@ export type { Conversation, /** Message interface on the client */ ClientMessage, + /** Function type to return messages UI */ + GetAssistantMessages, } from './impl/assistant_context/types'; /** diff --git a/x-pack/packages/kbn-entities-schema/src/rest_spec/get.ts b/x-pack/packages/kbn-entities-schema/src/rest_spec/get.ts index 58111119601d9..2eadfdb039cae 100644 --- a/x-pack/packages/kbn-entities-schema/src/rest_spec/get.ts +++ b/x-pack/packages/kbn-entities-schema/src/rest_spec/get.ts @@ -6,8 +6,12 @@ */ import { z } from '@kbn/zod'; +import { BooleanFromString } from '@kbn/zod-helpers'; export const getEntityDefinitionQuerySchema = z.object({ page: z.optional(z.coerce.number()), perPage: z.optional(z.coerce.number()), + includeState: z.optional(BooleanFromString).default(false), }); + +export type GetEntityDefinitionQuerySchema = z.infer; diff --git a/x-pack/packages/kbn-entities-schema/src/schema/__snapshots__/common.test.ts.snap b/x-pack/packages/kbn-entities-schema/src/schema/__snapshots__/common.test.ts.snap index 4067947f7ddcf..9210d3b9991cf 100644 --- a/x-pack/packages/kbn-entities-schema/src/schema/__snapshots__/common.test.ts.snap +++ b/x-pack/packages/kbn-entities-schema/src/schema/__snapshots__/common.test.ts.snap @@ -67,7 +67,7 @@ Object { "limit" ], "code": "custom", - "message": "limit should be greater than 1" + "message": "limit for terms aggregation should be greater than 1" } ]], "success": false, @@ -77,8 +77,11 @@ Object { exports[`schemas metadataSchema should parse successfully with a source and desitination 1`] = ` Object { "data": Object { + "aggregation": Object { + "limit": 1000, + "type": "terms", + }, "destination": "hostName", - "limit": 1000, "source": "host.name", }, "success": true, @@ -88,8 +91,11 @@ Object { exports[`schemas metadataSchema should parse successfully with an valid string 1`] = ` Object { "data": Object { + "aggregation": Object { + "limit": 1000, + "type": "terms", + }, "destination": "host.name", - "limit": 1000, "source": "host.name", }, "success": true, @@ -99,8 +105,11 @@ Object { exports[`schemas metadataSchema should parse successfully with just a source 1`] = ` Object { "data": Object { + "aggregation": Object { + "limit": 1000, + "type": "terms", + }, "destination": "host.name", - "limit": 1000, "source": "host.name", }, "success": true, @@ -110,8 +119,11 @@ Object { exports[`schemas metadataSchema should parse successfully with valid object 1`] = ` Object { "data": Object { + "aggregation": Object { + "limit": 1000, + "type": "terms", + }, "destination": "hostName", - "limit": 1000, "source": "host.name", }, "success": true, diff --git a/x-pack/packages/kbn-entities-schema/src/schema/common.test.ts b/x-pack/packages/kbn-entities-schema/src/schema/common.test.ts index f59363866c37a..1a737ac3f4d9b 100644 --- a/x-pack/packages/kbn-entities-schema/src/schema/common.test.ts +++ b/x-pack/packages/kbn-entities-schema/src/schema/common.test.ts @@ -28,7 +28,7 @@ describe('schemas', () => { const result = metadataSchema.safeParse({ source: 'host.name', destination: 'host.name', - limit: 0, + aggregation: { type: 'terms', limit: 0 }, }); expect(result.success).toBeFalsy(); expect(result).toMatchSnapshot(); @@ -52,11 +52,41 @@ describe('schemas', () => { const result = metadataSchema.safeParse({ source: 'host.name', destination: 'hostName', - size: 1, }); expect(result.success).toBeTruthy(); expect(result).toMatchSnapshot(); }); + + it('should default to terms aggregation when none provided', () => { + const result = metadataSchema.safeParse({ + source: 'host.name', + destination: 'hostName', + }); + expect(result.success).toBeTruthy(); + expect(result.data).toEqual({ + source: 'host.name', + destination: 'hostName', + aggregation: { type: 'terms', limit: 1000 }, + }); + }); + + it('should parse supported aggregations', () => { + const result = metadataSchema.safeParse({ + source: 'host.name', + destination: 'hostName', + aggregation: { type: 'top_value', sort: { '@timestamp': 'desc' } }, + }); + expect(result.success).toBeTruthy(); + }); + + it('should reject unsupported aggregation', () => { + const result = metadataSchema.safeParse({ + source: 'host.name', + destination: 'hostName', + aggregation: { type: 'unknown_agg', limit: 10 }, + }); + expect(result.success).toBeFalsy(); + }); }); describe('durationSchema', () => { diff --git a/x-pack/packages/kbn-entities-schema/src/schema/common.ts b/x-pack/packages/kbn-entities-schema/src/schema/common.ts index 6e46a335dadde..aa54dbd16c9aa 100644 --- a/x-pack/packages/kbn-entities-schema/src/schema/common.ts +++ b/x-pack/packages/kbn-entities-schema/src/schema/common.ts @@ -84,24 +84,40 @@ export const keyMetricSchema = z.object({ export type KeyMetric = z.infer; +export const metadataAggregation = z.union([ + z.object({ type: z.literal('terms'), limit: z.number().default(1000) }), + z.object({ + type: z.literal('top_value'), + sort: z.record(z.string(), z.union([z.literal('asc'), z.literal('desc')])), + lookbackPeriod: z.optional(durationSchema), + }), +]); + export const metadataSchema = z .object({ source: z.string(), destination: z.optional(z.string()), - limit: z.optional(z.number().default(1000)), + aggregation: z + .optional(metadataAggregation) + .default({ type: z.literal('terms').value, limit: 1000 }), }) + .or( + z.string().transform((value) => ({ + source: value, + destination: value, + aggregation: { type: z.literal('terms').value, limit: 1000 }, + })) + ) .transform((metadata) => ({ ...metadata, destination: metadata.destination ?? metadata.source, - limit: metadata.limit ?? 1000, })) - .or(z.string().transform((value) => ({ source: value, destination: value, limit: 1000 }))) .superRefine((value, ctx) => { - if (value.limit < 1) { + if (value.aggregation.type === 'terms' && value.aggregation.limit < 1) { ctx.addIssue({ path: ['limit'], code: z.ZodIssueCode.custom, - message: 'limit should be greater than 1', + message: 'limit for terms aggregation should be greater than 1', }); } if (value.source.length === 0) { @@ -120,6 +136,8 @@ export const metadataSchema = z } }); +export type MetadataField = z.infer; + export const identityFieldsSchema = z .object({ field: z.string(), diff --git a/x-pack/packages/kbn-langchain/server/language_models/gemini_chat.ts b/x-pack/packages/kbn-langchain/server/language_models/gemini_chat.ts index a34f34ecce482..fb98232359340 100644 --- a/x-pack/packages/kbn-langchain/server/language_models/gemini_chat.ts +++ b/x-pack/packages/kbn-langchain/server/language_models/gemini_chat.ts @@ -16,6 +16,8 @@ import { POSSIBLE_ROLES, Part, TextPart, + FinishReason, + SafetyRating, } from '@google/generative-ai'; import { ActionsClient } from '@kbn/actions-plugin/server'; import { PublicMethodsOf } from '@kbn/utility-types'; @@ -46,6 +48,12 @@ export interface CustomChatModelInput extends BaseChatModelParams { maxTokens?: number; } +// not sure why these properties are not on the type, as they are on the data +interface SafetyReason extends SafetyRating { + blocked: boolean; + severity: string; +} + export class ActionsClientGeminiChatModel extends ChatGoogleGenerativeAI { #actionsClient: PublicMethodsOf; #connectorId: string; @@ -100,6 +108,14 @@ export class ActionsClientGeminiChatModel extends ChatGoogleGenerativeAI { ); } + if (actionResult.data.candidates && actionResult.data.candidates.length > 0) { + // handle bad finish reason + const errorMessage = convertResponseBadFinishReasonToErrorMsg(actionResult.data); + if (errorMessage != null) { + throw new Error(errorMessage); + } + } + return { response: { ...actionResult.data, @@ -239,6 +255,12 @@ export class ActionsClientGeminiChatModel extends ChatGoogleGenerativeAI { yield chunk; await runManager?.handleLLMNewToken(chunk.text ?? ''); } + } else if (parsedStreamChunk) { + // handle bad finish reason + const errorMessage = convertResponseBadFinishReasonToErrorMsg(parsedStreamChunk); + if (errorMessage != null) { + throw new Error(errorMessage); + } } } } @@ -460,3 +482,40 @@ function messageContentMedia(content: Record): InlineDataPart { } throw new Error('Invalid media content'); } + +const badFinishReasons = [FinishReason.RECITATION, FinishReason.SAFETY]; +function hadBadFinishReason(candidate: { finishReason?: FinishReason }) { + return !!candidate.finishReason && badFinishReasons.includes(candidate.finishReason); +} + +export function convertResponseBadFinishReasonToErrorMsg( + response: EnhancedGenerateContentResponse +): string | null { + if (response.candidates && response.candidates.length > 0) { + const candidate = response.candidates[0]; + if (hadBadFinishReason(candidate)) { + if ( + candidate.finishReason === FinishReason.SAFETY && + candidate.safetyRatings && + (candidate.safetyRatings?.length ?? 0) > 0 + ) { + const safetyReasons = getSafetyReasons(candidate.safetyRatings as SafetyReason[]); + return `ActionsClientGeminiChatModel: action result status is error. Candidate was blocked due to ${candidate.finishReason} - ${safetyReasons}`; + } else { + return `ActionsClientGeminiChatModel: action result status is error. Candidate was blocked due to ${candidate.finishReason}`; + } + } + } + return null; +} + +const getSafetyReasons = (safetyRatings: SafetyReason[]) => { + const reasons = safetyRatings.filter((t: SafetyReason) => t.blocked); + return reasons.reduce( + (acc: string, t: SafetyReason, i: number) => + `${acc.length ? `${acc} ` : ''}${t.category}: ${t.severity}${ + i < reasons.length - 1 ? ',' : '' + }`, + '' + ); +}; diff --git a/x-pack/packages/observability/observability_utils/es/queries/exclude_frozen_query.ts b/x-pack/packages/observability/observability_utils/es/queries/exclude_frozen_query.ts new file mode 100644 index 0000000000000..f348d925c41ca --- /dev/null +++ b/x-pack/packages/observability/observability_utils/es/queries/exclude_frozen_query.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { estypes } from '@elastic/elasticsearch'; + +export function excludeFrozenQuery(): estypes.QueryDslQueryContainer[] { + return [ + { + bool: { + must_not: [ + { + term: { + _tier: 'data_frozen', + }, + }, + ], + }, + }, + ]; +} diff --git a/x-pack/packages/security-solution/features/src/assistant/kibana_features.ts b/x-pack/packages/security-solution/features/src/assistant/kibana_features.ts index 922a54d2dd0eb..e7bafd5595316 100644 --- a/x-pack/packages/security-solution/features/src/assistant/kibana_features.ts +++ b/x-pack/packages/security-solution/features/src/assistant/kibana_features.ts @@ -8,6 +8,7 @@ import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { type BaseKibanaFeatureConfig } from '../types'; import { APP_ID, ASSISTANT_FEATURE_ID } from '../constants'; @@ -21,6 +22,7 @@ export const getAssistantBaseKibanaFeature = (): BaseKibanaFeatureConfig => ({ ), order: 1100, category: DEFAULT_APP_CATEGORIES.security, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [ASSISTANT_FEATURE_ID, 'kibana'], catalogue: [APP_ID], minimumLicense: 'enterprise', diff --git a/x-pack/packages/security-solution/features/src/attack_discovery/kibana_features.ts b/x-pack/packages/security-solution/features/src/attack_discovery/kibana_features.ts index 130ee907b8e83..26f81b65213e0 100644 --- a/x-pack/packages/security-solution/features/src/attack_discovery/kibana_features.ts +++ b/x-pack/packages/security-solution/features/src/attack_discovery/kibana_features.ts @@ -7,6 +7,7 @@ import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common'; import { i18n } from '@kbn/i18n'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { APP_ID, ATTACK_DISCOVERY_FEATURE_ID } from '../constants'; import { type BaseKibanaFeatureConfig } from '../types'; @@ -21,6 +22,7 @@ export const getAttackDiscoveryBaseKibanaFeature = (): BaseKibanaFeatureConfig = ), order: 1100, category: DEFAULT_APP_CATEGORIES.security, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [ATTACK_DISCOVERY_FEATURE_ID, 'kibana'], catalogue: [APP_ID], minimumLicense: 'enterprise', diff --git a/x-pack/packages/security-solution/features/src/cases/kibana_features.ts b/x-pack/packages/security-solution/features/src/cases/kibana_features.ts index a8da25bb6e40b..dd49a60328288 100644 --- a/x-pack/packages/security-solution/features/src/cases/kibana_features.ts +++ b/x-pack/packages/security-solution/features/src/cases/kibana_features.ts @@ -8,6 +8,7 @@ import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import type { BaseKibanaFeatureConfig } from '../types'; import { APP_ID, CASES_FEATURE_ID } from '../constants'; import type { CasesFeatureParams } from './types'; @@ -27,6 +28,7 @@ export const getCasesBaseKibanaFeature = ({ ), order: 1100, category: DEFAULT_APP_CATEGORIES.security, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [CASES_FEATURE_ID, 'kibana'], catalogue: [APP_ID], cases: [APP_ID], diff --git a/x-pack/packages/security-solution/features/src/security/kibana_features.ts b/x-pack/packages/security-solution/features/src/security/kibana_features.ts index 5ba6bf68b0e52..2fb6b11988797 100644 --- a/x-pack/packages/security-solution/features/src/security/kibana_features.ts +++ b/x-pack/packages/security-solution/features/src/security/kibana_features.ts @@ -6,6 +6,7 @@ */ import { i18n } from '@kbn/i18n'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common'; import { @@ -52,6 +53,7 @@ export const getSecurityBaseKibanaFeature = ({ ), order: 1100, category: DEFAULT_APP_CATEGORIES.security, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [APP_ID, CLOUD_POSTURE_APP_ID, CLOUD_DEFEND_APP_ID, 'kibana'], catalogue: [APP_ID], management: { diff --git a/x-pack/packages/security-solution/navigation/src/constants.ts b/x-pack/packages/security-solution/navigation/src/constants.ts index e8d1888b08e5c..bb433e2f9a147 100644 --- a/x-pack/packages/security-solution/navigation/src/constants.ts +++ b/x-pack/packages/security-solution/navigation/src/constants.ts @@ -45,6 +45,7 @@ export enum ExternalPageName { mlAnomalyDetection = 'ml:anomalyDetection', mlAnomalyExplorer = 'ml:anomalyExplorer', mlSingleMetricViewer = 'ml:singleMetricViewer', + mlSuppliedConfigurations = 'ml:suppliedConfigurations', mlSettings = 'ml:settings', mlDataFrameAnalytics = 'ml:dataFrameAnalytics', mlResultExplorer = 'ml:resultExplorer', diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_create_request.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_create_request.yaml deleted file mode 100644 index 2acc21bfbfac7..0000000000000 --- a/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_create_request.yaml +++ /dev/null @@ -1,23 +0,0 @@ -title: Create Amazon Bedrock connector request -description: The Amazon Bedrock connector uses axios to send a POST request to Amazon Bedrock. -type: object -required: - - config - - connector_type_id - - name - - secrets -properties: - config: - $ref: 'config_properties_bedrock.yaml' - connector_type_id: - type: string - description: The type of connector. - enum: - - .bedrock - example: .bedrock - name: - type: string - description: The display name for the connector. - example: my-connector - secrets: - $ref: 'secrets_properties_bedrock.yaml' diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_response.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_response.yaml deleted file mode 100644 index 0d3f308744aa3..0000000000000 --- a/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_response.yaml +++ /dev/null @@ -1,31 +0,0 @@ -title: Connector response properties for an Amazon Bedrock connector -type: object -required: - - config - - connector_type_id - - id - - is_deprecated - - is_preconfigured - - name -properties: - config: - $ref: 'config_properties_bedrock.yaml' - connector_type_id: - type: string - description: The type of connector. - enum: - - .bedrock - id: - type: string - description: The identifier for the connector. - is_deprecated: - $ref: 'is_deprecated.yaml' - is_missing_secrets: - $ref: 'is_missing_secrets.yaml' - is_preconfigured: - $ref: 'is_preconfigured.yaml' - is_system_action: - $ref: 'is_system_action.yaml' - name: - type: string - description: The display name for the connector. diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_update_request.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_update_request.yaml deleted file mode 100644 index dfa479870aab5..0000000000000 --- a/x-pack/plugins/actions/docs/openapi/components/schemas/bedrock_update_request.yaml +++ /dev/null @@ -1,13 +0,0 @@ -title: Update Amazon Bedrock connector request -type: object -required: - - config - - name -properties: - config: - $ref: 'config_properties_bedrock.yaml' - name: - type: string - description: The display name for the connector. - secrets: - $ref: 'secrets_properties_bedrock.yaml' diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_config.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_config.yaml new file mode 100644 index 0000000000000..654baa9f71e95 --- /dev/null +++ b/x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_config.yaml @@ -0,0 +1,11 @@ +title: Connector request config properties for a Crowdstrike connector +required: + - url +description: Defines config properties for connectors when type is `.crowdstrike`. +type: object +properties: + url: + description: > + The CrowdStrike tenant URL. + If you are using the `xpack.actions.allowedHosts` setting, add the hostname to the allowed hosts. + type: string \ No newline at end of file diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_secrets.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_secrets.yaml new file mode 100644 index 0000000000000..71bb7478b7747 --- /dev/null +++ b/x-pack/plugins/actions/docs/openapi/components/schemas/crowdstrike_secrets.yaml @@ -0,0 +1,13 @@ +title: Connector secrets properties for a Crowdstrike connector +description: Defines secrets for connectors when type is `.crowdstrike`. +type: object +required: + - clientId + - clientSecret +properties: + clientId: + description: The CrowdStrike API client identifier. + type: string + clientSecret: + description: The CrowdStrike API client secret to authenticate the `clientId`. + type: string \ No newline at end of file diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/run_createalert.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/run_createalert.yaml index e739a9ed6c91d..194d9d979cdd8 100644 --- a/x-pack/plugins/actions/docs/openapi/components/schemas/run_createalert.yaml +++ b/x-pack/plugins/actions/docs/openapi/components/schemas/run_createalert.yaml @@ -3,7 +3,7 @@ type: object required: - subAction - subActionParams -description: The `createAlert` subaction for Opsgenie connectors. +description: The `createAlert` subaction for Opsgenie and TheHive connectors. properties: subAction: type: string @@ -12,12 +12,10 @@ properties: - createAlert subActionParams: type: object - required: - - message properties: actions: type: array - description: The custom actions available to the alert. + description: The custom actions available to the alert in Opsgenie connectors. items: type: string alias: @@ -28,21 +26,21 @@ properties: description: A description that provides detailed information about the alert. details: type: object - description: The custom properties of the alert. + description: The custom properties of the alert in Opsgenie connectors. additionalProperties: true example: {"key1":"value1","key2":"value2"} entity: type: string - description: The domain of the alert. For example, the application or server name. + description: The domain of the alert in Opsgenie connectors. For example, the application or server name. message: type: string - description: The alert message. + description: The alert message in Opsgenie connectors. note: type: string - description: Additional information for the alert. + description: Additional information for the alert in Opsgenie connectors. priority: type: string - description: The priority level for the alert. + description: The priority level for the alert in Opsgenie connectors. enum: - P1 - P2 @@ -52,7 +50,7 @@ properties: responders: type: array description: > - The entities to receive notifications about the alert. + The entities to receive notifications about the alert in Opsgenie connectors. If `type` is `user`, either `id` or `username` is required. If `type` is `team`, either `id` or `name` is required. items: @@ -75,14 +73,39 @@ properties: username: type: string description: A valid email address for the user. + severity: + type: integer + minimum: 1 + maximum: 4 + description: > + The severity of the incident for TheHive connectors. + The value ranges from 1 (low) to 4 (critical) with a default value of 2 (medium). source: type: string - description: The display name for the source of the alert. + description: The display name for the source of the alert in Opsgenie and TheHive connectors. + sourceRef: + type: string + description: A source reference for the alert in TheHive connectors. tags: type: array - description: The tags for the alert. + description: The tags for the alert in Opsgenie and TheHive connectors. items: type: string + title: + type: string + description: > + A title for the incident for TheHive connectors. + It is used for searching the contents of the knowledge base. + tlp: + type: integer + minimum: 0 + maximum: 4 + default: 2 + description: > + The traffic light protocol designation for the incident in TheHive connectors. Valid values include: 0 (clear), 1 (green), 2 (amber), 3 (amber and strict), and 4 (red). + type: + type: string + description: The type of alert in TheHive connectors. user: type: string description: The display name for the owner. diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/run_pushtoservice.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/run_pushtoservice.yaml index d81c0e61059be..210bf1dcf8570 100644 --- a/x-pack/plugins/actions/docs/openapi/components/schemas/run_pushtoservice.yaml +++ b/x-pack/plugins/actions/docs/openapi/components/schemas/run_pushtoservice.yaml @@ -3,7 +3,7 @@ type: object required: - subAction - subActionParams -description: The `pushToService` subaction for Jira, ServiceNow ITSM, ServiceNow SecOps, Swimlane, and Webhook - Case Management connectors. +description: The `pushToService` subaction for Jira, ServiceNow ITSM, ServiceNow SecOps, Swimlane, TheHive, and Webhook - Case Management connectors. properties: subAction: type: string @@ -16,7 +16,7 @@ properties: properties: comments: type: array - description: Additional information that is sent to Jira, ServiceNow ITSM, ServiceNow SecOps, or Swimlane. + description: Additional information that is sent to Jira, ServiceNow ITSM, ServiceNow SecOps, Swimlane, or TheHive. items: type: object properties: @@ -28,7 +28,7 @@ properties: description: A unique identifier for the comment. incident: type: object - description: Information necessary to create or update a Jira, ServiceNow ITSM, ServiveNow SecOps, or Swimlane incident. + description: Information necessary to create or update a Jira, ServiceNow ITSM, ServiveNow SecOps, Swimlane, or TheHive incident. properties: alertId: type: string @@ -52,7 +52,7 @@ properties: NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures that ServiceNow creates a separate incident record for every generated alert that uses a unique alert ID. If the rule generates multiple alerts that use the same alert IDs, ServiceNow creates and continually updates a single incident record for the alert. description: type: string - description: The description of the incident for Jira, ServiceNow ITSM, ServiceNow SecOps, Swimlane, and Webhook - Case Management connectors. + description: The description of the incident for Jira, ServiceNow ITSM, ServiceNow SecOps, Swimlane, TheHive, and Webhook - Case Management connectors. dest_ip: description: > A list of destination IP addresses related to the security incident for ServiceNow SecOps connectors. The IPs are added as observables to the security incident. @@ -113,8 +113,10 @@ properties: type: string description: The rule name for Swimlane connectors. severity: - type: string - description: The severity of the incident for ServiceNow ITSM and Swimlane connectors. + type: integer + description: > + The severity of the incident for ServiceNow ITSM, Swimlane, and TheHive connectors. + In TheHive connectors, the severity value ranges from 1 (low) to 4 (critical) with a default value of 2 (medium). short_description: type: string description: > @@ -139,12 +141,19 @@ properties: type: array items: type: string - description: A list of tags for Webhook - Case Management connectors. + description: A list of tags for TheHive and Webhook - Case Management connectors. title: type: string description: > - A title for the incident for Jira and Webhook - Case Management connectors. + A title for the incident for Jira, TheHive, and Webhook - Case Management connectors. It is used for searching the contents of the knowledge base. + tlp: + type: integer + minimum: 0 + maximum: 4 + default: 2 + description: > + The traffic light protocol designation for the incident in TheHive connectors. Valid values include: 0 (clear), 1 (green), 2 (amber), 3 (amber and strict), and 4 (red). urgency: type: string description: The urgency of the incident for ServiceNow ITSM connectors. diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/thehive_config.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/thehive_config.yaml new file mode 100644 index 0000000000000..d317e3af92f2a --- /dev/null +++ b/x-pack/plugins/actions/docs/openapi/components/schemas/thehive_config.yaml @@ -0,0 +1,16 @@ +title: Connector request properties for a TheHive connector +description: Defines configuration properties for connectors when type is `.thehive`. +type: object +required: + - url +properties: + organisation: + type: string + description: > + The organisation in TheHive that will contain the alerts or cases. + By default, the connector uses the default organisation of the user account that created the API key. + url: + type: string + description: > + The instance URL in TheHive. + If you are using the `xpack.actions.allowedHosts` setting, add the hostname to the allowed hosts. \ No newline at end of file diff --git a/x-pack/plugins/actions/docs/openapi/components/schemas/thehive_secrets.yaml b/x-pack/plugins/actions/docs/openapi/components/schemas/thehive_secrets.yaml new file mode 100644 index 0000000000000..595af60710b12 --- /dev/null +++ b/x-pack/plugins/actions/docs/openapi/components/schemas/thehive_secrets.yaml @@ -0,0 +1,9 @@ +title: Connector secrets properties for a TheHive connector +description: Defines secrets for connectors when type is `.thehive`. +required: + - apiKey +type: object +properties: + apiKey: + type: string + description: The API key for authentication in TheHive. diff --git a/x-pack/plugins/actions/server/feature.ts b/x-pack/plugins/actions/server/feature.ts index 9fc48b705d25b..d4a9d3a3537bf 100644 --- a/x-pack/plugins/actions/server/feature.ts +++ b/x-pack/plugins/actions/server/feature.ts @@ -7,6 +7,7 @@ import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common'; import { i18n } from '@kbn/i18n'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { ACTION_SAVED_OBJECT_TYPE, ACTION_TASK_PARAMS_SAVED_OBJECT_TYPE, @@ -28,6 +29,7 @@ export const ACTIONS_FEATURE = { defaultMessage: 'Actions and Connectors', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [], order: FEATURE_ORDER, management: { diff --git a/x-pack/plugins/actions/server/lib/action_executor.ts b/x-pack/plugins/actions/server/lib/action_executor.ts index c302b0da3e886..4a0b51954ba1d 100644 --- a/x-pack/plugins/actions/server/lib/action_executor.ts +++ b/x-pack/plugins/actions/server/lib/action_executor.ts @@ -605,15 +605,15 @@ export class ActionExecutor { .then((tokenTracking) => { if (tokenTracking != null) { set(event, 'kibana.action.execution.gen_ai.usage', { - total_tokens: tokenTracking.total_tokens, - prompt_tokens: tokenTracking.prompt_tokens, - completion_tokens: tokenTracking.completion_tokens, + total_tokens: tokenTracking.total_tokens ?? 0, + prompt_tokens: tokenTracking.prompt_tokens ?? 0, + completion_tokens: tokenTracking.completion_tokens ?? 0, }); analyticsService.reportEvent(GEN_AI_TOKEN_COUNT_EVENT.eventType, { actionTypeId, - total_tokens: tokenTracking.total_tokens, - prompt_tokens: tokenTracking.prompt_tokens, - completion_tokens: tokenTracking.completion_tokens, + total_tokens: tokenTracking.total_tokens ?? 0, + prompt_tokens: tokenTracking.prompt_tokens ?? 0, + completion_tokens: tokenTracking.completion_tokens ?? 0, ...(actionTypeId === '.gen-ai' && config?.apiProvider != null ? { provider: config?.apiProvider } : {}), diff --git a/x-pack/plugins/actions/server/lib/get_token_count_from_openai_stream.ts b/x-pack/plugins/actions/server/lib/get_token_count_from_openai_stream.ts index 0aa5fca22d0ff..790a59fe6097a 100644 --- a/x-pack/plugins/actions/server/lib/get_token_count_from_openai_stream.ts +++ b/x-pack/plugins/actions/server/lib/get_token_count_from_openai_stream.ts @@ -90,7 +90,9 @@ export async function getTokenCountFromOpenAIStream({ delta: { content?: string; function_call?: { name?: string; arguments: string } }; }>; } => { - return 'object' in line && line.object === 'chat.completion.chunk'; + return ( + 'object' in line && line.object === 'chat.completion.chunk' && line.choices.length > 0 + ); } ) .reduce( diff --git a/x-pack/plugins/aiops/public/components/change_point_detection/search_bar.tsx b/x-pack/plugins/aiops/public/components/change_point_detection/search_bar.tsx index 01bbe6ea3e367..c8cb046561409 100644 --- a/x-pack/plugins/aiops/public/components/change_point_detection/search_bar.tsx +++ b/x-pack/plugins/aiops/public/components/change_point_detection/search_bar.tsx @@ -46,9 +46,9 @@ export const SearchBarWrapper: FC = ({ const [error, setError] = useState(); - const onQuerySubmit: SearchBarOwnProps['onQuerySubmit'] = useCallback( + const onQuerySubmit = useCallback>( (payload, isUpdate) => { - if (payload.query.language === SEARCH_QUERY_LANGUAGE.KUERY) { + if (payload.query?.language === SEARCH_QUERY_LANGUAGE.KUERY) { try { // Validates the query fromKueryExpression(payload.query.query); diff --git a/x-pack/plugins/aiops/public/components/page_header/page_header.tsx b/x-pack/plugins/aiops/public/components/page_header/page_header.tsx index 09f8a2bf84981..9895fe082fcc1 100644 --- a/x-pack/plugins/aiops/public/components/page_header/page_header.tsx +++ b/x-pack/plugins/aiops/public/components/page_header/page_header.tsx @@ -51,7 +51,7 @@ export const PageHeader: FC = () => { autoRefreshSelector: true, }); - const updateTimeState: FullTimeRangeSelectorProps['callback'] = useCallback( + const updateTimeState = useCallback>( (update) => { setGlobalState({ time: { diff --git a/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.test.ts b/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.test.ts index 64fa85688e2ee..e287712104949 100644 --- a/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.test.ts +++ b/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.test.ts @@ -75,6 +75,9 @@ describe('wrapScopedClusterClient', () => { expect(loggingSystemMock.collect(logger).debug[0][0]).toEqual( `executing query for rule .test-rule-type:abcdefg in space my-space - {\"body\":{\"query\":{\"bool\":{\"filter\":{\"range\":{\"@timestamp\":{\"gte\":0}}}}}}} - with options {} and 5000ms requestTimeout` ); + expect(loggingSystemMock.collect(logger).trace[0][0]).toEqual( + `result of executing query for rule .test-rule-type:abcdefg in space my-space: {\"body\":{},\"statusCode\":200,\"headers\":{\"x-elastic-product\":\"Elasticsearch\"},\"warnings\":[],\"meta\":{}}` + ); expect(logger.warn).not.toHaveBeenCalled(); }); @@ -101,6 +104,9 @@ describe('wrapScopedClusterClient', () => { expect(loggingSystemMock.collect(logger).debug[0][0]).toEqual( `executing query for rule .test-rule-type:abcdefg in space my-space - {\"body\":{\"query\":{\"bool\":{\"filter\":{\"range\":{\"@timestamp\":{\"gte\":0}}}}}}} - with options {} and 5000ms requestTimeout` ); + expect(loggingSystemMock.collect(logger).trace[0][0]).toEqual( + `result of executing query for rule .test-rule-type:abcdefg in space my-space: {\"body\":{},\"statusCode\":200,\"headers\":{\"x-elastic-product\":\"Elasticsearch\"},\"warnings\":[],\"meta\":{}}` + ); expect(logger.warn).not.toHaveBeenCalled(); }); @@ -132,6 +138,9 @@ describe('wrapScopedClusterClient', () => { expect(loggingSystemMock.collect(logger).debug[0][0]).toEqual( `executing query for rule .test-rule-type:abcdefg in space my-space - {\"body\":{\"query\":{\"bool\":{\"filter\":{\"range\":{\"@timestamp\":{\"gte\":0}}}}}}} - with options {\"ignore\":[404],\"requestTimeout\":10000} and 5000ms requestTimeout` ); + expect(loggingSystemMock.collect(logger).trace[0][0]).toEqual( + `result of executing query for rule .test-rule-type:abcdefg in space my-space: {\"body\":{},\"statusCode\":200,\"headers\":{\"x-elastic-product\":\"Elasticsearch\"},\"warnings\":[],\"meta\":{}}` + ); expect(logger.warn).not.toHaveBeenCalled(); }); @@ -154,6 +163,7 @@ describe('wrapScopedClusterClient', () => { expect(loggingSystemMock.collect(logger).debug[0][0]).toEqual( `executing query for rule .test-rule-type:abcdefg in space my-space - {\"body\":{\"query\":{\"bool\":{\"filter\":{\"range\":{\"@timestamp\":{\"gte\":0}}}}}}} - with options {}` ); + expect(logger.trace).not.toHaveBeenCalled(); expect(logger.warn).toHaveBeenCalledWith( `executing query for rule .test-rule-type:abcdefg in space my-space - {\"body\":{\"query\":{\"bool\":{\"filter\":{\"range\":{\"@timestamp\":{\"gte\":0}}}}}}} - with options {}` ); @@ -187,6 +197,9 @@ describe('wrapScopedClusterClient', () => { expect(loggingSystemMock.collect(logger).debug[0][0]).toEqual( `executing query for rule .test-rule-type:abcdefg in space my-space - {\"body\":{\"query\":{\"bool\":{\"filter\":{\"range\":{\"@timestamp\":{\"gte\":0}}}}}}} - with options {}` ); + expect(loggingSystemMock.collect(logger).trace[0][0]).toEqual( + `result of executing query for rule .test-rule-type:abcdefg in space my-space: {}` + ); expect(logger.warn).not.toHaveBeenCalled(); }); @@ -219,6 +232,9 @@ describe('wrapScopedClusterClient', () => { expect(loggingSystemMock.collect(logger).debug[0][0]).toEqual( `executing query for rule .test-rule-type:abcdefg in space my-space - {\"body\":{\"query\":{\"bool\":{\"filter\":{\"range\":{\"@timestamp\":{\"gte\":0}}}}}}} - with options {}` ); + expect(loggingSystemMock.collect(logger).trace[0][0]).toEqual( + `result of executing query for rule .test-rule-type:abcdefg in space my-space: {\"took\":333}` + ); expect(logger.warn).not.toHaveBeenCalled(); }); @@ -244,6 +260,7 @@ describe('wrapScopedClusterClient', () => { expect(loggingSystemMock.collect(logger).debug[0][0]).toEqual( `executing query for rule .test-rule-type:abcdefg in space my-space - {\"body\":{\"query\":{\"bool\":{\"filter\":{\"range\":{\"@timestamp\":{\"gte\":0}}}}}}} - with options {}` ); + expect(logger.trace).not.toHaveBeenCalled(); expect(logger.warn).not.toHaveBeenCalled(); }); }); diff --git a/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.ts b/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.ts index dc4c016eea7f4..3bf87b3653c5a 100644 --- a/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.ts +++ b/x-pack/plugins/alerting/server/lib/wrap_scoped_cluster_client.ts @@ -359,17 +359,22 @@ function getWrappedSearchFn(opts: WrapEsClientOpts) { const end = Date.now(); const durationMs = end - start; - let took = 0; + let body: SearchResponse; if (searchOptions.meta) { // when meta: true, response is TransportResult, unknown> - took = (result as TransportResult, unknown>).body - .took; + body = (result as TransportResult, unknown>).body; } else { // when meta: false, response is SearchResponse - took = (result as SearchResponse).took; + body = result as SearchResponse; } - opts.logMetricsFn({ esSearchDuration: took ?? 0, totalSearchDuration: durationMs }); + opts.logMetricsFn({ esSearchDuration: body?.took ?? 0, totalSearchDuration: durationMs }); + opts.logger.trace( + () => + `result of executing query for rule ${opts.rule.alertTypeId}:${opts.rule.id} in space ${ + opts.rule.spaceId + }: ${JSON.stringify(body)}` + ); return result; } catch (e) { if (opts.abortController.signal.aborted) { diff --git a/x-pack/plugins/alerting/server/maintenance_window_feature.ts b/x-pack/plugins/alerting/server/maintenance_window_feature.ts index a0bd117d47721..1ae24c1c45f09 100644 --- a/x-pack/plugins/alerting/server/maintenance_window_feature.ts +++ b/x-pack/plugins/alerting/server/maintenance_window_feature.ts @@ -8,6 +8,7 @@ import { i18n } from '@kbn/i18n'; import { KibanaFeatureConfig } from '@kbn/features-plugin/common'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { MAINTENANCE_WINDOW_FEATURE_ID, MAINTENANCE_WINDOW_API_PRIVILEGES, @@ -20,6 +21,7 @@ export const maintenanceWindowFeature: KibanaFeatureConfig = { defaultMessage: 'Maintenance Windows', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [], management: { insightsAndAlerting: ['maintenanceWindows'], diff --git a/x-pack/plugins/alerting/server/rules_settings_feature.test.ts b/x-pack/plugins/alerting/server/rules_settings_feature.test.ts index cdf4f034bc528..9b5143cc8b76e 100644 --- a/x-pack/plugins/alerting/server/rules_settings_feature.test.ts +++ b/x-pack/plugins/alerting/server/rules_settings_feature.test.ts @@ -16,6 +16,7 @@ test('returns rule settings feature with query delay subfeature if serverless', label: 'Management', order: 5000, }, + scope: ['spaces', 'security'], id: 'rulesSettings', management: { insightsAndAlerting: ['triggersActions'], @@ -125,6 +126,7 @@ test('returns rule settings feature without query delay subfeature if not server label: 'Management', order: 5000, }, + scope: ['spaces', 'security'], id: 'rulesSettings', management: { insightsAndAlerting: ['triggersActions'], diff --git a/x-pack/plugins/alerting/server/rules_settings_feature.ts b/x-pack/plugins/alerting/server/rules_settings_feature.ts index ed346121ecde8..5087ae3eaf03a 100644 --- a/x-pack/plugins/alerting/server/rules_settings_feature.ts +++ b/x-pack/plugins/alerting/server/rules_settings_feature.ts @@ -8,6 +8,7 @@ import { i18n } from '@kbn/i18n'; import { KibanaFeatureConfig } from '@kbn/features-plugin/common'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { RULES_SETTINGS_FEATURE_ID, READ_FLAPPING_SETTINGS_SUB_FEATURE_ID, @@ -25,6 +26,7 @@ export function getRulesSettingsFeature(isServerless: boolean): KibanaFeatureCon defaultMessage: 'Rules Settings', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [], management: { insightsAndAlerting: ['triggersActions'], diff --git a/x-pack/plugins/canvas/server/feature.test.ts b/x-pack/plugins/canvas/server/feature.test.ts index b4a891af13c6f..c145140f8d944 100644 --- a/x-pack/plugins/canvas/server/feature.test.ts +++ b/x-pack/plugins/canvas/server/feature.test.ts @@ -78,6 +78,10 @@ it('Provides a feature declaration ', () => { ], }, }, + "scope": Array [ + "spaces", + "security", + ], "subFeatures": Array [], } `); @@ -152,6 +156,10 @@ it(`Calls on Reporting whether to include Generate PDF as a sub-feature`, () => ], }, }, + "scope": Array [ + "spaces", + "security", + ], "subFeatures": Array [ Object { "name": "Reporting", diff --git a/x-pack/plugins/canvas/server/feature.ts b/x-pack/plugins/canvas/server/feature.ts index 01ae5249629e9..2406ac133c721 100644 --- a/x-pack/plugins/canvas/server/feature.ts +++ b/x-pack/plugins/canvas/server/feature.ts @@ -9,6 +9,7 @@ import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; import { KibanaFeatureConfig } from '@kbn/features-plugin/common'; import { ReportingStart } from '@kbn/reporting-plugin/server/types'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; /* * Register Canvas as a Kibana feature, @@ -22,6 +23,7 @@ export function getCanvasFeature(plugins: { reporting?: ReportingStart }): Kiban name: 'Canvas', order: 300, category: DEFAULT_APP_CATEGORIES.kibana, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['canvas', 'kibana'], management: { ...(includeReporting ? { insightsAndAlerting: ['reporting'] } : {}), diff --git a/x-pack/plugins/cases/public/components/all_cases/multi_select_filter.test.tsx b/x-pack/plugins/cases/public/components/all_cases/multi_select_filter.test.tsx index b2db11fee9e1e..efc315110c413 100644 --- a/x-pack/plugins/cases/public/components/all_cases/multi_select_filter.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/multi_select_filter.test.tsx @@ -10,7 +10,8 @@ import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { waitForEuiPopoverOpen } from '@elastic/eui/lib/test/rtl'; -describe('multi select filter', () => { +// Failing: See https://github.com/elastic/kibana/issues/183663 +describe.skip('multi select filter', () => { it('should render the amount of options available', async () => { const onChange = jest.fn(); const props = { diff --git a/x-pack/plugins/cases/public/components/case_form_fields/custom_fields.tsx b/x-pack/plugins/cases/public/components/case_form_fields/custom_fields.tsx index f2b39b352a964..da20cd4fce397 100644 --- a/x-pack/plugins/cases/public/components/case_form_fields/custom_fields.tsx +++ b/x-pack/plugins/cases/public/components/case_form_fields/custom_fields.tsx @@ -58,7 +58,7 @@ const CustomFieldsComponent: React.FC = ({ -

    {i18n.ADDITIONAL_FIELDS}

    +

    {i18n.CUSTOM_FIELDS}

    {customFieldsComponents} diff --git a/x-pack/plugins/cases/public/components/case_form_fields/translations.ts b/x-pack/plugins/cases/public/components/case_form_fields/translations.ts index b8359958025b3..b7a83c1925119 100644 --- a/x-pack/plugins/cases/public/components/case_form_fields/translations.ts +++ b/x-pack/plugins/cases/public/components/case_form_fields/translations.ts @@ -9,6 +9,6 @@ import { i18n } from '@kbn/i18n'; export * from '../../common/translations'; -export const ADDITIONAL_FIELDS = i18n.translate('xpack.cases.additionalFields', { - defaultMessage: 'Additional fields', +export const CUSTOM_FIELDS = i18n.translate('xpack.cases.customFields', { + defaultMessage: 'Custom fields', }); diff --git a/x-pack/plugins/cases/public/components/connectors/thehive/case_fields.test.tsx b/x-pack/plugins/cases/public/components/connectors/thehive/case_fields.test.tsx index 2b3ce432365ed..c4234412a3579 100644 --- a/x-pack/plugins/cases/public/components/connectors/thehive/case_fields.test.tsx +++ b/x-pack/plugins/cases/public/components/connectors/thehive/case_fields.test.tsx @@ -15,8 +15,7 @@ import type { AppMockRenderer } from '../../../common/mock'; import { createAppMockRenderer } from '../../../common/mock'; import { TheHiveTLP } from './types'; -// Failing: See https://github.com/elastic/kibana/issues/192475 -describe.skip('TheHive Cases Fields', () => { +describe('TheHive Cases Fields', () => { const fields = { TLP: 1, }; @@ -45,7 +44,7 @@ describe.skip('TheHive Cases Fields', () => { ); - userEvent.selectOptions(screen.getByTestId('tlp-field'), '4'); + await userEvent.selectOptions(await screen.findByTestId('tlp-field'), '4'); expect(await screen.findByTestId('tlp-field')).toHaveValue(TheHiveTLP.RED.toString()); }); }); diff --git a/x-pack/plugins/cases/public/components/links/index.test.tsx b/x-pack/plugins/cases/public/components/links/index.test.tsx index 931cb6c06dbd7..365502f5c02c1 100644 --- a/x-pack/plugins/cases/public/components/links/index.test.tsx +++ b/x-pack/plugins/cases/public/components/links/index.test.tsx @@ -6,11 +6,8 @@ */ import React from 'react'; -import type { ComponentType, ReactWrapper } from 'enzyme'; -import { mount } from 'enzyme'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { EuiText } from '@elastic/eui'; import type { ConfigureCaseButtonProps, CaseDetailsLinkProps } from '.'; import { ConfigureCaseButton, CaseDetailsLink } from '.'; @@ -20,7 +17,6 @@ import { useCaseViewNavigation } from '../../common/navigation/hooks'; jest.mock('../../common/navigation/hooks'); describe('Configuration button', () => { - let wrapper: ReactWrapper; const props: ConfigureCaseButtonProps = { label: 'My label', msgTooltip: <>, @@ -28,81 +24,46 @@ describe('Configuration button', () => { titleTooltip: '', }; - beforeAll(() => { - wrapper = mount(, { - wrappingComponent: TestProviders as ComponentType>, - }); - }); - - test('it renders without the tooltip', () => { - expect(wrapper.find('[data-test-subj="configure-case-button"]').first().exists()).toBe(true); + it('renders without the tooltip', async () => { + render( + + + + ); - expect(wrapper.find('[data-test-subj="configure-case-tooltip"]').first().exists()).toBe(false); - }); + const configureButton = await screen.findByTestId('configure-case-button'); - test('it pass the correct props to the button', () => { - expect(wrapper.find('[data-test-subj="configure-case-button"]').first().props()).toMatchObject({ - href: `/app/security/cases/configure`, - iconType: 'controlsHorizontal', - isDisabled: false, - 'aria-label': 'My label', - children: 'My label', - }); + expect(configureButton).toBeEnabled(); + expect(configureButton).toHaveAttribute('href', '/app/security/cases/configure'); + expect(configureButton).toHaveAttribute('aria-label', 'My label'); }); - test('it renders the tooltip', () => { - const msgTooltip = {'My message tooltip'}; - - const newWrapper = mount( - , - { - wrappingComponent: TestProviders as ComponentType>, - } - ); - - expect(newWrapper.find('[data-test-subj="configure-case-tooltip"]').first().exists()).toBe( - true - ); + it('renders the tooltip correctly when hovering the button', async () => { + jest.useFakeTimers(); - expect(wrapper.find('[data-test-subj="configure-case-button"]').first().exists()).toBe(true); - }); + const user = userEvent.setup({ + advanceTimers: jest.advanceTimersByTime, + pointerEventsCheck: 0, + }); - test('it shows the tooltip when hovering the button', () => { - // Use fake timers so we don't have to wait for the EuiToolTip timeout - jest.useFakeTimers({ legacyFakeTimers: true }); - - const msgTooltip = 'My message tooltip'; - const titleTooltip = 'My title'; - - const newWrapper = mount( - {msgTooltip}} - />, - { - wrappingComponent: TestProviders as ComponentType>, - } + render( + + {'My message tooltip'}} + /> + ); - newWrapper.find('a[data-test-subj="configure-case-button"]').first().simulate('mouseOver'); + await user.hover(await screen.findByTestId('configure-case-button')); - // Run the timers so the EuiTooltip will be visible - jest.runAllTimers(); + expect(await screen.findByTestId('configure-case-tooltip')).toBeInTheDocument(); + expect(await screen.findByText('My title')).toBeInTheDocument(); + expect(await screen.findByText('My message tooltip')).toBeInTheDocument(); - newWrapper.update(); - expect(newWrapper.find('.euiToolTipPopover').last().text()).toBe( - `${titleTooltip}${msgTooltip}` - ); - - // Clearing all mocks will also reset fake timers. - jest.clearAllMocks(); + jest.useRealTimers(); }); }); @@ -120,31 +81,33 @@ describe('CaseDetailsLink', () => { useCaseViewNavigationMock.mockReturnValue({ getCaseViewUrl, navigateToCaseView }); }); - test('it renders', () => { + it('renders', async () => { render(); - expect(screen.getByText('test detail name')).toBeInTheDocument(); + expect(await screen.findByText('test detail name')).toBeInTheDocument(); }); - test('it renders the children instead of the detail name if provided', () => { + it('renders the children instead of the detail name if provided', async () => { render({'children'}); expect(screen.queryByText('test detail name')).toBeFalsy(); - expect(screen.getByText('children')).toBeInTheDocument(); + expect(await screen.findByText('children')).toBeInTheDocument(); }); - test('it uses the detailName in the aria-label if the title is not provided', () => { + it('uses the detailName in the aria-label if the title is not provided', async () => { render(); expect( - screen.getByLabelText(`click to visit case with title ${props.detailName}`) + await screen.findByLabelText(`click to visit case with title ${props.detailName}`) ).toBeInTheDocument(); }); - test('it uses the title in the aria-label if provided', () => { + it('uses the title in the aria-label if provided', async () => { render(); - expect(screen.getByText('test detail name')).toBeInTheDocument(); - expect(screen.getByLabelText(`click to visit case with title my title`)).toBeInTheDocument(); + expect(await screen.findByText('test detail name')).toBeInTheDocument(); + expect( + await screen.findByLabelText(`click to visit case with title my title`) + ).toBeInTheDocument(); }); - test('it calls navigateToCaseViewClick on click', async () => { + it('calls navigateToCaseViewClick on click', async () => { // Workaround for timeout via https://github.com/testing-library/user-event/issues/833#issuecomment-1171452841 jest.useFakeTimers(); const user = userEvent.setup({ @@ -153,7 +116,9 @@ describe('CaseDetailsLink', () => { }); render(); - await user.click(screen.getByText('test detail name')); + + await user.click(await screen.findByText('test detail name')); + expect(navigateToCaseView).toHaveBeenCalledWith({ detailName: props.detailName, }); @@ -161,11 +126,11 @@ describe('CaseDetailsLink', () => { jest.useRealTimers(); }); - test('it set the href correctly', () => { + it('sets the href correctly', async () => { render(); expect(getCaseViewUrl).toHaveBeenCalledWith({ detailName: props.detailName, }); - expect(screen.getByRole('link')).toHaveAttribute('href', '/cases/test'); + expect(await screen.findByRole('link')).toHaveAttribute('href', '/cases/test'); }); }); diff --git a/x-pack/plugins/cases/public/components/links/index.tsx b/x-pack/plugins/cases/public/components/links/index.tsx index cc6e29da8008c..f1e8ca5cdb4af 100644 --- a/x-pack/plugins/cases/public/components/links/index.tsx +++ b/x-pack/plugins/cases/public/components/links/index.tsx @@ -6,7 +6,7 @@ */ import type { EuiButtonProps, EuiLinkProps, PropsForAnchor, PropsForButton } from '@elastic/eui'; -import { EuiButton, EuiLink, EuiToolTip } from '@elastic/eui'; +import { EuiButton, EuiLink, EuiToolTip, EuiButtonEmpty } from '@elastic/eui'; import React, { useCallback, useMemo } from 'react'; import { useCaseViewNavigation, useConfigureCasesNavigation } from '../../common/navigation'; import * as i18n from './translations'; @@ -18,10 +18,17 @@ export interface CasesNavigation Promise | void; } -export const LinkButton: React.FC | PropsForAnchor> = - // TODO: Fix this manually. Issue #123375 - // eslint-disable-next-line react/display-name - ({ children, ...props }) => {children}; +type LinkButtonProps = React.FC< + (PropsForButton | PropsForAnchor) & { isEmpty?: boolean } +>; + +export const LinkButton: LinkButtonProps = ({ children, isEmpty, ...props }) => + isEmpty ? ( + {children} + ) : ( + {children} + ); +LinkButton.displayName = 'LinkButton'; // TODO: Fix this manually. Issue #123375 // eslint-disable-next-line react/display-name @@ -62,6 +69,7 @@ const CaseDetailsLinkComponent: React.FC = ({ ); }; + export const CaseDetailsLink = React.memo(CaseDetailsLinkComponent); CaseDetailsLink.displayName = 'CaseDetailsLink'; @@ -95,9 +103,10 @@ const ConfigureCaseButtonComponent: React.FC = ({ {label} diff --git a/x-pack/plugins/cases/public/components/markdown_editor/editor.tsx b/x-pack/plugins/cases/public/components/markdown_editor/editor.tsx index 92580b0e1da20..3c09f6aa3026f 100644 --- a/x-pack/plugins/cases/public/components/markdown_editor/editor.tsx +++ b/x-pack/plugins/cases/public/components/markdown_editor/editor.tsx @@ -34,11 +34,14 @@ export interface MarkdownEditorRef { const MarkdownEditorComponent = forwardRef( ({ ariaLabel, dataTestSubj, editorId, height, onChange, value, disabledUiPlugins }, ref) => { const astRef = useRef(undefined); - const [markdownErrorMessages, setMarkdownErrorMessages] = useState([]); - const onParse: EuiMarkdownEditorProps['onParse'] = useCallback((err, { messages, ast }) => { - setMarkdownErrorMessages(err ? [err] : messages); - astRef.current = ast; - }, []); + const [markdownErrorMessages, setMarkdownErrorMessages] = useState>([]); + const onParse = useCallback>( + (err, { messages, ast }) => { + setMarkdownErrorMessages(err ? [err] : messages); + astRef.current = ast; + }, + [] + ); const { parsingPlugins, processingPlugins, uiPlugins } = usePlugins(disabledUiPlugins); const editorRef = useRef(null); diff --git a/x-pack/plugins/cases/public/components/system_actions/cases/cases_params.tsx b/x-pack/plugins/cases/public/components/system_actions/cases/cases_params.tsx index 63e165d5109e9..6b6f85e53045f 100644 --- a/x-pack/plugins/cases/public/components/system_actions/cases/cases_params.tsx +++ b/x-pack/plugins/cases/public/components/system_actions/cases/cases_params.tsx @@ -193,7 +193,7 @@ export const CasesParamsFieldsComponent: React.FunctionComponent< 0 && diff --git a/x-pack/plugins/cases/public/components/user_actions_activity_bar/sort_activity.tsx b/x-pack/plugins/cases/public/components/user_actions_activity_bar/sort_activity.tsx index 6a43485177faa..d76e08bd68235 100644 --- a/x-pack/plugins/cases/public/components/user_actions_activity_bar/sort_activity.tsx +++ b/x-pack/plugins/cases/public/components/user_actions_activity_bar/sort_activity.tsx @@ -31,9 +31,9 @@ export const sortOptions: EuiSelectOption[] = [ export const SortActivity = React.memo( ({ sortOrder, onOrderChange, isLoading = false }) => { - const onChange: EuiSelectProps['onChange'] = useCallback( + const onChange = useCallback>( (e) => { - onOrderChange(e.target.value); + onOrderChange(e.target.value as UserActivitySortOrder); }, [onOrderChange] ); diff --git a/x-pack/plugins/cases/server/features.ts b/x-pack/plugins/cases/server/features.ts index 9f8bbdabf0c8e..f8f162b2ae3dc 100644 --- a/x-pack/plugins/cases/server/features.ts +++ b/x-pack/plugins/cases/server/features.ts @@ -11,6 +11,7 @@ import type { KibanaFeatureConfig } from '@kbn/features-plugin/common'; import { hiddenTypes as filesSavedObjectTypes } from '@kbn/files-plugin/server/saved_objects'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { APP_ID, FEATURE_ID } from '../common/constants'; import { createUICapabilities, getApiTags } from '../common'; @@ -32,6 +33,7 @@ export const getCasesKibanaFeature = (): KibanaFeatureConfig => { defaultMessage: 'Cases', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [], order: FEATURE_ORDER, management: { diff --git a/x-pack/plugins/cloud/public/plugin.test.ts b/x-pack/plugins/cloud/public/plugin.test.ts index 61ed450324637..2c32ac8fe972a 100644 --- a/x-pack/plugins/cloud/public/plugin.test.ts +++ b/x-pack/plugins/cloud/public/plugin.test.ts @@ -31,6 +31,7 @@ describe('Cloud Plugin', () => { ...baseConfig, id: 'cloudId', cname: 'cloud.elastic.co', + csp: 'aws', ...configParts, }); const plugin = new CloudPlugin(initContext); @@ -86,6 +87,11 @@ describe('Cloud Plugin', () => { expect(setup.cname).toBe('cloud.elastic.co'); }); + it('exposes csp', () => { + const { setup } = setupPlugin(); + expect(setup.csp).toBe('aws'); + }); + it('exposes registerCloudService', () => { const { setup } = setupPlugin(); expect(setup.registerCloudService).toBeDefined(); diff --git a/x-pack/plugins/cloud/public/plugin.tsx b/x-pack/plugins/cloud/public/plugin.tsx index d2671b18e4d68..a661933955060 100644 --- a/x-pack/plugins/cloud/public/plugin.tsx +++ b/x-pack/plugins/cloud/public/plugin.tsx @@ -23,6 +23,7 @@ export interface CloudConfigType { id?: string; organization_id?: string; cname?: string; + csp?: string; base_url?: string; profile_url?: string; deployments_url?: string; @@ -82,6 +83,7 @@ export class CloudPlugin implements Plugin { base_url: baseUrl, trial_end_date: trialEndDate, is_elastic_staff_owned: isElasticStaffOwned, + csp, } = this.config; let decodedId: DecodedCloudId | undefined; @@ -94,6 +96,7 @@ export class CloudPlugin implements Plugin { organizationId: this.config.organization_id, deploymentId: parseDeploymentIdFromDeploymentUrl(this.config.deployment_url), cname, + csp, baseUrl, ...this.getCloudUrls(), elasticsearchUrl: decodedId?.elasticsearchUrl, diff --git a/x-pack/plugins/cloud/public/types.ts b/x-pack/plugins/cloud/public/types.ts index dd3dcf27c1a61..8df1ba645cb48 100644 --- a/x-pack/plugins/cloud/public/types.ts +++ b/x-pack/plugins/cloud/public/types.ts @@ -111,6 +111,12 @@ export interface CloudSetup { * @example `cloud.elastic.co` */ cname?: string; + /** + * The cloud service provider identifier. + * + * @note Expected to be one of `aws`, `gcp` or `azure`, but could be something different. + */ + csp?: string; /** * This is the URL of the Cloud interface. */ diff --git a/x-pack/plugins/cloud/server/__snapshots__/plugin.test.ts.snap b/x-pack/plugins/cloud/server/__snapshots__/plugin.test.ts.snap index fa873a89a85d7..0f79db1ef779b 100644 --- a/x-pack/plugins/cloud/server/__snapshots__/plugin.test.ts.snap +++ b/x-pack/plugins/cloud/server/__snapshots__/plugin.test.ts.snap @@ -10,6 +10,7 @@ Object { "cloudDefaultPort": undefined, "cloudHost": undefined, "cloudId": "cloudId", + "csp": "aws", "deploymentId": "deployment-id", "elasticsearchUrl": undefined, "instanceSizeMb": undefined, diff --git a/x-pack/plugins/cloud/server/config.ts b/x-pack/plugins/cloud/server/config.ts index 371f895b92e09..ddf9b9039645e 100644 --- a/x-pack/plugins/cloud/server/config.ts +++ b/x-pack/plugins/cloud/server/config.ts @@ -22,6 +22,7 @@ const configSchema = schema.object({ apm: schema.maybe(apmConfigSchema), base_url: schema.maybe(schema.string()), cname: schema.maybe(schema.string()), + csp: schema.maybe(schema.string()), deployments_url: schema.string({ defaultValue: '/deployments' }), deployment_url: schema.maybe(schema.string()), id: schema.maybe(schema.string()), @@ -59,6 +60,7 @@ export const config: PluginConfigDescriptor = { exposeToBrowser: { base_url: true, cname: true, + csp: true, deployments_url: true, deployment_url: true, id: true, diff --git a/x-pack/plugins/cloud/server/plugin.test.ts b/x-pack/plugins/cloud/server/plugin.test.ts index f2ef8375b417e..598d03dd96256 100644 --- a/x-pack/plugins/cloud/server/plugin.test.ts +++ b/x-pack/plugins/cloud/server/plugin.test.ts @@ -30,6 +30,7 @@ describe('Cloud Plugin', () => { ...baseConfig, id: 'cloudId', cname: 'cloud.elastic.co', + csp: 'aws', ...configParts, }); const plugin = new CloudPlugin(initContext); @@ -77,6 +78,11 @@ describe('Cloud Plugin', () => { ); }); + it('exposes csp', () => { + const { setup } = setupPlugin(); + expect(setup.csp).toBe('aws'); + }); + it('exposes components decoded from the cloudId', () => { const decodedId: DecodedCloudId = { defaultPort: '9000', diff --git a/x-pack/plugins/cloud/server/plugin.ts b/x-pack/plugins/cloud/server/plugin.ts index 4d77cae8d870f..a03878b760dd4 100644 --- a/x-pack/plugins/cloud/server/plugin.ts +++ b/x-pack/plugins/cloud/server/plugin.ts @@ -35,6 +35,12 @@ export interface CloudSetup { * @note The `cloudId` is a concatenation of the deployment name and a hash. Users can update the deployment name, changing the `cloudId`. However, the changed `cloudId` will not be re-injected into `kibana.yml`. If you need the current `cloudId` the best approach is to split the injected `cloudId` on the semi-colon, and replace the first element with the `persistent.cluster.metadata.display_name` value as provided by a call to `GET _cluster/settings`. */ cloudId?: string; + /** + * The cloud service provider identifier. + * + * @note Expected to be one of `aws`, `gcp` or `azure`, but could be something different. + */ + csp?: string; /** * The Elastic Cloud Organization that owns this deployment/project. */ @@ -199,6 +205,7 @@ export class CloudPlugin implements Plugin { return { ...this.getCloudUrls(), cloudId: this.config.id, + csp: this.config.csp, organizationId, instanceSizeMb: readInstanceSizeMb(), deploymentId, diff --git a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_group_renderer.tsx b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_group_renderer.tsx index 535a465917d44..e2ea550447af1 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_group_renderer.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/configurations/latest_findings/latest_findings_group_renderer.tsx @@ -64,7 +64,7 @@ export const groupPanelRenderer: GroupPanelRenderer css={css` word-break: break-all; `} - title={bucket.resourceName?.buckets?.[0]?.key} + title={bucket.resourceName?.buckets?.[0]?.key as string} > {bucket.key_as_string} {bucket.resourceName?.buckets?.[0]?.key} diff --git a/x-pack/plugins/cloud_security_posture/public/pages/vulnerabilities/latest_vulnerabilities_group_renderer.tsx b/x-pack/plugins/cloud_security_posture/public/pages/vulnerabilities/latest_vulnerabilities_group_renderer.tsx index 351cecd83d502..242c61b7276ad 100644 --- a/x-pack/plugins/cloud_security_posture/public/pages/vulnerabilities/latest_vulnerabilities_group_renderer.tsx +++ b/x-pack/plugins/cloud_security_posture/public/pages/vulnerabilities/latest_vulnerabilities_group_renderer.tsx @@ -70,7 +70,7 @@ export const groupPanelRenderer: GroupPanelRenderer {bucket.key_as_string} {bucket.resourceId?.buckets?.[0]?.key} diff --git a/x-pack/plugins/cloud_security_posture/server/routes/status/status.ts b/x-pack/plugins/cloud_security_posture/server/routes/status/status.ts index e153479a43b0a..47ad4c32cba6e 100644 --- a/x-pack/plugins/cloud_security_posture/server/routes/status/status.ts +++ b/x-pack/plugins/cloud_security_posture/server/routes/status/status.ts @@ -170,6 +170,7 @@ const checkIndexHasFindings = async ( ], }, }, + ignore_unavailable: true, }); // Check the number of hits diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/link_card/link_card.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/link_card/link_card.tsx index 3419ff0cc6e25..b65092514d59a 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/link_card/link_card.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/link_card/link_card.tsx @@ -8,7 +8,6 @@ import type { FC } from 'react'; import React from 'react'; -import type { IconType } from '@elastic/eui'; import { EuiIcon, EuiText, @@ -18,10 +17,11 @@ import { EuiPanel, EuiLink, } from '@elastic/eui'; +import type { EuiIconType } from '@elastic/eui/src/components/icon/icon'; import { useCurrentEuiTheme } from '../../hooks/use_current_eui_theme'; export interface LinkCardProps { - icon: IconType; + icon: EuiIconType | string; iconAreaLabel?: string; title: any; description: any; @@ -68,11 +68,7 @@ export const LinkCard: FC = ({ > - {typeof icon === 'string' ? ( - - ) : ( - icon - )} + diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/use_table_settings.ts b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/use_table_settings.ts index c4474a78f6cb9..b2292970230c0 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/use_table_settings.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/use_table_settings.ts @@ -5,7 +5,13 @@ * 2.0. */ -import type { Direction, EuiBasicTableProps, Pagination, PropertySort } from '@elastic/eui'; +import type { + Direction, + EuiBasicTableProps, + Pagination, + PropertySort, + CriteriaWithPagination, +} from '@elastic/eui'; import { useCallback, useMemo } from 'react'; import type { DataVisualizerTableState } from '../../../../../common/types'; @@ -26,7 +32,7 @@ export function useTableSettings( const { pageIndex, pageSize, sortField, sortDirection } = pageState; const onTableChange: EuiBasicTableProps['onChange'] = useCallback( - ({ page, sort }) => { + ({ page, sort }: CriteriaWithPagination) => { const result = { ...pageState, pageIndex: page?.index ?? pageState.pageIndex, diff --git a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_page.tsx b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_page.tsx index ece2aac133c72..668ca7bf43f6e 100644 --- a/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_page.tsx +++ b/x-pack/plugins/data_visualizer/public/application/data_drift/data_drift_page.tsx @@ -77,7 +77,7 @@ export const PageHeader: FC = () => { autoRefreshSelector: true, }); - const updateTimeState: FullTimeRangeSelectorProps['callback'] = useCallback( + const updateTimeState = useCallback>( (update) => { setGlobalState({ time: { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_esql.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_esql.tsx index 6671e4c73c2e8..8e3d48c47c789 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_esql.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_esql.tsx @@ -266,6 +266,7 @@ export const IndexDataVisualizerESQL: FC = (dataVi detectedTimestamp={currentDataView?.timeFieldName} hideRunQueryText={false} isLoading={queryHistoryStatus ?? false} + displayDocumentationAsFlyout /> diff --git a/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/helpers.ts b/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/helpers.ts index 9e0bf457d528e..9e52b4a7414a6 100644 --- a/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/helpers.ts +++ b/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/helpers.ts @@ -23,6 +23,10 @@ export const getUpdateScript = ({ ctx._source.api_config.remove('model'); ctx._source.api_config.remove('provider'); } + // an update to apiConfig that does not contain defaultSystemPromptId should remove it + if (params.assignEmpty == true || (params.containsKey('api_config') && !params.api_config.containsKey('default_system_prompt_id'))) { + ctx._source.api_config.remove('default_system_prompt_id'); + } if (params.assignEmpty == true || params.api_config.containsKey('action_type_id')) { ctx._source.api_config.action_type_id = params.api_config.action_type_id; } diff --git a/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/update_conversation.test.ts b/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/update_conversation.test.ts index d3e4fff018abb..c44329c28db48 100644 --- a/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/update_conversation.test.ts +++ b/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/update_conversation.test.ts @@ -134,10 +134,6 @@ describe('transformToUpdateScheme', () => { jest.clearAllMocks(); }); - afterEach(() => { - jest.clearAllMocks(); - }); - test('it returns a transformed conversation with converted string datetime to ISO from the client', async () => { const conversation: ConversationUpdateProps = getUpdateConversationOptionsMock(); const existingConversation = getConversationResponseMock(); @@ -199,4 +195,43 @@ describe('transformToUpdateScheme', () => { }; expect(transformed).toEqual(expected); }); + test('it does not pass api_config if apiConfig is not updated', async () => { + const conversation: ConversationUpdateProps = getUpdateConversationOptionsMock(); + const existingConversation = getConversationResponseMock(); + (getConversation as unknown as jest.Mock).mockResolvedValueOnce(existingConversation); + + const updateAt = new Date().toISOString(); + const transformed = transformToUpdateScheme(updateAt, { + id: conversation.id, + messages: [ + { + content: 'Message 3', + role: 'user', + timestamp: '2011-10-05T14:48:00.000Z', + traceData: { + traceId: 'something', + transactionId: 'something', + }, + }, + ], + }); + const expected: UpdateConversationSchema = { + id: conversation.id, + updated_at: updateAt, + messages: [ + { + '@timestamp': '2011-10-05T14:48:00.000Z', + content: 'Message 3', + is_error: undefined, + reader: undefined, + role: 'user', + trace_data: { + trace_id: 'something', + transaction_id: 'something', + }, + }, + ], + }; + expect(transformed).toEqual(expected); + }); }); diff --git a/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/update_conversation.ts b/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/update_conversation.ts index 47a9594f42cab..807fea2decd99 100644 --- a/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/update_conversation.ts +++ b/x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/conversations/update_conversation.ts @@ -115,13 +115,17 @@ export const transformToUpdateScheme = ( id, updated_at: updatedAt, title, - api_config: { - action_type_id: apiConfig?.actionTypeId, - connector_id: apiConfig?.connectorId, - default_system_prompt_id: apiConfig?.defaultSystemPromptId, - model: apiConfig?.model, - provider: apiConfig?.provider, - }, + ...(apiConfig + ? { + api_config: { + action_type_id: apiConfig?.actionTypeId, + connector_id: apiConfig?.connectorId, + default_system_prompt_id: apiConfig?.defaultSystemPromptId, + model: apiConfig?.model, + provider: apiConfig?.provider, + }, + } + : {}), exclude_from_last_conversation_storage: excludeFromLastConversationStorage, replacements: replacements ? Object.keys(replacements).map((key) => ({ diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/types.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/types.ts index 9eae749bfa58b..060616d280efe 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/types.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/executors/types.ts @@ -54,6 +54,7 @@ export interface AgentExecutorParams { request: KibanaRequest; response?: KibanaResponseFactory; size?: number; + systemPrompt?: string; traceOptions?: TraceOptions; responseLanguage?: string; } diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/index.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/index.ts index d0fe4f5097dfe..0222720d95e37 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/index.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/index.ts @@ -18,12 +18,7 @@ import { getLlmClass } from '../../../../routes/utils'; import { EsAnonymizationFieldsSchema } from '../../../../ai_assistant_data_clients/anonymization_fields/types'; import { AssistantToolParams } from '../../../../types'; import { AgentExecutor } from '../../executors/types'; -import { - bedrockToolCallingAgentPrompt, - geminiToolCallingAgentPrompt, - openAIFunctionAgentPrompt, - structuredChatAgentPrompt, -} from './prompts'; +import { formatPrompt, formatPromptStructured, systemPrompts } from './prompts'; import { GraphInputs } from './types'; import { getDefaultAssistantGraph } from './graph'; import { invokeGraph, streamGraph } from './helpers'; @@ -52,6 +47,7 @@ export const callAssistantGraph: AgentExecutor = async ({ replacements, request, size, + systemPrompt, traceOptions, responseLanguage = 'English', }) => { @@ -141,7 +137,7 @@ export const callAssistantGraph: AgentExecutor = async ({ ? await createOpenAIFunctionsAgent({ llm: createLlmInstance(), tools, - prompt: openAIFunctionAgentPrompt, + prompt: formatPrompt(systemPrompts.openai, systemPrompt), streamRunnable: isStream, }) : llmType && ['bedrock', 'gemini'].includes(llmType) && bedrockChatEnabled @@ -149,13 +145,15 @@ export const callAssistantGraph: AgentExecutor = async ({ llm: createLlmInstance(), tools, prompt: - llmType === 'bedrock' ? bedrockToolCallingAgentPrompt : geminiToolCallingAgentPrompt, + llmType === 'bedrock' + ? formatPrompt(systemPrompts.bedrock, systemPrompt) + : formatPrompt(systemPrompts.gemini, systemPrompt), streamRunnable: isStream, }) : await createStructuredChatAgent({ llm: createLlmInstance(), tools, - prompt: structuredChatAgentPrompt, + prompt: formatPromptStructured(systemPrompts.structuredChat, systemPrompt), streamRunnable: isStream, }); diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/nodes/translations.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/nodes/translations.ts new file mode 100644 index 0000000000000..ae8e3c18c2217 --- /dev/null +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/nodes/translations.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +// TODO determine whether or not system prompts should be i18n'd +const YOU_ARE_A_HELPFUL_EXPERT_ASSISTANT = + 'You are a security analyst and expert in resolving security incidents. Your role is to assist by answering questions about Elastic Security.'; +const IF_YOU_DONT_KNOW_THE_ANSWER = 'Do not answer questions unrelated to Elastic Security.'; + +export const DEFAULT_SYSTEM_PROMPT = `${YOU_ARE_A_HELPFUL_EXPERT_ASSISTANT} ${IF_YOU_DONT_KNOW_THE_ANSWER}`; + +export const GEMINI_SYSTEM_PROMPT = + `ALWAYS use the provided tools, as they have access to the latest data and syntax.` + + "The final response is the only output the user sees and should be a complete answer to the user's question. Do not leave out important tool output. The final response should never be empty. Don't forget to use tools."; +export const BEDROCK_SYSTEM_PROMPT = `Use tools as often as possible, as they have access to the latest data and syntax. Always return value from ESQLKnowledgeBaseTool as is. Never return tags in the response, but make sure to include tags content in the response. Do not reflect on the quality of the returned search results in your response.`; diff --git a/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/prompts.ts b/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/prompts.ts index 9f0ff1b7a51f8..eb52c227421fc 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/prompts.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/langchain/graphs/default_assistant_graph/prompts.ts @@ -6,69 +6,95 @@ */ import { ChatPromptTemplate } from '@langchain/core/prompts'; +import { + BEDROCK_SYSTEM_PROMPT, + DEFAULT_SYSTEM_PROMPT, + GEMINI_SYSTEM_PROMPT, +} from './nodes/translations'; -export const openAIFunctionAgentPrompt = ChatPromptTemplate.fromMessages([ - ['system', 'You are a helpful assistant'], - ['placeholder', '{chat_history}'], - ['human', '{input}'], - ['placeholder', '{agent_scratchpad}'], -]); - -export const bedrockToolCallingAgentPrompt = ChatPromptTemplate.fromMessages([ - [ - 'system', - 'You are a helpful assistant. ALWAYS use the provided tools. Use tools as often as possible, as they have access to the latest data and syntax. Always return value from ESQLKnowledgeBaseTool as is. Never return tags in the response, but make sure to include tags content in the response. Do not reflect on the quality of the returned search results in your response.', - ], - ['placeholder', '{chat_history}'], - ['human', '{input}'], - ['placeholder', '{agent_scratchpad}'], -]); - -export const geminiToolCallingAgentPrompt = ChatPromptTemplate.fromMessages([ - [ - 'system', - 'You are a helpful assistant. ALWAYS use the provided tools. Use tools as often as possible, as they have access to the latest data and syntax.\n\n' + - "The final response will be the only output the user sees and should be a complete answer to the user's question, as if you were responding to the user's initial question. The final response should never be empty.", - ], - ['placeholder', '{chat_history}'], - ['human', '{input}'], - ['placeholder', '{agent_scratchpad}'], -]); - -export const structuredChatAgentPrompt = ChatPromptTemplate.fromMessages([ - [ - 'system', - 'Respond to the human as helpfully and accurately as possible. You have access to the following tools:\n\n' + - '{tools}\n\n' + - `The tool action_input should ALWAYS follow the tool JSON schema args.\n\n` + - 'Valid "action" values: "Final Answer" or {tool_names}\n\n' + - 'Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input strictly adhering to the tool JSON schema args).\n\n' + - 'Provide only ONE action per $JSON_BLOB, as shown:\n\n' + - '```\n\n' + - '{{\n\n' + - ' "action": $TOOL_NAME,\n\n' + - ' "action_input": $TOOL_INPUT\n\n' + - '}}\n\n' + - '```\n\n' + - 'Follow this format:\n\n' + - 'Question: input question to answer\n\n' + - 'Thought: consider previous and subsequent steps\n\n' + - 'Action:\n\n' + - '```\n\n' + - '$JSON_BLOB\n\n' + - '```\n\n' + - 'Observation: action result\n\n' + - '... (repeat Thought/Action/Observation N times)\n\n' + - 'Thought: I know what to respond\n\n' + - 'Action:\n\n' + - '```\n\n' + - '{{\n\n' + - ' "action": "Final Answer",\n\n' + - // important, no new line here - ' "action_input": "Final response to human"' + - '}}\n\n' + - 'Begin! Reminder to ALWAYS respond with a valid json blob of a single action with no additional output. When using tools, ALWAYS input the expected JSON schema args. Your answer will be parsed as JSON, so never use double quotes within the output and instead use backticks. Single quotes may be used, such as apostrophes. Response format is Action:```$JSON_BLOB```then Observation', - ], - ['placeholder', '{chat_history}'], - ['human', '{input}\n\n{agent_scratchpad}\n\n(reminder to respond in a JSON blob no matter what)'], -]); +export const formatPrompt = (prompt: string, additionalPrompt?: string) => + ChatPromptTemplate.fromMessages([ + ['system', additionalPrompt ? `${prompt}\n\n${additionalPrompt}` : prompt], + ['placeholder', '{chat_history}'], + ['human', '{input}'], + ['placeholder', '{agent_scratchpad}'], + ]); + +export const systemPrompts = { + openai: DEFAULT_SYSTEM_PROMPT, + bedrock: `${DEFAULT_SYSTEM_PROMPT} ${BEDROCK_SYSTEM_PROMPT}`, + gemini: `${DEFAULT_SYSTEM_PROMPT} ${GEMINI_SYSTEM_PROMPT}`, + structuredChat: `Respond to the human as helpfully and accurately as possible. You have access to the following tools: + +{tools} + +The tool action_input should ALWAYS follow the tool JSON schema args. + +Valid "action" values: "Final Answer" or {tool_names} + +Use a json blob to specify a tool by providing an action key (tool name) and an action_input key (tool input strictly adhering to the tool JSON schema args). + +Provide only ONE action per $JSON_BLOB, as shown: + +\`\`\` + +{{ + + "action": $TOOL_NAME, + + "action_input": $TOOL_INPUT + +}} + +\`\`\` + +Follow this format: + +Question: input question to answer + +Thought: consider previous and subsequent steps + +Action: + +\`\`\` + +$JSON_BLOB + +\`\`\` + +Observation: action result + +... (repeat Thought/Action/Observation N times) + +Thought: I know what to respond + +Action: + +\`\`\` + +{{ + + "action": "Final Answer", + + "action_input": "Final response to human"}} + +Begin! Reminder to ALWAYS respond with a valid json blob of a single action with no additional output. When using tools, ALWAYS input the expected JSON schema args. Your answer will be parsed as JSON, so never use double quotes within the output and instead use backticks. Single quotes may be used, such as apostrophes. Response format is Action:\`\`\`$JSON_BLOB\`\`\`then Observation`, +}; + +export const openAIFunctionAgentPrompt = formatPrompt(systemPrompts.openai); + +export const bedrockToolCallingAgentPrompt = formatPrompt(systemPrompts.bedrock); + +export const geminiToolCallingAgentPrompt = formatPrompt(systemPrompts.gemini); + +export const formatPromptStructured = (prompt: string, additionalPrompt?: string) => + ChatPromptTemplate.fromMessages([ + ['system', additionalPrompt ? `${prompt}\n\n${additionalPrompt}` : prompt], + ['placeholder', '{chat_history}'], + [ + 'human', + '{input}\n\n{agent_scratchpad}\n\n(reminder to respond in a JSON blob no matter what)', + ], + ]); + +export const structuredChatAgentPrompt = formatPromptStructured(systemPrompts.structuredChat); diff --git a/x-pack/plugins/elastic_assistant/server/lib/telemetry/event_based_telemetry.ts b/x-pack/plugins/elastic_assistant/server/lib/telemetry/event_based_telemetry.ts index b27105abf8180..4ba95896d7058 100644 --- a/x-pack/plugins/elastic_assistant/server/lib/telemetry/event_based_telemetry.ts +++ b/x-pack/plugins/elastic_assistant/server/lib/telemetry/event_based_telemetry.ts @@ -73,6 +73,7 @@ export const KNOWLEDGE_BASE_EXECUTION_ERROR_EVENT: EventTypeOpts<{ export const INVOKE_ASSISTANT_SUCCESS_EVENT: EventTypeOpts<{ assistantStreamingEnabled: boolean; actionTypeId: string; + isEnabledKnowledgeBase: boolean; model?: string; }> = { eventType: 'invoke_assistant_success', @@ -96,12 +97,19 @@ export const INVOKE_ASSISTANT_SUCCESS_EVENT: EventTypeOpts<{ optional: true, }, }, + isEnabledKnowledgeBase: { + type: 'boolean', + _meta: { + description: 'Is knowledge base enabled', + }, + }, }, }; export const INVOKE_ASSISTANT_ERROR_EVENT: EventTypeOpts<{ errorMessage: string; assistantStreamingEnabled: boolean; + isEnabledKnowledgeBase: boolean; actionTypeId: string; model?: string; }> = { @@ -132,6 +140,12 @@ export const INVOKE_ASSISTANT_ERROR_EVENT: EventTypeOpts<{ optional: true, }, }, + isEnabledKnowledgeBase: { + type: 'boolean', + _meta: { + description: 'Is knowledge base enabled', + }, + }, }, }; diff --git a/x-pack/plugins/elastic_assistant/server/routes/helpers.ts b/x-pack/plugins/elastic_assistant/server/routes/helpers.ts index fba788df5cc2e..d457f9c88bf69 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/helpers.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/helpers.ts @@ -28,8 +28,12 @@ import { AwaitedProperties, PublicMethodsOf } from '@kbn/utility-types'; import { ActionsClient } from '@kbn/actions-plugin/server'; import { AssistantFeatureKey } from '@kbn/elastic-assistant-common/impl/capabilities'; import { getLangSmithTracer } from '@kbn/langchain/server/tracers/langsmith'; +import { AIAssistantKnowledgeBaseDataClient } from '../ai_assistant_data_clients/knowledge_base'; +import { FindResponse } from '../ai_assistant_data_clients/find'; +import { EsPromptsSchema } from '../ai_assistant_data_clients/prompts/types'; +import { AIAssistantDataClient } from '../ai_assistant_data_clients'; import { MINIMUM_AI_ASSISTANT_LICENSE } from '../../common/constants'; -import { ESQL_RESOURCE } from './knowledge_base/constants'; +import { ESQL_DOCS_LOADED_QUERY, ESQL_RESOURCE } from './knowledge_base/constants'; import { buildResponse, getLlmType } from './utils'; import { AgentExecutorParams, @@ -214,6 +218,39 @@ export const appendMessageToConversation = async ({ return updatedConversation; }; +export interface GetSystemPromptFromUserConversationParams { + conversationsDataClient: AIAssistantConversationsDataClient; + conversationId: string; + promptsDataClient: AIAssistantDataClient; +} +const extractPromptFromESResult = (result: FindResponse): string | undefined => { + if (result.total > 0 && result.data.hits.hits.length > 0) { + return result.data.hits.hits[0]._source?.content; + } + return undefined; +}; + +export const getSystemPromptFromUserConversation = async ({ + conversationsDataClient, + conversationId, + promptsDataClient, +}: GetSystemPromptFromUserConversationParams): Promise => { + const conversation = await conversationsDataClient.getConversation({ id: conversationId }); + if (!conversation) { + return undefined; + } + const currentSystemPromptId = conversation.apiConfig?.defaultSystemPromptId; + if (!currentSystemPromptId) { + return undefined; + } + const result = await promptsDataClient.findDocuments({ + perPage: 1, + page: 1, + filter: `_id: "${currentSystemPromptId}"`, + }); + return extractPromptFromESResult(result); +}; + export interface AppendAssistantMessageToConversationParams { conversationsDataClient: AIAssistantConversationsDataClient; messageContent: string; @@ -300,6 +337,7 @@ export interface LangChainExecuteParams { getElser: GetElser; response: KibanaResponseFactory; responseLanguage?: string; + systemPrompt?: string; } export const langChainExecute = async ({ messages, @@ -319,6 +357,7 @@ export const langChainExecute = async ({ response, responseLanguage, isStream = true, + systemPrompt, }: LangChainExecuteParams) => { // Fetch any tools registered by the request's originating plugin const pluginName = getPluginNameFromRequest({ @@ -389,6 +428,7 @@ export const langChainExecute = async ({ replacements, responseLanguage, size: request.body.size, + systemPrompt, traceOptions: { projectName: request.body.langSmithProject, tracers: getLangSmithTracer({ @@ -403,12 +443,15 @@ export const langChainExecute = async ({ executorParams ); + const { esqlExists, isModelDeployed } = await getIsKnowledgeBaseEnabled(kbDataClient); + telemetry.reportEvent(INVOKE_ASSISTANT_SUCCESS_EVENT.eventType, { actionTypeId, model: request.body.model, // TODO rm actionTypeId check when llmClass for bedrock streaming is implemented // tracked here: https://github.com/elastic/security-team/issues/7363 assistantStreamingEnabled: isStream && actionTypeId === '.gen-ai', + isEnabledKnowledgeBase: isModelDeployed && esqlExists, }); return response.ok(result); }; @@ -613,3 +656,38 @@ export const isV2KnowledgeBaseEnabled = ({ }); return context.elasticAssistant.getRegisteredFeatures(pluginName).assistantKnowledgeBaseByDefault; }; + +/** + * Telemetry function to determine whether knowledge base has been installed + * @param kbDataClient + */ +export const getIsKnowledgeBaseEnabled = async ( + kbDataClient?: AIAssistantKnowledgeBaseDataClient | null +): Promise<{ + esqlExists: boolean; + isModelDeployed: boolean; +}> => { + let esqlExists = false; + let isModelDeployed = false; + if (kbDataClient != null) { + try { + isModelDeployed = await kbDataClient.isModelDeployed(); + if (isModelDeployed) { + esqlExists = + ( + await kbDataClient.getKnowledgeBaseDocumentEntries({ + query: ESQL_DOCS_LOADED_QUERY, + required: true, + }) + ).length > 0; + } + } catch (e) { + /* if telemetry related requests fail, fallback to default values */ + } + } + + return { + esqlExists, + isModelDeployed, + }; +}; diff --git a/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.test.ts b/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.test.ts index 12e854d5d0bf3..d19127be0d7e8 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.test.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.test.ts @@ -79,6 +79,9 @@ const mockContext = { appendConversationMessages: appendConversationMessages.mockResolvedValue(existingConversation), }), + getAIAssistantPromptsDataClient: jest.fn().mockResolvedValue({ + findDocuments: jest.fn(), + }), getAIAssistantAnonymizationFieldsDataClient: jest.fn().mockResolvedValue({ findDocuments: jest.fn().mockResolvedValue(getFindAnonymizationFieldsResultWithSingleHit()), }), diff --git a/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts b/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts index c8099e6e7f2fe..0988d9e5f8973 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts @@ -21,7 +21,14 @@ import { INVOKE_ASSISTANT_ERROR_EVENT } from '../lib/telemetry/event_based_telem import { POST_ACTIONS_CONNECTOR_EXECUTE } from '../../common/constants'; import { buildResponse } from '../lib/build_response'; import { ElasticAssistantRequestHandlerContext, GetElser } from '../types'; -import { appendAssistantMessageToConversation, langChainExecute } from './helpers'; +import { + appendAssistantMessageToConversation, + DEFAULT_PLUGIN_NAME, + getIsKnowledgeBaseEnabled, + getPluginNameFromRequest, + getSystemPromptFromUserConversation, + langChainExecute, +} from './helpers'; export const postActionsConnectorExecuteRoute = ( router: IRouter, @@ -89,6 +96,7 @@ export const postActionsConnectorExecuteRoute = ( const conversationsDataClient = await assistantContext.getAIAssistantConversationsDataClient(); + const promptsDataClient = await assistantContext.getAIAssistantPromptsDataClient(); onLlmResponse = async ( content: string, @@ -106,7 +114,14 @@ export const postActionsConnectorExecuteRoute = ( }); } }; - + let systemPrompt; + if (conversationsDataClient && promptsDataClient && conversationId) { + systemPrompt = await getSystemPromptFromUserConversation({ + conversationsDataClient, + conversationId, + promptsDataClient, + }); + } return await langChainExecute({ abortSignal, isStream: request.body.subAction !== 'invokeAI', @@ -124,6 +139,7 @@ export const postActionsConnectorExecuteRoute = ( request, response, telemetry, + systemPrompt, }); } catch (err) { logger.error(err); @@ -131,11 +147,25 @@ export const postActionsConnectorExecuteRoute = ( if (onLlmResponse) { await onLlmResponse(error.message, {}, true); } + const pluginName = getPluginNameFromRequest({ + request, + defaultPluginName: DEFAULT_PLUGIN_NAME, + logger, + }); + const v2KnowledgeBaseEnabled = + assistantContext.getRegisteredFeatures(pluginName).assistantKnowledgeBaseByDefault; + const kbDataClient = + (await assistantContext.getAIAssistantKnowledgeBaseDataClient( + v2KnowledgeBaseEnabled + )) ?? undefined; + const isEnabledKnowledgeBase = await getIsKnowledgeBaseEnabled(kbDataClient); + telemetry.reportEvent(INVOKE_ASSISTANT_ERROR_EVENT.eventType, { actionTypeId: request.body.actionTypeId, model: request.body.model, errorMessage: error.message, assistantStreamingEnabled: request.body.subAction !== 'invokeAI', + isEnabledKnowledgeBase, }); return resp.error({ diff --git a/x-pack/plugins/elastic_assistant/server/routes/prompts/find_route.ts b/x-pack/plugins/elastic_assistant/server/routes/prompts/find_route.ts index 142b63a7d04b5..848680be662a3 100644 --- a/x-pack/plugins/elastic_assistant/server/routes/prompts/find_route.ts +++ b/x-pack/plugins/elastic_assistant/server/routes/prompts/find_route.ts @@ -59,7 +59,11 @@ export const findPromptsRoute = (router: ElasticAssistantPluginRouter, logger: L page: query.page, sortField: query.sort_field, sortOrder: query.sort_order, - filter: query.filter ? decodeURIComponent(query.filter) : undefined, + filter: query.filter + ? `${decodeURIComponent( + query.filter + )} and not (prompt_type: "system" and is_default: true)` + : 'not (prompt_type: "system" and is_default: true)', fields: query.fields, }); diff --git a/x-pack/plugins/enterprise_search/common/constants.ts b/x-pack/plugins/enterprise_search/common/constants.ts index 8e736193e9b61..10b472b1efca1 100644 --- a/x-pack/plugins/enterprise_search/common/constants.ts +++ b/x-pack/plugins/enterprise_search/common/constants.ts @@ -194,7 +194,7 @@ export const SEMANTIC_SEARCH_PLUGIN = { URL: '/app/enterprise_search/semantic_search', }; -export const INFERENCE_ENDPOINTS_PLUGIN = { +export const SEARCH_RELEVANCE_PLUGIN = { ID: ENTERPRISE_SEARCH_RELEVANCE_APP_ID, NAME: i18n.translate('xpack.enterpriseSearch.inferenceEndpoints.productName', { defaultMessage: 'Inference Endpoints', @@ -203,7 +203,7 @@ export const INFERENCE_ENDPOINTS_PLUGIN = { defaultMessage: 'Relevance', }), DESCRIPTION: i18n.translate('xpack.enterpriseSearch.inferenceEndpoints.description', { - defaultMessage: 'View for managing inference endpoints.', + defaultMessage: 'Manage your inference endpoints for semantic search and AI use cases.', }), URL: '/app/enterprise_search/relevance', LOGO: 'logoEnterpriseSearch', diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_type.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_type.test.tsx index f3af239a02992..6534d060a27c1 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_type.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_type.test.tsx @@ -37,7 +37,6 @@ describe('FormKeyType', () => { const wrapper = shallow(); expect(wrapper.find(EuiSelect)).toHaveLength(1); - expect(wrapper.find(EuiSelect).prop('placeholder')).toEqual('Select a key type'); expect(wrapper.find(EuiSelect).prop('options')).toEqual(TOKEN_TYPE_INFO); expect(wrapper.find(EuiSelect).prop('value')).toEqual(ApiTokenTypes.Private); expect(wrapper.find(EuiSelect).prop('disabled')).toEqual(false); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_type.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_type.tsx index 60308274fbb76..2cf381d8f604f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_type.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/form_components/key_type.tsx @@ -53,10 +53,6 @@ export const FormKeyType: React.FC = () => { options={tokenOptions} value={activeApiToken.type} onChange={(e) => setTokenType(e.target.value)} - placeholder={i18n.translate( - 'xpack.enterpriseSearch.appSearch.credentials.formType.placeholder', - { defaultMessage: 'Select a key type' } - )} disabled={activeApiTokenExists} required fullWidth diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/search_experience/views/multi_checkbox_facets_view.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/search_experience/views/multi_checkbox_facets_view.tsx index 19727db552acf..d4308c215072c 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/search_experience/views/multi_checkbox_facets_view.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/search_experience/views/multi_checkbox_facets_view.tsx @@ -41,7 +41,7 @@ export const MultiCheckboxFacetsView: React.FC = ({ const optionToCheckBoxGroupOption = (option: FacetValue, index: number) => ({ id: getId(String(index)), label: - option.value || + (option.value as React.ReactNode) || i18n.translate( 'xpack.enterpriseSearch.appSearch.documents.search.multiCheckboxFacetsView.noValue.selectOption', { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/layout/nav.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/layout/nav.tsx index 20bbfe38e5f39..c70971ebc6ece 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/layout/nav.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/layout/nav.tsx @@ -65,3 +65,20 @@ export const useAppSearchNav = () => { // to cause all our navItems to properly render as nav links. return [{ id: '', name: '', items: navItems }]; }; + +// Process App Search side nav items for use in the new Solution Nav +export const cleanAppSearchNavItems = ( + items: Array> +): Array> => { + const enginesItem = items.find((item) => item.id === 'engines'); + if (enginesItem && enginesItem.items && enginesItem.items.length > 0) { + const engineChildren = enginesItem.items; + const engineNameItem = engineChildren.find((item) => item.id === 'engineName'); + if (engineNameItem && engineNameItem.renderItem) { + delete engineNameItem.renderItem; + engineNameItem.items = engineChildren.filter((item) => item.id !== 'engineName'); + enginesItem.items = [engineNameItem]; + } + } + return items; +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/layout/page_template.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/layout/page_template.tsx index 7e4d72c232b33..35792e2d0cbf9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/layout/page_template.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/layout/page_template.tsx @@ -16,7 +16,7 @@ import { SetAppSearchChrome } from '../../../shared/kibana_chrome'; import { EnterpriseSearchPageTemplateWrapper, PageTemplateProps } from '../../../shared/layout'; import { SendAppSearchTelemetry } from '../../../shared/telemetry'; -import { useAppSearchNav } from './nav'; +import { useAppSearchNav, cleanAppSearchNavItems } from './nav'; export const AppSearchPageTemplate: React.FC< Omit @@ -27,14 +27,14 @@ export const AppSearchPageTemplate: React.FC< React.useEffect(() => { if (chromeStyle === 'classic') return; + const appSearch = cleanAppSearchNavItems(navItems?.[0]?.items); // We update the new side nav definition with the selected app items - updateSideNavDefinition({ appSearch: navItems?.[0]?.items }); - }, [chromeStyle, navItems, updateSideNavDefinition]); - React.useEffect(() => { + updateSideNavDefinition({ appSearch }); + return () => { updateSideNavDefinition({ appSearch: undefined }); }; - }, [updateSideNavDefinition]); + }, [chromeStyle, navItems, updateSideNavDefinition]); return ( = ({ }} > { wrapper .find(EuiContextMenuPanel) .prop('items') - ?.map((item: HTMLElement) => shallow(
    {item}
    )) || []; + ?.map((item: React.ReactNode) => shallow(
    {item}
    )) || []; expect(contextMenuItems.length > 0).toBeTruthy(); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/edit_field_rule_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/edit_field_rule_flyout.tsx index d5500a86f829e..253d66d63820f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/edit_field_rule_flyout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/crawler/crawler_domain_detail/extraction_rules/edit_field_rule_flyout.tsx @@ -357,7 +357,7 @@ export const EditFieldRuleFlyout: React.FC = ({ } )} isInvalid={!!error && isTouched} - error={error} + error={error as React.ReactNode} > { restrictWidth={false} customPageSections bottomBorder="extended" - docLink="inference_endpoints" > diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/components/not_found/not_found.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/components/not_found/not_found.tsx index 1c599fdc884e3..22f5e8d913bd8 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/components/not_found/not_found.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/components/not_found/not_found.tsx @@ -7,7 +7,7 @@ import React from 'react'; -import { INFERENCE_ENDPOINTS_PLUGIN } from '../../../../../common/constants'; +import { SEARCH_RELEVANCE_PLUGIN } from '../../../../../common/constants'; import { PageTemplateProps } from '../../../shared/layout'; import { NotFoundPrompt } from '../../../shared/not_found'; import { SendEnterpriseSearchTelemetry } from '../../../shared/telemetry'; @@ -17,7 +17,7 @@ export const NotFound: React.FC = ({ pageChrome = [] }) => { return ( - + ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/index.test.tsx index 5ac28448c7c4d..6294a60128e2d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/index.test.tsx @@ -5,7 +5,6 @@ * 2.0. */ -import { setMockValues } from '../__mocks__/kea_logic'; import '../__mocks__/shallow_useeffect.mock'; import '../__mocks__/enterprise_search_url.mock'; @@ -13,32 +12,10 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { VersionMismatchPage } from '../shared/version_mismatch'; - import { EnterpriseSearchRelevance, EnterpriseSearchRelevanceConfigured } from '.'; describe('EnterpriseSearchRelevance', () => { - it('renders VersionMismatchPage when there are mismatching versions', () => { - setMockValues({ config: { canDeployEntSearch: true, host: 'host' } }); - const wrapper = shallow( - - ); - - expect(wrapper.find(VersionMismatchPage)).toHaveLength(1); - }); - - it('renders EnterpriseSearchRelevanceConfigured when config.host is set & available', () => { - setMockValues({ - config: { canDeployEntSearch: true, host: 'some.url' }, - errorConnectingMessage: '', - }); - const wrapper = shallow(); - - expect(wrapper.find(EnterpriseSearchRelevanceConfigured)).toHaveLength(1); - }); - - it('renders EnterpriseSearchRelevanceConfigured when config.host is not set & Ent Search cannot be deployed', () => { - setMockValues({ config: { canDeployEntSearch: false, host: '' }, errorConnectingMessage: '' }); + it('renders EnterpriseSearchRelevanceConfigured', () => { const wrapper = shallow(); expect(wrapper.find(EnterpriseSearchRelevanceConfigured)).toHaveLength(1); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/index.tsx index 6e75d8055619b..7594e514af54f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_relevance/index.tsx @@ -8,44 +8,20 @@ import React from 'react'; import { Redirect } from 'react-router-dom'; -import { useValues } from 'kea'; - import { Route, Routes } from '@kbn/shared-ux-router'; -import { isVersionMismatch } from '../../../common/is_version_mismatch'; import { InitialAppData } from '../../../common/types'; -import { ErrorStatePrompt } from '../shared/error_state'; -import { HttpLogic } from '../shared/http'; -import { VersionMismatchPage } from '../shared/version_mismatch'; import { InferenceEndpoints } from './components/inference_endpoints'; import { NotFound } from './components/not_found'; -import { INFERENCE_ENDPOINTS_PATH, ERROR_STATE_PATH, ROOT_PATH } from './routes'; +import { INFERENCE_ENDPOINTS_PATH, ROOT_PATH } from './routes'; export const EnterpriseSearchRelevance: React.FC = (props) => { - const { errorConnectingMessage } = useValues(HttpLogic); - const { enterpriseSearchVersion, kibanaVersion } = props; - const incompatibleVersions = isVersionMismatch(enterpriseSearchVersion, kibanaVersion); - - const showView = () => { - if (incompatibleVersions) { - return ( - - ); - } - - return )} />; - }; - return ( - - {errorConnectingMessage ? : } + + )} /> - {showView()} ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts b/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts index da5209a9dc1ec..2338036ccf1e8 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/kibana/kibana_logic.ts @@ -24,7 +24,7 @@ import { import { DataPublicPluginStart } from '@kbn/data-plugin/public'; import { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public'; -import { IndexMappingProps } from '@kbn/index-management'; +import { IndexMappingProps } from '@kbn/index-management-shared-types'; import { LensPublicStart } from '@kbn/lens-plugin/public'; import { MlPluginStart } from '@kbn/ml-plugin/public'; import { ELASTICSEARCH_URL_PLACEHOLDER } from '@kbn/search-api-panels/constants'; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/kibana_chrome/generate_breadcrumbs.ts b/x-pack/plugins/enterprise_search/public/applications/shared/kibana_chrome/generate_breadcrumbs.ts index 40e2d2fb27476..ea6bda26be450 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/kibana_chrome/generate_breadcrumbs.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/kibana_chrome/generate_breadcrumbs.ts @@ -14,7 +14,7 @@ import { ANALYTICS_PLUGIN, APP_SEARCH_PLUGIN, ENTERPRISE_SEARCH_CONTENT_PLUGIN, - INFERENCE_ENDPOINTS_PLUGIN, + SEARCH_RELEVANCE_PLUGIN, ENTERPRISE_SEARCH_PRODUCT_NAME, AI_SEARCH_PLUGIN, SEARCH_EXPERIENCES_PLUGIN, @@ -155,7 +155,7 @@ export const useEnterpriseSearchContentBreadcrumbs = (breadcrumbs: Breadcrumbs = ]); export const useEnterpriseSearchRelevanceBreadcrumbs = (breadcrumbs: Breadcrumbs = []) => - useSearchBreadcrumbs([{ text: INFERENCE_ENDPOINTS_PLUGIN.NAV_TITLE, path: '/' }, ...breadcrumbs]); + useSearchBreadcrumbs([{ text: SEARCH_RELEVANCE_PLUGIN.NAV_TITLE, path: '/' }, ...breadcrumbs]); export const useSearchExperiencesBreadcrumbs = (breadcrumbs: Breadcrumbs = []) => useSearchBreadcrumbs([{ text: SEARCH_EXPERIENCES_PLUGIN.NAV_TITLE, path: '/' }, ...breadcrumbs]); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx index d0f8a60f3472a..1c967c17c9c1e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/layout/nav.tsx @@ -23,7 +23,7 @@ import { AI_SEARCH_PLUGIN, VECTOR_SEARCH_PLUGIN, WORKPLACE_SEARCH_PLUGIN, - INFERENCE_ENDPOINTS_PLUGIN, + SEARCH_RELEVANCE_PLUGIN, SEMANTIC_SEARCH_PLUGIN, } from '../../../../common/constants'; import { @@ -174,7 +174,7 @@ export const useEnterpriseSearchNav = (alwaysReturn = false) => { ...generateNavLink({ shouldNotCreateHref: true, shouldShowActiveForSubroutes: true, - to: INFERENCE_ENDPOINTS_PLUGIN.URL + INFERENCE_ENDPOINTS_PATH, + to: SEARCH_RELEVANCE_PLUGIN.URL + INFERENCE_ENDPOINTS_PATH, }), }, ], diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/tables/reorderable_table/body_rows.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/tables/reorderable_table/body_rows.test.tsx index 6a8f59b7a4d04..9c574ffb4e2d0 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/tables/reorderable_table/body_rows.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/tables/reorderable_table/body_rows.test.tsx @@ -13,7 +13,7 @@ import { BodyRows } from './body_rows'; const Row = ({ item, itemIndex }: { item: Item; itemIndex: number }) => (
    - {item} {itemIndex} + {item as React.ReactNode} {itemIndex}
    ); diff --git a/x-pack/plugins/enterprise_search/public/plugin.ts b/x-pack/plugins/enterprise_search/public/plugin.ts index d6ae1dcc0ac6d..73dbe6885fdcc 100644 --- a/x-pack/plugins/enterprise_search/public/plugin.ts +++ b/x-pack/plugins/enterprise_search/public/plugin.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { BehaviorSubject, firstValueFrom, Subscription } from 'rxjs'; +import { BehaviorSubject, firstValueFrom } from 'rxjs'; import { ChartsPluginStart } from '@kbn/charts-plugin/public'; import { CloudSetup, CloudStart } from '@kbn/cloud-plugin/public'; @@ -25,9 +25,8 @@ import { DataPublicPluginStart } from '@kbn/data-plugin/public'; import { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public'; import type { HomePublicPluginSetup } from '@kbn/home-plugin/public'; import { i18n } from '@kbn/i18n'; -import type { IndexManagementPluginStart } from '@kbn/index-management'; +import type { IndexManagementPluginStart } from '@kbn/index-management-shared-types'; import { LensPublicStart } from '@kbn/lens-plugin/public'; -import { ILicense } from '@kbn/licensing-plugin/public'; import { LicensingPluginStart } from '@kbn/licensing-plugin/public'; import { MlPluginStart } from '@kbn/ml-plugin/public'; import type { NavigationPublicPluginStart } from '@kbn/navigation-plugin/public'; @@ -54,8 +53,8 @@ import { SEARCH_PRODUCT_NAME, VECTOR_SEARCH_PLUGIN, WORKPLACE_SEARCH_PLUGIN, - INFERENCE_ENDPOINTS_PLUGIN, SEMANTIC_SEARCH_PLUGIN, + SEARCH_RELEVANCE_PLUGIN, } from '../common/constants'; import { registerLocators } from '../common/locators'; @@ -142,7 +141,7 @@ const contentLinks: AppDeepLink[] = [ const relevanceLinks: AppDeepLink[] = [ { - id: 'inferenceEndpoints', + id: 'searchInferenceEndpoints', path: `/${INFERENCE_ENDPOINTS_PATH}`, title: i18n.translate( 'xpack.enterpriseSearch.navigation.relevanceInferenceEndpointsLinkLabel', @@ -188,7 +187,6 @@ const appSearchLinks: AppDeepLink[] = [ export class EnterpriseSearchPlugin implements Plugin { private config: ClientConfigType; - private licenseSubscription: Subscription | null = null; constructor(initializerContext: PluginInitializerContext) { this.config = initializerContext.config.get(); @@ -264,7 +262,7 @@ export class EnterpriseSearchPlugin implements Plugin { if (!config.ui?.enabled) { return; } - const { cloud, share, licensing } = plugins; + const { cloud, share } = plugins; const useSearchHomepage = plugins.searchHomepage && plugins.searchHomepage.isHomepageFeatureEnabled(); @@ -470,33 +468,29 @@ export class EnterpriseSearchPlugin implements Plugin { title: ANALYTICS_PLUGIN.NAME, }); - this.licenseSubscription = licensing?.license$.subscribe((license: ILicense) => { - if (license.isActive && license.hasAtLeast('enterprise')) { - core.application.register({ - appRoute: INFERENCE_ENDPOINTS_PLUGIN.URL, - category: DEFAULT_APP_CATEGORIES.enterpriseSearch, - deepLinks: relevanceLinks, - euiIconType: INFERENCE_ENDPOINTS_PLUGIN.LOGO, - id: INFERENCE_ENDPOINTS_PLUGIN.ID, - mount: async (params: AppMountParameters) => { - const kibanaDeps = await this.getKibanaDeps(core, params, cloud); - const { chrome, http } = kibanaDeps.core; - chrome.docTitle.change(INFERENCE_ENDPOINTS_PLUGIN.NAME); - - await this.getInitialData(http); - const pluginData = this.getPluginData(); - - const { renderApp } = await import('./applications'); - const { EnterpriseSearchRelevance } = await import( - './applications/enterprise_search_relevance' - ); - - return renderApp(EnterpriseSearchRelevance, kibanaDeps, pluginData); - }, - title: INFERENCE_ENDPOINTS_PLUGIN.NAV_TITLE, - visibleIn: [], - }); - } + core.application.register({ + appRoute: SEARCH_RELEVANCE_PLUGIN.URL, + category: DEFAULT_APP_CATEGORIES.enterpriseSearch, + deepLinks: relevanceLinks, + euiIconType: SEARCH_RELEVANCE_PLUGIN.LOGO, + id: SEARCH_RELEVANCE_PLUGIN.ID, + mount: async (params: AppMountParameters) => { + const kibanaDeps = await this.getKibanaDeps(core, params, cloud); + const { chrome, http } = kibanaDeps.core; + chrome.docTitle.change(SEARCH_RELEVANCE_PLUGIN.NAME); + + await this.getInitialData(http); + const pluginData = this.getPluginData(); + + const { renderApp } = await import('./applications'); + const { EnterpriseSearchRelevance } = await import( + './applications/enterprise_search_relevance' + ); + + return renderApp(EnterpriseSearchRelevance, kibanaDeps, pluginData); + }, + title: SEARCH_RELEVANCE_PLUGIN.NAV_TITLE, + visibleIn: [], }); core.application.register({ @@ -674,9 +668,7 @@ export class EnterpriseSearchPlugin implements Plugin { return {}; } - public stop() { - this.licenseSubscription?.unsubscribe(); - } + public stop() {} private updateSideNavDefinition = (items: Partial) => { this.sideNavDynamicItems$.next({ ...this.sideNavDynamicItems$.getValue(), ...items }); diff --git a/x-pack/plugins/enterprise_search/server/lib/check_access.ts b/x-pack/plugins/enterprise_search/server/lib/check_access.ts index f362066b5def4..af8cc16c6febe 100644 --- a/x-pack/plugins/enterprise_search/server/lib/check_access.ts +++ b/x-pack/plugins/enterprise_search/server/lib/check_access.ts @@ -46,7 +46,7 @@ export const checkAccess = async ({ }: CheckAccess): Promise => { const isRbacEnabled = security.authz.mode.useRbacForRequest(request); - // If security has been disabled, always hide the plugin + // If security has been disabled, always hide app search and workplace search if (!isRbacEnabled) { return DENY_ALL_PLUGINS; } @@ -79,7 +79,7 @@ export const checkAccess = async ({ const { hasAllRequested } = await security.authz .checkPrivilegesWithRequest(request) .globally({ kibana: security.authz.actions.ui.get('enterpriseSearch', 'all') }); - return hasAllRequested; + return hasAllRequested || false; } catch (err) { if (err.statusCode === 401 || err.statusCode === 403) { return false; diff --git a/x-pack/plugins/enterprise_search/server/plugin.ts b/x-pack/plugins/enterprise_search/server/plugin.ts index d021b1b3cd634..c80216bc7a156 100644 --- a/x-pack/plugins/enterprise_search/server/plugin.ts +++ b/x-pack/plugins/enterprise_search/server/plugin.ts @@ -18,6 +18,8 @@ import { } from '@kbn/core/server'; import { CustomIntegrationsPluginSetup } from '@kbn/custom-integrations-plugin/server'; import { DataPluginStart } from '@kbn/data-plugin/server/plugin'; +import { ENTERPRISE_SEARCH_APP_ID } from '@kbn/deeplinks-search'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { FeaturesPluginSetup } from '@kbn/features-plugin/server'; import { GlobalSearchPluginSetup } from '@kbn/global-search-plugin/server'; import type { GuidedOnboardingPluginSetup } from '@kbn/guided-onboarding-plugin/server'; @@ -40,6 +42,12 @@ import { ENTERPRISE_SEARCH_RELEVANCE_LOGS_SOURCE_ID, ENTERPRISE_SEARCH_AUDIT_LOGS_SOURCE_ID, ENTERPRISE_SEARCH_ANALYTICS_LOGS_SOURCE_ID, + VECTOR_SEARCH_PLUGIN, + SEMANTIC_SEARCH_PLUGIN, + AI_SEARCH_PLUGIN, + APPLICATIONS_PLUGIN, + SEARCH_PRODUCT_NAME, + SEARCH_RELEVANCE_PLUGIN, } from '../common/constants'; import { @@ -165,6 +173,11 @@ export class EnterpriseSearchPlugin implements Plugin { ANALYTICS_PLUGIN.ID, ...(config.canDeployEntSearch ? [APP_SEARCH_PLUGIN.ID, WORKPLACE_SEARCH_PLUGIN.ID] : []), SEARCH_EXPERIENCES_PLUGIN.ID, + VECTOR_SEARCH_PLUGIN.ID, + SEMANTIC_SEARCH_PLUGIN.ID, + APPLICATIONS_PLUGIN.ID, + AI_SEARCH_PLUGIN.ID, + SEARCH_RELEVANCE_PLUGIN.ID, ]; const isCloud = !!cloud?.cloudId; @@ -186,13 +199,33 @@ export class EnterpriseSearchPlugin implements Plugin { * Register space/feature control */ features.registerKibanaFeature({ - id: ENTERPRISE_SEARCH_OVERVIEW_PLUGIN.ID, - name: ENTERPRISE_SEARCH_OVERVIEW_PLUGIN.NAME, + id: ENTERPRISE_SEARCH_APP_ID, + name: SEARCH_PRODUCT_NAME, order: 0, category: DEFAULT_APP_CATEGORIES.enterpriseSearch, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['kibana', ...PLUGIN_IDS], catalogue: PLUGIN_IDS, - privileges: null, + privileges: { + all: { + app: ['kibana', ...PLUGIN_IDS], + api: [], + catalogue: PLUGIN_IDS, + savedObject: { + all: [], + read: [], + }, + ui: [], + }, + read: { + disabled: true, + savedObject: { + all: [], + read: [], + }, + ui: [], + }, + }, }); /** @@ -217,35 +250,15 @@ export class EnterpriseSearchPlugin implements Plugin { }; const { hasAppSearchAccess, hasWorkplaceSearchAccess } = await checkAccess(dependencies); - const showEnterpriseSearch = - hasAppSearchAccess || hasWorkplaceSearchAccess || !config.canDeployEntSearch; return { navLinks: { - enterpriseSearch: showEnterpriseSearch, - enterpriseSearchContent: showEnterpriseSearch, - enterpriseSearchAnalytics: showEnterpriseSearch, - enterpriseSearchApplications: showEnterpriseSearch, - enterpriseSearchAISearch: showEnterpriseSearch, - enterpriseSearchVectorSearch: showEnterpriseSearch, - enterpriseSearchSemanticSearch: showEnterpriseSearch, - enterpriseSearchElasticsearch: showEnterpriseSearch, appSearch: hasAppSearchAccess && config.canDeployEntSearch, workplaceSearch: hasWorkplaceSearchAccess && config.canDeployEntSearch, - searchExperiences: showEnterpriseSearch, }, catalogue: { - enterpriseSearch: showEnterpriseSearch, - enterpriseSearchContent: showEnterpriseSearch, - enterpriseSearchAnalytics: showEnterpriseSearch, - enterpriseSearchApplications: showEnterpriseSearch, - enterpriseSearchAISearch: showEnterpriseSearch, - enterpriseSearchVectorSearch: showEnterpriseSearch, - enterpriseSearchSemanticSearch: showEnterpriseSearch, - enterpriseSearchElasticsearch: showEnterpriseSearch, appSearch: hasAppSearchAccess && config.canDeployEntSearch, workplaceSearch: hasWorkplaceSearchAccess && config.canDeployEntSearch, - searchExperiences: showEnterpriseSearch, }, }; }, diff --git a/x-pack/plugins/enterprise_search/tsconfig.json b/x-pack/plugins/enterprise_search/tsconfig.json index 58b1526e14baf..841cebf28cf46 100644 --- a/x-pack/plugins/enterprise_search/tsconfig.json +++ b/x-pack/plugins/enterprise_search/tsconfig.json @@ -72,7 +72,7 @@ "@kbn/search-playground", "@kbn/search-inference-endpoints", "@kbn/utility-types", - "@kbn/index-management", + "@kbn/index-management-shared-types", "@kbn/deeplinks-search", "@kbn/react-kibana-context-theme", "@kbn/search-types", diff --git a/x-pack/plugins/features/common/index.ts b/x-pack/plugins/features/common/index.ts index 92cbcd76172d0..6a4411f525083 100644 --- a/x-pack/plugins/features/common/index.ts +++ b/x-pack/plugins/features/common/index.ts @@ -10,7 +10,7 @@ export type { FeatureKibanaPrivileges } from './feature_kibana_privileges'; export type { ElasticsearchFeatureConfig } from './elasticsearch_feature'; export { ElasticsearchFeature } from './elasticsearch_feature'; export type { KibanaFeatureConfig } from './kibana_feature'; -export { KibanaFeature } from './kibana_feature'; +export { KibanaFeature, KibanaFeatureScope } from './kibana_feature'; export type { SubFeatureConfig, SubFeaturePrivilegeConfig, diff --git a/x-pack/plugins/features/common/kibana_feature.ts b/x-pack/plugins/features/common/kibana_feature.ts index 926aca01627a2..bafa0329d359d 100644 --- a/x-pack/plugins/features/common/kibana_feature.ts +++ b/x-pack/plugins/features/common/kibana_feature.ts @@ -12,6 +12,16 @@ import { FeatureKibanaPrivileges } from './feature_kibana_privileges'; import { SubFeatureConfig, SubFeature as KibanaSubFeature } from './sub_feature'; import { ReservedKibanaPrivilege } from './reserved_kibana_privilege'; +/** + * Enum for allowed feature scope values. + * security - The feature is available in Security Feature Privileges. + * spaces - The feature is available in the Spaces Visibility Toggles. + */ +export enum KibanaFeatureScope { + Security = 'security', + Spaces = 'spaces', +} + /** * Interface for registering a feature. * Feature registration allows plugins to hide their applications with spaces, @@ -149,6 +159,11 @@ export interface KibanaFeatureConfig { * are visible. */ hidden?: boolean; + + /** + * Indicates whether the feature is available in Security Feature Privileges and the Spaces Visibility Toggles. + */ + scope?: readonly KibanaFeatureScope[]; } export class KibanaFeature { @@ -220,6 +235,10 @@ export class KibanaFeature { return this.config.reserved; } + public get scope() { + return this.config.scope; + } + public toRaw() { return { ...this.config } as KibanaFeatureConfig; } diff --git a/x-pack/plugins/features/public/index.ts b/x-pack/plugins/features/public/index.ts index c5100722795bc..e5e0e3bea51f9 100644 --- a/x-pack/plugins/features/public/index.ts +++ b/x-pack/plugins/features/public/index.ts @@ -14,7 +14,7 @@ export type { SubFeatureConfig, SubFeaturePrivilegeConfig, } from '../common'; -export { KibanaFeature } from '../common'; +export { KibanaFeature, KibanaFeatureScope } from '../common'; export type { FeaturesPluginSetup, FeaturesPluginStart } from './plugin'; diff --git a/x-pack/plugins/features/server/feature_registry.test.ts b/x-pack/plugins/features/server/feature_registry.test.ts index f27c93ac9129e..d9451fec632d8 100644 --- a/x-pack/plugins/features/server/feature_registry.test.ts +++ b/x-pack/plugins/features/server/feature_registry.test.ts @@ -200,6 +200,25 @@ describe('FeatureRegistry', () => { }); }); + it('requires only a valid scope registered', () => { + const feature: KibanaFeatureConfig = { + id: 'test-feature', + name: 'Test Feature', + app: [], + category: { id: 'foo', label: 'foo' }, + privileges: null, + // @ts-expect-error + scope: ['foo', 'bar'], + }; + + const featureRegistry = new FeatureRegistry(); + expect(() => + featureRegistry.registerKibanaFeature(feature) + ).toThrowErrorMatchingInlineSnapshot( + `"Feature test-feature has unknown scope entries: foo, bar"` + ); + }); + it(`requires a value for privileges`, () => { const feature: KibanaFeatureConfig = { id: 'test-feature', diff --git a/x-pack/plugins/features/server/feature_registry.ts b/x-pack/plugins/features/server/feature_registry.ts index 4726335ee3d01..686a3f7d5c31d 100644 --- a/x-pack/plugins/features/server/feature_registry.ts +++ b/x-pack/plugins/features/server/feature_registry.ts @@ -15,6 +15,7 @@ import { ElasticsearchFeatureConfig, ElasticsearchFeature, SubFeaturePrivilegeConfig, + KibanaFeatureScope, } from '../common'; import { validateKibanaFeature, validateElasticsearchFeature } from './feature_schema'; import type { ConfigOverridesType } from './config'; @@ -41,6 +42,10 @@ export class FeatureRegistry { throw new Error(`Feature with id ${feature.id} is already registered.`); } + if (!feature.scope) { + feature.scope = [KibanaFeatureScope.Security]; + } + const featureCopy = cloneDeep(feature); this.kibanaFeatures[feature.id] = applyAutomaticPrivilegeGrants(featureCopy); diff --git a/x-pack/plugins/features/server/feature_schema.ts b/x-pack/plugins/features/server/feature_schema.ts index 341bb926b277d..bd60eaa84f51c 100644 --- a/x-pack/plugins/features/server/feature_schema.ts +++ b/x-pack/plugins/features/server/feature_schema.ts @@ -9,7 +9,7 @@ import { schema } from '@kbn/config-schema'; import { difference } from 'lodash'; import { Capabilities as UICapabilities } from '@kbn/core/server'; -import { KibanaFeatureConfig } from '../common'; +import { KibanaFeatureConfig, KibanaFeatureScope } from '../common'; import { FeatureKibanaPrivileges, ElasticsearchFeatureConfig } from '.'; // Each feature gets its own property on the UICapabilities object, @@ -202,6 +202,7 @@ const kibanaFeatureSchema = schema.object({ }), name: schema.string(), category: appCategorySchema, + scope: schema.maybe(schema.arrayOf(schema.string(), { minSize: 1 })), description: schema.maybe(schema.string()), order: schema.maybe(schema.number()), excludeFromBasePrivileges: schema.maybe(schema.boolean()), @@ -211,13 +212,23 @@ const kibanaFeatureSchema = schema.object({ catalogue: schema.maybe(catalogueSchema), alerting: schema.maybe(alertingSchema), cases: schema.maybe(casesSchema), - privileges: schema.oneOf([ - schema.literal(null), - schema.object({ - all: schema.maybe(kibanaPrivilegeSchema), - read: schema.maybe(kibanaPrivilegeSchema), + // Features registered only for the spaces scope should not have a `privileges` property. + // Such features are applicable only to the Spaces Visibility Toggles + privileges: schema.conditional( + schema.siblingRef('scope'), + schema.arrayOf(schema.literal('spaces'), { + minSize: 1, + maxSize: 1, }), - ]), + schema.literal(null), + schema.oneOf([ + schema.literal(null), + schema.object({ + all: schema.maybe(kibanaPrivilegeSchema), + read: schema.maybe(kibanaPrivilegeSchema), + }), + ]) + ), subFeatures: schema.maybe( schema.conditional( schema.siblingRef('privileges'), @@ -275,6 +286,14 @@ const elasticsearchFeatureSchema = schema.object({ export function validateKibanaFeature(feature: KibanaFeatureConfig) { kibanaFeatureSchema.validate(feature); + const unknownScopesEntries = difference(feature.scope ?? [], Object.values(KibanaFeatureScope)); + + if (unknownScopesEntries.length) { + throw new Error( + `Feature ${feature.id} has unknown scope entries: ${unknownScopesEntries.join(', ')}` + ); + } + // the following validation can't be enforced by the Joi schema, since it'd require us looking "up" the object graph for the list of valid value, which they explicitly forbid. const { app = [], management = {}, catalogue = [], alerting = [], cases = [] } = feature; diff --git a/x-pack/plugins/features/server/oss_features.ts b/x-pack/plugins/features/server/oss_features.ts index 90c997352e2ba..abc66ea61b199 100644 --- a/x-pack/plugins/features/server/oss_features.ts +++ b/x-pack/plugins/features/server/oss_features.ts @@ -7,6 +7,7 @@ import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; +import { KibanaFeatureScope } from '../common'; import type { KibanaFeatureConfig, SubFeatureConfig } from '../common'; export interface BuildOSSFeaturesParams { @@ -30,6 +31,7 @@ export const buildOSSFeatures = ({ }, order: 100, category: DEFAULT_APP_CATEGORIES.kibana, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['discover', 'kibana'], catalogue: ['discover'], privileges: { @@ -125,6 +127,7 @@ export const buildOSSFeatures = ({ }, order: 700, category: DEFAULT_APP_CATEGORIES.kibana, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['visualize', 'lens', 'kibana'], catalogue: ['visualize'], privileges: { @@ -189,6 +192,7 @@ export const buildOSSFeatures = ({ }, order: 200, category: DEFAULT_APP_CATEGORIES.kibana, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['dashboards', 'kibana'], catalogue: ['dashboard'], privileges: { @@ -302,6 +306,7 @@ export const buildOSSFeatures = ({ }), order: 1300, category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['dev_tools', 'kibana'], catalogue: ['console', 'searchprofiler', 'grokdebugger'], privileges: { @@ -338,6 +343,7 @@ export const buildOSSFeatures = ({ }), order: 1500, category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['kibana'], catalogue: ['advanced_settings'], management: { @@ -377,6 +383,7 @@ export const buildOSSFeatures = ({ }), order: 1600, category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['kibana'], catalogue: ['indexPatterns'], management: { @@ -416,6 +423,7 @@ export const buildOSSFeatures = ({ }), order: 1600, category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['kibana'], catalogue: [], management: { @@ -455,6 +463,7 @@ export const buildOSSFeatures = ({ }), order: 1600, category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['kibana'], catalogue: [], privilegesTooltip: i18n.translate('xpack.features.filesSharedImagesPrivilegesTooltip', { @@ -488,6 +497,7 @@ export const buildOSSFeatures = ({ }), order: 1700, category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['kibana'], catalogue: ['saved_objects'], management: { @@ -529,6 +539,7 @@ export const buildOSSFeatures = ({ }), order: 1750, category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['kibana'], catalogue: [], privilegesTooltip: i18n.translate('xpack.features.savedQueryManagementTooltip', { diff --git a/x-pack/plugins/features/server/plugin.test.ts b/x-pack/plugins/features/server/plugin.test.ts index d353ee0588d5f..96062085e577e 100644 --- a/x-pack/plugins/features/server/plugin.test.ts +++ b/x-pack/plugins/features/server/plugin.test.ts @@ -188,6 +188,9 @@ describe('Features Plugin', () => { "ui": Array [], }, }, + "scope": Array [ + "security", + ], }, "subFeatures": Array [], } diff --git a/x-pack/plugins/fleet/common/constants/output.ts b/x-pack/plugins/fleet/common/constants/output.ts index fb01ba991d3d2..5f6b247a6b289 100644 --- a/x-pack/plugins/fleet/common/constants/output.ts +++ b/x-pack/plugins/fleet/common/constants/output.ts @@ -139,3 +139,18 @@ export const OUTPUT_TYPES_WITH_PRESET_SUPPORT: Array> = [ ]; export const OUTPUT_HEALTH_DATA_STREAM = 'logs-fleet_server.output_health-default'; + +export const LOGSTASH_API_KEY_CLUSTER_PERMISSIONS = ['monitor', 'manage_own_api_key']; + +export const LOGSTASH_API_KEY_INDICES_PRIVILEGES = ['auto_configure', 'create_doc']; + +export const LOGSTASH_API_KEY_INDICES = [ + 'logs-*-*', + 'metrics-*-*', + 'traces-*-*', + 'synthetics-*-*', + '.logs-endpoint.diagnostic.collection-*', + '.logs-endpoint.action.responses-*', + 'profiling-*', + '.profiling-*', +]; diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index cf611e5f8ae8f..aeef4ba323fa9 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -64,12 +64,11 @@ }, "servers": [ { - "url": "http://KIBANA_HOST:5601/api/fleet", - "description": "Public and supported Fleet API" + "url": "http://KIBANA_HOST:5601" } ], "paths": { - "/health_check": { + "/api/fleet/health_check": { "post": { "summary": "Fleet Server health check", "tags": [ @@ -133,7 +132,7 @@ } } }, - "/setup": { + "/api/fleet/setup": { "post": { "summary": "Initiate Fleet setup", "tags": [ @@ -177,7 +176,7 @@ ] } }, - "/settings": { + "/api/fleet/settings": { "get": { "summary": "Get settings", "tags": [ @@ -247,48 +246,7 @@ "operationId": "update-settings" } }, - "/settings/enrollment": { - "servers": [ - { - "url": "http://KIBANA_HOST:5601/internal/fleet", - "description": "Used for Fleet internals and not supported" - } - ], - "get": { - "summary": "Get enrollment settings", - "tags": [ - "Fleet internals" - ], - "parameters": [ - { - "in": "query", - "name": "agentPolicyId", - "required": false, - "schema": { - "type": "string" - }, - "description": "An agent policy ID to scope the enrollment settings to. For example, that policy's Fleet Server host, its proxy, download location, etc. If not provided, the default Fleet Server policy is used (if any)." - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/fleet_settings_enrollment_response" - } - } - } - }, - "400": { - "$ref": "#/components/responses/error" - } - }, - "operationId": "get-enrollment-settings" - } - }, - "/service-tokens": { + "/api/fleet/service-tokens": { "post": { "summary": "Create service token", "tags": [ @@ -326,7 +284,7 @@ "deprecated": true } }, - "/service_tokens": { + "/api/fleet/service_tokens": { "post": { "summary": "Create service token", "tags": [ @@ -363,7 +321,7 @@ ] } }, - "/epm/verification_key_id": { + "/api/fleet/epm/verification_key_id": { "get": { "summary": "Get package signature verification key ID", "tags": [ @@ -406,7 +364,7 @@ }, "parameters": [] }, - "/epm/bulk_assets": { + "/api/fleet/epm/bulk_assets": { "post": { "summary": "Bulk get assets", "tags": [ @@ -459,7 +417,7 @@ } } }, - "/epm/categories": { + "/api/fleet/epm/categories": { "get": { "summary": "List package categories", "tags": [ @@ -511,7 +469,7 @@ } ] }, - "/epm/packages/limited": { + "/api/fleet/epm/packages/limited": { "get": { "summary": "Get limited package list", "tags": [ @@ -544,7 +502,7 @@ }, "parameters": [] }, - "/epm/packages": { + "/api/fleet/epm/packages": { "get": { "summary": "List packages", "tags": [ @@ -712,7 +670,7 @@ } } }, - "/epm/packages/_bulk": { + "/api/fleet/epm/packages/_bulk": { "post": { "summary": "Bulk install packages", "tags": [ @@ -790,7 +748,7 @@ } } }, - "/epm/packages/{pkgkey}": { + "/api/fleet/epm/packages/{pkgkey}": { "get": { "summary": "Get package", "tags": [ @@ -1047,7 +1005,7 @@ "deprecated": true } }, - "/epm/packages/{pkgName}/{pkgVersion}": { + "/api/fleet/epm/packages/{pkgName}/{pkgVersion}": { "get": { "summary": "Get package", "tags": [ @@ -1414,7 +1372,7 @@ } } }, - "/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize": { + "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize": { "post": { "summary": "Authorize transforms", "tags": [ @@ -1517,7 +1475,7 @@ } } }, - "/epm/packages/{pkgName}/{pkgVersion}/{filePath}": { + "/api/fleet/epm/packages/{pkgName}/{pkgVersion}/{filePath}": { "get": { "summary": "Get package file", "tags": [ @@ -1578,7 +1536,7 @@ } ] }, - "/epm/packages/{pkgName}/stats": { + "/api/fleet/epm/packages/{pkgName}/stats": { "get": { "summary": "Get package stats", "tags": [ @@ -1625,7 +1583,7 @@ } ] }, - "/epm/templates/{pkgName}/{pkgVersion}/inputs": { + "/api/fleet/epm/templates/{pkgName}/{pkgVersion}/inputs": { "get": { "summary": "Get inputs template", "tags": [ @@ -1694,7 +1652,7 @@ } ] }, - "/agents/setup": { + "/api/fleet/agents/setup": { "get": { "summary": "Get agent setup info", "tags": [ @@ -1771,7 +1729,7 @@ ] } }, - "/agent-status": { + "/api/fleet/agent-status": { "get": { "summary": "Get agent status summary", "tags": [ @@ -1842,7 +1800,7 @@ "deprecated": true } }, - "/agent_status": { + "/api/fleet/agent_status": { "get": { "summary": "Get agent status summary", "tags": [ @@ -1933,7 +1891,7 @@ ] } }, - "/agent_status/data": { + "/api/fleet/agent_status/data": { "get": { "summary": "Get incoming agent data", "tags": [ @@ -1986,7 +1944,7 @@ ] } }, - "/agents": { + "/api/fleet/agents": { "get": { "summary": "List agents", "tags": [ @@ -2097,7 +2055,7 @@ } } }, - "/agents/bulk_upgrade": { + "/api/fleet/agents/bulk_upgrade": { "post": { "summary": "Bulk upgrade agents", "tags": [ @@ -2151,7 +2109,7 @@ } } }, - "/agents/action_status": { + "/api/fleet/agents/action_status": { "get": { "summary": "Get agent action status", "tags": [ @@ -2311,7 +2269,7 @@ "operationId": "agents-action-status" } }, - "/agents/{agentId}": { + "/api/fleet/agents/{agentId}": { "parameters": [ { "schema": { @@ -2452,7 +2410,7 @@ ] } }, - "/agents/{agentId}/actions": { + "/api/fleet/agents/{agentId}/actions": { "parameters": [ { "schema": { @@ -2520,7 +2478,7 @@ } } }, - "/agents/actions/{actionId}/cancel": { + "/api/fleet/agents/actions/{actionId}/cancel": { "parameters": [ { "schema": { @@ -2564,7 +2522,7 @@ ] } }, - "/agents/files/{fileId}/{fileName}": { + "/api/fleet/agents/files/{fileId}/{fileName}": { "parameters": [ { "schema": { @@ -2620,7 +2578,7 @@ "operationId": "get-agent-upload-file" } }, - "/agents/files/{fileId}": { + "/api/fleet/agents/files/{fileId}": { "parameters": [ { "schema": { @@ -2667,7 +2625,7 @@ "operationId": "delete-agent-upload-file" } }, - "/agents/{agentId}/reassign": { + "/api/fleet/agents/{agentId}/reassign": { "parameters": [ { "schema": { @@ -2770,7 +2728,7 @@ "deprecated": true } }, - "/agents/{agentId}/unenroll": { + "/api/fleet/agents/{agentId}/unenroll": { "parameters": [ { "schema": { @@ -2847,7 +2805,7 @@ } } }, - "/agents/{agentId}/upgrade": { + "/api/fleet/agents/{agentId}/upgrade": { "parameters": [ { "schema": { @@ -2896,7 +2854,7 @@ } } }, - "/agents/{agentId}/uploads": { + "/api/fleet/agents/{agentId}/uploads": { "parameters": [ { "schema": { @@ -2943,7 +2901,7 @@ "operationId": "list-agent-uploads" } }, - "/agents/bulk_reassign": { + "/api/fleet/agents/bulk_reassign": { "post": { "summary": "Bulk reassign agents", "tags": [ @@ -3015,7 +2973,7 @@ } } }, - "/agents/bulk_unenroll": { + "/api/fleet/agents/bulk_unenroll": { "post": { "summary": "Bulk unenroll agents", "tags": [ @@ -3098,7 +3056,7 @@ } } }, - "/agents/bulk_update_agent_tags": { + "/api/fleet/agents/bulk_update_agent_tags": { "post": { "summary": "Bulk update agent tags", "tags": [ @@ -3188,7 +3146,7 @@ } } }, - "/agents/tags": { + "/api/fleet/agents/tags": { "get": { "summary": "List agent tags", "tags": [ @@ -3212,7 +3170,7 @@ "operationId": "get-agent-tags" } }, - "/agents/{agentId}/request_diagnostics": { + "/api/fleet/agents/{agentId}/request_diagnostics": { "parameters": [ { "schema": { @@ -3280,7 +3238,7 @@ ] } }, - "/agents/bulk_request_diagnostics": { + "/api/fleet/agents/bulk_request_diagnostics": { "post": { "summary": "Bulk request diagnostics from agents", "tags": [ @@ -3362,7 +3320,7 @@ } } }, - "/agent_policies": { + "/api/fleet/agent_policies": { "get": { "summary": "List agent policies", "tags": [ @@ -3482,7 +3440,7 @@ ] } }, - "/agent_policies/{agentPolicyId}": { + "/api/fleet/agent_policies/{agentPolicyId}": { "parameters": [ { "schema": { @@ -3573,7 +3531,7 @@ ] } }, - "/agent_policies/{agentPolicyId}/copy": { + "/api/fleet/agent_policies/{agentPolicyId}/copy": { "parameters": [ { "schema": { @@ -3644,7 +3602,7 @@ } } }, - "/agent_policies/{agentPolicyId}/full": { + "/api/fleet/agent_policies/{agentPolicyId}/full": { "get": { "summary": "Get full agent policy by ID", "tags": [ @@ -3714,7 +3672,7 @@ } ] }, - "/agent_policies/{agentPolicyId}/download": { + "/api/fleet/agent_policies/{agentPolicyId}/download": { "get": { "summary": "Download agent policy by ID", "tags": [ @@ -3777,7 +3735,7 @@ } ] }, - "/agent_policies/_bulk_get": { + "/api/fleet/agent_policies/_bulk_get": { "post": { "summary": "Bulk get agent policies", "tags": [ @@ -3846,7 +3804,7 @@ ] } }, - "/agent_policies/delete": { + "/api/fleet/agent_policies/delete": { "post": { "summary": "Delete agent policy by ID", "tags": [ @@ -3909,7 +3867,7 @@ }, "parameters": [] }, - "/data_streams": { + "/api/fleet/data_streams": { "get": { "summary": "List data streams", "tags": [ @@ -3942,7 +3900,7 @@ }, "parameters": [] }, - "/enrollment-api-keys": { + "/api/fleet/enrollment-api-keys": { "get": { "summary": "List enrollment API keys", "tags": [ @@ -4037,7 +3995,7 @@ "deprecated": true } }, - "/enrollment-api-keys/{keyId}": { + "/api/fleet/enrollment-api-keys/{keyId}": { "parameters": [ { "schema": { @@ -4119,7 +4077,7 @@ "deprecated": true } }, - "/enrollment_api_keys": { + "/api/fleet/enrollment_api_keys": { "get": { "summary": "List enrollment API keys", "tags": [ @@ -4244,7 +4202,7 @@ ] } }, - "/enrollment_api_keys/{keyId}": { + "/api/fleet/enrollment_api_keys/{keyId}": { "parameters": [ { "schema": { @@ -4324,7 +4282,7 @@ ] } }, - "/package_policies": { + "/api/fleet/package_policies": { "get": { "summary": "List package policies", "tags": [ @@ -4435,7 +4393,7 @@ ] } }, - "/package_policies/_bulk_get": { + "/api/fleet/package_policies/_bulk_get": { "post": { "summary": "Bulk get package policies", "tags": [ @@ -4500,7 +4458,7 @@ ] } }, - "/package_policies/delete": { + "/api/fleet/package_policies/delete": { "post": { "summary": "Delete package policy", "tags": [ @@ -4570,7 +4528,7 @@ ] } }, - "/package_policies/upgrade": { + "/api/fleet/package_policies/upgrade": { "post": { "summary": "Upgrade package policy to a newer package version", "tags": [ @@ -4635,7 +4593,7 @@ } } }, - "/package_policies/upgrade/dryrun": { + "/api/fleet/package_policies/upgrade/dryrun": { "post": { "summary": "Dry run package policy upgrade", "tags": [ @@ -4699,7 +4657,7 @@ } } }, - "/package_policies/{packagePolicyId}": { + "/api/fleet/package_policies/{packagePolicyId}": { "parameters": [ { "schema": { @@ -4836,7 +4794,7 @@ ] } }, - "/outputs": { + "/api/fleet/outputs": { "get": { "summary": "List outputs", "tags": [ @@ -4914,7 +4872,7 @@ "operationId": "post-outputs" } }, - "/outputs/{outputId}": { + "/api/fleet/outputs/{outputId}": { "get": { "summary": "Get output by ID", "tags": [ @@ -5029,7 +4987,7 @@ ] } }, - "/outputs/{outputId}/health": { + "/api/fleet/outputs/{outputId}/health": { "get": { "summary": "Get latest output health", "tags": [ @@ -5077,7 +5035,7 @@ } ] }, - "/logstash_api_keys": { + "/api/fleet/logstash_api_keys": { "post": { "summary": "Generate Logstash API key", "tags": [ @@ -5111,7 +5069,7 @@ ] } }, - "/agent_download_sources": { + "/api/fleet/agent_download_sources": { "get": { "summary": "List agent binary download sources", "tags": [ @@ -5207,7 +5165,7 @@ "operationId": "post-download-sources" } }, - "/agent_download_sources/{sourceId}": { + "/api/fleet/agent_download_sources/{sourceId}": { "get": { "summary": "Get agent binary download source by ID", "tags": [ @@ -5344,7 +5302,7 @@ ] } }, - "/fleet_server_hosts": { + "/api/fleet/fleet_server_hosts": { "get": { "summary": "List Fleet Server hosts", "tags": [ @@ -5449,7 +5407,7 @@ "operationId": "post-fleet-server-hosts" } }, - "/fleet_server_hosts/{itemId}": { + "/api/fleet/fleet_server_hosts/{itemId}": { "get": { "summary": "Get Fleet Server host by ID", "tags": [ @@ -5592,7 +5550,7 @@ ] } }, - "/proxies": { + "/api/fleet/proxies": { "get": { "summary": "List proxies", "tags": [ @@ -5696,7 +5654,7 @@ "operationId": "post-fleet-proxies" } }, - "/proxies/{itemId}": { + "/api/fleet/proxies/{itemId}": { "get": { "summary": "Get proxy by ID", "tags": [ @@ -5837,7 +5795,7 @@ ] } }, - "/kubernetes": { + "/api/fleet/kubernetes": { "get": { "summary": "Get full K8s agent manifest", "tags": [ @@ -5892,7 +5850,7 @@ ] } }, - "/uninstall_tokens": { + "/api/fleet/uninstall_tokens": { "get": { "summary": "List metadata for latest uninstall tokens per agent policy", "tags": [ @@ -5980,7 +5938,7 @@ ] } }, - "/uninstall_tokens/{uninstallTokenId}": { + "/api/fleet/uninstall_tokens/{uninstallTokenId}": { "get": { "summary": "Get one decrypted uninstall token by its ID", "tags": [ @@ -6252,166 +6210,6 @@ "item" ] }, - "fleet_server_host": { - "title": "Fleet Server Host", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "is_internal": { - "type": "boolean" - }, - "is_preconfigured": { - "type": "boolean" - }, - "proxy_id": { - "type": "string" - }, - "host_urls": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "fleet_server_hosts", - "id", - "is_default", - "is_preconfigured", - "host_urls" - ] - }, - "proxies": { - "title": "Fleet Proxy", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "proxy_headers": { - "type": "object" - }, - "certificate_authorities": { - "type": "string" - }, - "certificate": { - "type": "string" - }, - "certificate_key": { - "type": "string" - } - }, - "required": [ - "name", - "url" - ] - }, - "download_sources": { - "title": "Download Source", - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "is_default": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "host": { - "type": "string" - }, - "proxy_id": { - "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", - "type": "string", - "nullable": true - } - }, - "required": [ - "is_default", - "name", - "host" - ] - }, - "fleet_settings_enrollment_response": { - "title": "Fleet settings response", - "type": "object", - "properties": { - "fleet_server": { - "type": "object", - "properties": { - "policies": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "is_managed": { - "type": "boolean" - }, - "is_default_fleet_server": { - "type": "boolean" - }, - "has_fleet_server": { - "type": "boolean" - }, - "fleet_server_host_id": { - "type": "string" - }, - "download_source_id": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "is_managed" - ] - } - }, - "has_active": { - "type": "boolean" - }, - "host": { - "$ref": "#/components/schemas/fleet_server_host" - }, - "host_proxy": { - "$ref": "#/components/schemas/proxies" - } - }, - "required": [ - "agent_policies", - "has_active" - ] - }, - "download_source": { - "$ref": "#/components/schemas/download_sources" - } - }, - "required": [ - "fleet_server" - ] - }, "saved_object_type": { "title": "Saved Object type", "oneOf": [ @@ -9528,6 +9326,102 @@ "logstash": "#/components/schemas/output_update_request_logstash" } } + }, + "download_sources": { + "title": "Download Source", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "is_default": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "host": { + "type": "string" + }, + "proxy_id": { + "description": "The ID of the proxy to use for this download source. See the proxies API for more information.", + "type": "string", + "nullable": true + } + }, + "required": [ + "is_default", + "name", + "host" + ] + }, + "fleet_server_host": { + "title": "Fleet Server Host", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "is_default": { + "type": "boolean" + }, + "is_internal": { + "type": "boolean" + }, + "is_preconfigured": { + "type": "boolean" + }, + "proxy_id": { + "type": "string" + }, + "host_urls": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "fleet_server_hosts", + "id", + "is_default", + "is_preconfigured", + "host_urls" + ] + }, + "proxies": { + "title": "Fleet Proxy", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "proxy_headers": { + "type": "object" + }, + "certificate_authorities": { + "type": "string" + }, + "certificate": { + "type": "string" + }, + "certificate_key": { + "type": "string" + } + }, + "required": [ + "name", + "url" + ] } } }, diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index 627adfeb70d36..d5cb90624a196 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -24,12 +24,11 @@ info: name: Fleet Team license: name: Elastic License 2.0 - url: 'https://www.elastic.co/licensing/elastic-license' + url: https://www.elastic.co/licensing/elastic-license servers: - - url: 'http://KIBANA_HOST:5601/api/fleet' - description: Public and supported Fleet API + - url: http://KIBANA_HOST:5601 paths: - /health_check: + /api/fleet/health_check: post: summary: Fleet Server health check tags: @@ -69,7 +68,7 @@ paths: deprecated: true required: - id - /setup: + /api/fleet/setup: post: summary: Initiate Fleet setup tags: @@ -95,7 +94,7 @@ paths: operationId: setup parameters: - $ref: '#/components/parameters/kbn_xsrf' - /settings: + /api/fleet/settings: get: summary: Get settings tags: @@ -139,35 +138,7 @@ paths: '400': $ref: '#/components/responses/error' operationId: update-settings - /settings/enrollment: - servers: - - url: 'http://KIBANA_HOST:5601/internal/fleet' - description: Used for Fleet internals and not supported - get: - summary: Get enrollment settings - tags: - - Fleet internals - parameters: - - in: query - name: agentPolicyId - required: false - schema: - type: string - description: >- - An agent policy ID to scope the enrollment settings to. For example, - that policy's Fleet Server host, its proxy, download location, etc. - If not provided, the default Fleet Server policy is used (if any). - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/fleet_settings_enrollment_response' - '400': - $ref: '#/components/responses/error' - operationId: get-enrollment-settings - /service-tokens: + /api/fleet/service-tokens: post: summary: Create service token tags: @@ -190,7 +161,7 @@ paths: parameters: - $ref: '#/components/parameters/kbn_xsrf' deprecated: true - /service_tokens: + /api/fleet/service_tokens: post: summary: Create service token tags: @@ -212,7 +183,7 @@ paths: operationId: generate-service-token parameters: - $ref: '#/components/parameters/kbn_xsrf' - /epm/verification_key_id: + /api/fleet/epm/verification_key_id: get: summary: Get package signature verification key ID tags: @@ -242,7 +213,7 @@ paths: $ref: '#/components/responses/error' operationId: packages-get-verification-key-id parameters: [] - /epm/bulk_assets: + /api/fleet/epm/bulk_assets: post: summary: Bulk get assets tags: @@ -275,7 +246,7 @@ paths: description: list of items necessary to fetch assets required: - assetIds - /epm/categories: + /api/fleet/epm/categories: get: summary: List package categories tags: @@ -310,7 +281,7 @@ paths: schema: type: boolean default: false - /epm/packages/limited: + /api/fleet/epm/packages/limited: get: summary: Get limited package list tags: @@ -331,7 +302,7 @@ paths: $ref: '#/components/responses/error' operationId: list-limited-packages parameters: [] - /epm/packages: + /api/fleet/epm/packages: get: summary: List packages tags: @@ -445,7 +416,7 @@ paths: schema: type: string format: binary - /epm/packages/_bulk: + /api/fleet/epm/packages/_bulk: post: summary: Bulk install packages tags: @@ -495,7 +466,7 @@ paths: description: force install to ignore package verification errors required: - packages - '/epm/packages/{pkgkey}': + /api/fleet/epm/packages/{pkgkey}: get: summary: Get package tags: @@ -653,7 +624,7 @@ paths: force: type: boolean deprecated: true - '/epm/packages/{pkgName}/{pkgVersion}': + /api/fleet/epm/packages/{pkgName}/{pkgVersion}: get: summary: Get package tags: @@ -881,7 +852,7 @@ paths: properties: force: type: boolean - '/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': + /api/fleet/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize: post: summary: Authorize transforms tags: @@ -947,7 +918,7 @@ paths: properties: transformId: type: string - '/epm/packages/{pkgName}/{pkgVersion}/{filePath}': + /api/fleet/epm/packages/{pkgName}/{pkgVersion}/{filePath}: get: summary: Get package file tags: @@ -985,7 +956,7 @@ paths: name: filePath in: path required: true - '/epm/packages/{pkgName}/stats': + /api/fleet/epm/packages/{pkgName}/stats: get: summary: Get package stats tags: @@ -1013,7 +984,7 @@ paths: name: pkgName in: path required: true - '/epm/templates/{pkgName}/{pkgVersion}/inputs': + /api/fleet/epm/templates/{pkgName}/{pkgVersion}/inputs: get: summary: Get inputs template tags: @@ -1056,7 +1027,7 @@ paths: name: ignoreUnverified description: Ignore if the package is fails signature verification in: query - /agents/setup: + /api/fleet/agents/setup: get: summary: Get agent setup info tags: @@ -1102,7 +1073,7 @@ paths: - admin_password parameters: - $ref: '#/components/parameters/kbn_xsrf' - /agent-status: + /api/fleet/agent-status: get: summary: Get agent status summary tags: @@ -1150,7 +1121,7 @@ paths: in: query required: false deprecated: true - /agent_status: + /api/fleet/agent_status: get: summary: Get agent status summary tags: @@ -1212,7 +1183,7 @@ paths: in: query required: false deprecated: true - /agent_status/data: + /api/fleet/agent_status/data: get: summary: Get incoming agent data tags: @@ -1245,7 +1216,7 @@ paths: name: agentsIds in: query required: true - /agents: + /api/fleet/agents: get: summary: List agents tags: @@ -1305,7 +1276,7 @@ paths: type: string required: - policy_id - /agents/bulk_upgrade: + /api/fleet/agents/bulk_upgrade: post: summary: Bulk upgrade agents tags: @@ -1333,13 +1304,13 @@ paths: $ref: '#/components/schemas/bulk_upgrade_agents' example: version: 8.4.0 - source_uri: 'https://artifacts.elastic.co/downloads/beats/elastic-agent' + source_uri: https://artifacts.elastic.co/downloads/beats/elastic-agent rollout_duration_seconds: 3600 agents: - agent1 - agent2 - start_time: 2022-08-03T14:00:00.000Z - /agents/action_status: + start_time: '2022-08-03T14:00:00.000Z' + /api/fleet/agents/action_status: get: summary: Get agent action status tags: @@ -1454,7 +1425,7 @@ paths: '400': $ref: '#/components/responses/error' operationId: agents-action-status - '/agents/{agentId}': + /api/fleet/agents/{agentId}: parameters: - schema: type: string @@ -1539,7 +1510,7 @@ paths: operationId: delete-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agents/{agentId}/actions': + /api/fleet/agents/{agentId}/actions: parameters: - schema: type: string @@ -1580,7 +1551,7 @@ paths: properties: action: $ref: '#/components/schemas/agent_action' - '/agents/actions/{actionId}/cancel': + /api/fleet/agents/actions/{actionId}/cancel: parameters: - schema: type: string @@ -1606,7 +1577,7 @@ paths: operationId: agent-action-cancel parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agents/files/{fileId}/{fileName}': + /api/fleet/agents/files/{fileId}/{fileName}: parameters: - schema: type: string @@ -1641,7 +1612,7 @@ paths: '400': $ref: '#/components/responses/error' operationId: get-agent-upload-file - '/agents/files/{fileId}': + /api/fleet/agents/files/{fileId}: parameters: - schema: type: string @@ -1670,7 +1641,7 @@ paths: '400': $ref: '#/components/responses/error' operationId: delete-agent-upload-file - '/agents/{agentId}/reassign': + /api/fleet/agents/{agentId}/reassign: parameters: - schema: type: string @@ -1732,7 +1703,7 @@ paths: required: - policy_id deprecated: true - '/agents/{agentId}/unenroll': + /api/fleet/agents/{agentId}/unenroll: parameters: - schema: type: string @@ -1778,7 +1749,7 @@ paths: type: boolean force: type: boolean - '/agents/{agentId}/upgrade': + /api/fleet/agents/{agentId}/upgrade: parameters: - schema: type: string @@ -1807,7 +1778,7 @@ paths: application/json: schema: $ref: '#/components/schemas/upgrade_agent' - '/agents/{agentId}/uploads': + /api/fleet/agents/{agentId}/uploads: parameters: - schema: type: string @@ -1836,7 +1807,7 @@ paths: '400': $ref: '#/components/responses/error' operationId: list-agent-uploads - /agents/bulk_reassign: + /api/fleet/agents/bulk_reassign: post: summary: Bulk reassign agents tags: @@ -1868,7 +1839,7 @@ paths: agents: oneOf: - type: string - description: 'KQL query string, leave empty to action all agents' + description: KQL query string, leave empty to action all agents - type: array items: type: string @@ -1879,7 +1850,7 @@ paths: example: policy_id: policy_id agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' - /agents/bulk_unenroll: + /api/fleet/agents/bulk_unenroll: post: summary: Bulk unenroll agents tags: @@ -1908,7 +1879,7 @@ paths: agents: oneOf: - type: string - description: 'KQL query string, leave empty to action all agents' + description: KQL query string, leave empty to action all agents - type: array items: type: string @@ -1932,7 +1903,7 @@ paths: agents: - agent1 - agent2 - /agents/bulk_update_agent_tags: + /api/fleet/agents/bulk_update_agent_tags: post: summary: Bulk update agent tags tags: @@ -1961,7 +1932,7 @@ paths: agents: oneOf: - type: string - description: 'KQL query string, leave empty to action all agents' + description: KQL query string, leave empty to action all agents - type: array items: type: string @@ -1986,7 +1957,7 @@ paths: - newTag tagsToRemove: - existingTag - /agents/tags: + /api/fleet/agents/tags: get: summary: List agent tags tags: @@ -2001,7 +1972,7 @@ paths: '400': $ref: '#/components/responses/error' operationId: get-agent-tags - '/agents/{agentId}/request_diagnostics': + /api/fleet/agents/{agentId}/request_diagnostics: parameters: - schema: type: string @@ -2040,7 +2011,7 @@ paths: operationId: request-diagnostics-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' - /agents/bulk_request_diagnostics: + /api/fleet/agents/bulk_request_diagnostics: post: summary: Bulk request diagnostics from agents tags: @@ -2071,7 +2042,7 @@ paths: agents: oneOf: - type: string - description: 'KQL query string, leave empty to action all agents' + description: KQL query string, leave empty to action all agents - type: array items: type: string @@ -2087,7 +2058,7 @@ paths: - agents example: agents: 'fleet-agents.policy_id : ("policy1" or "policy2")' - /agent_policies: + /api/fleet/agent_policies: get: summary: List agent policies tags: @@ -2165,7 +2136,7 @@ paths: security: [] parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agent_policies/{agentPolicyId}': + /api/fleet/agent_policies/{agentPolicyId}: parameters: - schema: type: string @@ -2220,7 +2191,7 @@ paths: $ref: '#/components/schemas/agent_policy_update_request' parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agent_policies/{agentPolicyId}/copy': + /api/fleet/agent_policies/{agentPolicyId}/copy: parameters: - schema: type: string @@ -2262,7 +2233,7 @@ paths: required: - name description: '' - '/agent_policies/{agentPolicyId}/full': + /api/fleet/agent_policies/{agentPolicyId}/full: get: summary: Get full agent policy by ID tags: @@ -2303,7 +2274,7 @@ paths: name: kubernetes in: query required: false - '/agent_policies/{agentPolicyId}/download': + /api/fleet/agent_policies/{agentPolicyId}/download: get: summary: Download agent policy by ID tags: @@ -2342,7 +2313,7 @@ paths: name: kubernetes in: query required: false - /agent_policies/_bulk_get: + /api/fleet/agent_policies/_bulk_get: post: summary: Bulk get agent policies tags: @@ -2385,7 +2356,7 @@ paths: security: [] parameters: - $ref: '#/components/parameters/format' - /agent_policies/delete: + /api/fleet/agent_policies/delete: post: summary: Delete agent policy by ID tags: @@ -2426,7 +2397,7 @@ paths: parameters: - $ref: '#/components/parameters/kbn_xsrf' parameters: [] - /data_streams: + /api/fleet/data_streams: get: summary: List data streams tags: @@ -2447,7 +2418,7 @@ paths: $ref: '#/components/responses/error' operationId: data-streams-list parameters: [] - /enrollment-api-keys: + /api/fleet/enrollment-api-keys: get: summary: List enrollment API keys tags: @@ -2509,7 +2480,7 @@ paths: parameters: - $ref: '#/components/parameters/kbn_xsrf' deprecated: true - '/enrollment-api-keys/{keyId}': + /api/fleet/enrollment-api-keys/{keyId}: parameters: - schema: type: string @@ -2560,7 +2531,7 @@ paths: parameters: - $ref: '#/components/parameters/kbn_xsrf' deprecated: true - /enrollment_api_keys: + /api/fleet/enrollment_api_keys: get: summary: List enrollment API keys tags: @@ -2639,7 +2610,7 @@ paths: operationId: create-enrollment-api-keys parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/enrollment_api_keys/{keyId}': + /api/fleet/enrollment_api_keys/{keyId}: parameters: - schema: type: string @@ -2688,7 +2659,7 @@ paths: operationId: delete-enrollment-api-key parameters: - $ref: '#/components/parameters/kbn_xsrf' - /package_policies: + /api/fleet/package_policies: get: summary: List package policies tags: @@ -2755,7 +2726,7 @@ paths: parameters: - $ref: '#/components/parameters/kbn_xsrf' - $ref: '#/components/parameters/format' - /package_policies/_bulk_get: + /api/fleet/package_policies/_bulk_get: post: summary: Bulk get package policies tags: @@ -2795,7 +2766,7 @@ paths: security: [] parameters: - $ref: '#/components/parameters/format' - /package_policies/delete: + /api/fleet/package_policies/delete: post: summary: Delete package policy tags: @@ -2838,7 +2809,7 @@ paths: $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' - /package_policies/upgrade: + /api/fleet/package_policies/upgrade: post: summary: Upgrade package policy to a newer package version tags: @@ -2879,7 +2850,7 @@ paths: $ref: '#/components/responses/error' '409': $ref: '#/components/responses/error' - /package_policies/upgrade/dryrun: + /api/fleet/package_policies/upgrade/dryrun: post: summary: Dry run package policy upgrade tags: @@ -2919,7 +2890,7 @@ paths: - hasErrors '400': $ref: '#/components/responses/error' - '/package_policies/{packagePolicyId}': + /api/fleet/package_policies/{packagePolicyId}: parameters: - schema: type: string @@ -3001,7 +2972,7 @@ paths: type: boolean name: force in: query - /outputs: + /api/fleet/outputs: get: summary: List outputs tags: @@ -3050,7 +3021,7 @@ paths: schema: $ref: '#/components/schemas/output_create_request' operationId: post-outputs - '/outputs/{outputId}': + /api/fleet/outputs/{outputId}: get: summary: Get output by ID tags: @@ -3119,7 +3090,7 @@ paths: $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/outputs/{outputId}/health': + /api/fleet/outputs/{outputId}/health: get: summary: Get latest output health tags: @@ -3134,7 +3105,7 @@ paths: properties: state: type: string - description: 'state of output, HEALTHY or DEGRADED' + description: state of output, HEALTHY or DEGRADED message: type: string description: long message if unhealthy @@ -3150,7 +3121,7 @@ paths: name: outputId in: path required: true - /logstash_api_keys: + /api/fleet/logstash_api_keys: post: summary: Generate Logstash API key tags: @@ -3170,7 +3141,7 @@ paths: operationId: generate-logstash-api-key parameters: - $ref: '#/components/parameters/kbn_xsrf' - /agent_download_sources: + /api/fleet/agent_download_sources: get: summary: List agent binary download sources tags: @@ -3231,7 +3202,7 @@ paths: - host - is_default operationId: post-download-sources - '/agent_download_sources/{sourceId}': + /api/fleet/agent_download_sources/{sourceId}: get: summary: Get agent binary download source by ID tags: @@ -3315,7 +3286,7 @@ paths: $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' - /fleet_server_hosts: + /api/fleet/fleet_server_hosts: get: summary: List Fleet Server hosts tags: @@ -3384,7 +3355,7 @@ paths: - name - host_urls operationId: post-fleet-server-hosts - '/fleet_server_hosts/{itemId}': + /api/fleet/fleet_server_hosts/{itemId}: get: summary: Get Fleet Server host by ID tags: @@ -3474,7 +3445,7 @@ paths: $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' - /proxies: + /api/fleet/proxies: get: summary: List proxies tags: @@ -3540,7 +3511,7 @@ paths: - name - url operationId: post-fleet-proxies - '/proxies/{itemId}': + /api/fleet/proxies/{itemId}: get: summary: Get proxy by ID tags: @@ -3626,7 +3597,7 @@ paths: $ref: '#/components/responses/error' parameters: - $ref: '#/components/parameters/kbn_xsrf' - /kubernetes: + /api/fleet/kubernetes: get: summary: Get full K8s agent manifest tags: @@ -3660,7 +3631,7 @@ paths: name: enrolToken in: query required: false - /uninstall_tokens: + /api/fleet/uninstall_tokens: get: summary: List metadata for latest uninstall tokens per agent policy tags: @@ -3718,7 +3689,7 @@ paths: required: false schema: type: string - '/uninstall_tokens/{uninstallTokenId}': + /api/fleet/uninstall_tokens/{uninstallTokenId}: get: summary: Get one decrypted uninstall token by its ID tags: @@ -3833,7 +3804,7 @@ components: with_metrics: name: withMetrics in: query - description: 'Return agent metrics, false by default' + description: Return agent metrics, false by default required: false schema: type: boolean @@ -3909,118 +3880,6 @@ components: $ref: '#/components/schemas/settings' required: - item - fleet_server_host: - title: Fleet Server Host - type: object - properties: - id: - type: string - name: - type: string - is_default: - type: boolean - is_internal: - type: boolean - is_preconfigured: - type: boolean - proxy_id: - type: string - host_urls: - type: array - items: - type: string - required: - - fleet_server_hosts - - id - - is_default - - is_preconfigured - - host_urls - proxies: - title: Fleet Proxy - type: object - properties: - id: - type: string - name: - type: string - url: - type: string - proxy_headers: - type: object - certificate_authorities: - type: string - certificate: - type: string - certificate_key: - type: string - required: - - name - - url - download_sources: - title: Download Source - type: object - properties: - id: - type: string - is_default: - type: boolean - name: - type: string - host: - type: string - proxy_id: - description: >- - The ID of the proxy to use for this download source. See the proxies - API for more information. - type: string - nullable: true - required: - - is_default - - name - - host - fleet_settings_enrollment_response: - title: Fleet settings response - type: object - properties: - fleet_server: - type: object - properties: - policies: - type: array - items: - type: object - properties: - id: - type: string - name: - type: string - is_managed: - type: boolean - is_default_fleet_server: - type: boolean - has_fleet_server: - type: boolean - fleet_server_host_id: - type: string - download_source_id: - type: string - required: - - id - - name - - is_managed - has_active: - type: boolean - host: - $ref: '#/components/schemas/fleet_server_host' - host_proxy: - $ref: '#/components/schemas/proxies' - required: - - agent_policies - - has_active - download_source: - $ref: '#/components/schemas/download_sources' - required: - - fleet_server saved_object_type: title: Saved Object type oneOf: @@ -4720,14 +4579,14 @@ components: agents: oneOf: - type: string - description: 'KQL query string, leave empty to action all agents' + description: KQL query string, leave empty to action all agents - type: array items: type: string description: list of agent IDs force: type: boolean - description: 'Force upgrade, skipping validation (should be used with caution)' + description: Force upgrade, skipping validation (should be used with caution) skipRateLimitCheck: type: boolean description: Skip rate limit check for upgrade @@ -4772,7 +4631,7 @@ components: type: string force: type: boolean - description: 'Force upgrade, skipping validation (should be used with caution)' + description: Force upgrade, skipping validation (should be used with caution) skipRateLimitCheck: type: boolean description: Skip rate limit check for upgrade @@ -5407,7 +5266,7 @@ components: properties: enabled: type: boolean - description: 'enable or disable that input, (default to true)' + description: enable or disable that input, (default to true) vars: type: object description: >- @@ -5423,7 +5282,7 @@ components: properties: enabled: type: boolean - description: 'enable or disable that stream, (default to true)' + description: enable or disable that stream, (default to true) vars: type: object description: >- @@ -6180,5 +6039,74 @@ components: elasticsearch: '#/components/schemas/output_update_request_elasticsearch' kafka: '#/components/schemas/output_update_request_kafka' logstash: '#/components/schemas/output_update_request_logstash' + download_sources: + title: Download Source + type: object + properties: + id: + type: string + is_default: + type: boolean + name: + type: string + host: + type: string + proxy_id: + description: >- + The ID of the proxy to use for this download source. See the proxies + API for more information. + type: string + nullable: true + required: + - is_default + - name + - host + fleet_server_host: + title: Fleet Server Host + type: object + properties: + id: + type: string + name: + type: string + is_default: + type: boolean + is_internal: + type: boolean + is_preconfigured: + type: boolean + proxy_id: + type: string + host_urls: + type: array + items: + type: string + required: + - fleet_server_hosts + - id + - is_default + - is_preconfigured + - host_urls + proxies: + title: Fleet Proxy + type: object + properties: + id: + type: string + name: + type: string + url: + type: string + proxy_headers: + type: object + certificate_authorities: + type: string + certificate: + type: string + certificate_key: + type: string + required: + - name + - url security: - basicAuth: [] diff --git a/x-pack/plugins/fleet/common/openapi/entrypoint.yaml b/x-pack/plugins/fleet/common/openapi/entrypoint.yaml index 1ba15cb190f11..0e2f59d80ae11 100644 --- a/x-pack/plugins/fleet/common/openapi/entrypoint.yaml +++ b/x-pack/plugins/fleet/common/openapi/entrypoint.yaml @@ -26,178 +26,177 @@ info: name: Elastic License 2.0 url: https://www.elastic.co/licensing/elastic-license servers: - - url: 'http://KIBANA_HOST:5601/api/fleet' - description: Public and supported Fleet API + - url: 'http://KIBANA_HOST:5601' paths: # Fleet internals - /health_check: + /api/fleet/health_check: $ref: paths/health_check.yaml - /setup: + /api/fleet/setup: $ref: paths/setup.yaml - /settings: + /api/fleet/settings: $ref: paths/settings.yaml - /settings/enrollment: - servers: - - url: 'http://KIBANA_HOST:5601/internal/fleet' - description: Used for Fleet internals and not supported - $ref: paths/settings_enrollment.yaml - /service-tokens: + # /internal/fleet/settings/enrollment: + # servers: + # - url: 'http://KIBANA_HOST:5601/internal/fleet' + # description: Used for Fleet internals and not supported + # $ref: paths/settings_enrollment.yaml + /api/fleet/service-tokens: $ref: paths/service_tokens_deprecated.yaml - /service_tokens: + /api/fleet/service_tokens: $ref: paths/service_tokens.yaml # EPM / integrations endpoints - /epm/verification_key_id: + /api/fleet/epm/verification_key_id: $ref: paths/epm@verification_key_id.yaml - /epm/bulk_assets: + /api/fleet/epm/bulk_assets: $ref: paths/epm@bulk_assets.yaml - /epm/categories: + /api/fleet/epm/categories: $ref: paths/epm@categories.yaml - /epm/packages/limited: + /api/fleet/epm/packages/limited: $ref: paths/epm@limited_list.yaml - /epm/packages: + /api/fleet/epm/packages: $ref: paths/epm@packages.yaml - /epm/packages/_bulk: + /api/fleet/epm/packages/_bulk: $ref: paths/epm@packages_bulk.yaml - '/epm/packages/{pkgkey}': + '/api/fleet/epm/packages/{pkgkey}': $ref: 'paths/epm@packages@{pkgkey}_deprecated.yaml' - '/epm/packages/{pkgName}/{pkgVersion}': + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}': $ref: 'paths/epm@packages@{pkg_name}@{pkg_version}.yaml' - '/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize': $ref: 'paths/epm@packages@{pkg_name}@{pkg_version}@transforms@authorize.yaml' - '/epm/packages/{pkgName}/{pkgVersion}/{filePath}': + '/api/fleet/epm/packages/{pkgName}/{pkgVersion}/{filePath}': $ref: paths/epm@get_file.yaml - '/epm/packages/{pkgName}/stats': + '/api/fleet/epm/packages/{pkgName}/stats': $ref: 'paths/epm@packages@{pkg_name}@stats.yaml' - '/epm/templates/{pkgName}/{pkgVersion}/inputs': + '/api/fleet/epm/templates/{pkgName}/{pkgVersion}/inputs': $ref: 'paths/epm@templates@{pkg_name}@{pkg_version}@inputs.yaml' # Agent endpoints - /agents/setup: + /api/fleet/agents/setup: $ref: paths/agents@setup.yaml - /agent-status: + /api/fleet/agent-status: $ref: paths/agent_status_deprecated.yaml - /agent_status: + /api/fleet/agent_status: $ref: paths/agent_status.yaml - /agent_status/data: + /api/fleet/agent_status/data: $ref: paths/agent_status@data.yaml - /agents: + /api/fleet/agents: $ref: paths/agents.yaml - /agents/bulk_upgrade: + /api/fleet/agents/bulk_upgrade: $ref: paths/agents@bulk_upgrade.yaml - /agents/action_status: + /api/fleet/agents/action_status: $ref: paths/agents@action_status.yaml - '/agents/{agentId}': + '/api/fleet/agents/{agentId}': $ref: 'paths/agents@{agent_id}.yaml' - '/agents/{agentId}/actions': + '/api/fleet/agents/{agentId}/actions': $ref: 'paths/agents@{agent_id}@actions.yaml' - '/agents/actions/{actionId}/cancel': + '/api/fleet/agents/actions/{actionId}/cancel': $ref: 'paths/agents@actions@{action_id}@cancel.yaml' - '/agents/files/{fileId}/{fileName}': + '/api/fleet/agents/files/{fileId}/{fileName}': $ref: 'paths/agents@files@{file_id}@{file_name}.yaml' - '/agents/files/{fileId}': + '/api/fleet/agents/files/{fileId}': $ref: 'paths/agents@files@{file_id}.yaml' - '/agents/{agentId}/reassign': + '/api/fleet/agents/{agentId}/reassign': $ref: 'paths/agents@{agent_id}@reassign.yaml' - '/agents/{agentId}/unenroll': + '/api/fleet/agents/{agentId}/unenroll': $ref: 'paths/agents@{agent_id}@unenroll.yaml' - '/agents/{agentId}/upgrade': + '/api/fleet/agents/{agentId}/upgrade': $ref: 'paths/agents@{agent_id}@upgrade.yaml' - '/agents/{agentId}/uploads': + '/api/fleet/agents/{agentId}/uploads': $ref: 'paths/agents@{agent_id}@uploads.yaml' - '/agents/bulk_reassign': + '/api/fleet/agents/bulk_reassign': $ref: 'paths/agents@bulk_reassign.yaml' - '/agents/bulk_unenroll': + '/api/fleet/agents/bulk_unenroll': $ref: 'paths/agents@bulk_unenroll.yaml' - '/agents/bulk_update_agent_tags': + '/api/fleet/agents/bulk_update_agent_tags': $ref: 'paths/agents@bulk_update_tags.yaml' - /agents/tags: + /api/fleet/agents/tags: $ref: paths/agent_tags.yaml - '/agents/{agentId}/request_diagnostics': + '/api/fleet/agents/{agentId}/request_diagnostics': $ref: 'paths/agents@{agent_id}@request_diagnostics.yaml' - /agents/bulk_request_diagnostics: + /api/fleet/agents/bulk_request_diagnostics: $ref: 'paths/agents@bulk_request_diagnostics.yaml' # Agent policies endpoints - /agent_policies: + /api/fleet/agent_policies: $ref: paths/agent_policies.yaml - '/agent_policies/{agentPolicyId}': + '/api/fleet/agent_policies/{agentPolicyId}': $ref: 'paths/agent_policies@{agent_policy_id}.yaml' - '/agent_policies/{agentPolicyId}/copy': + '/api/fleet/agent_policies/{agentPolicyId}/copy': $ref: 'paths/agent_policies@{agent_policy_id}@copy.yaml' - '/agent_policies/{agentPolicyId}/full': + '/api/fleet/agent_policies/{agentPolicyId}/full': $ref: 'paths/agent_policies@{agent_policy_id}@full.yaml' - '/agent_policies/{agentPolicyId}/download': + '/api/fleet/agent_policies/{agentPolicyId}/download': $ref: 'paths/agent_policies@{agent_policy_id}@download.yaml' - /agent_policies/_bulk_get: + /api/fleet/agent_policies/_bulk_get: $ref: paths/agent_policies@_bulk_get.yaml - /agent_policies/delete: + /api/fleet/agent_policies/delete: $ref: paths/agent_policies@delete.yaml # Data streams endpoints - /data_streams: + /api/fleet/data_streams: $ref: paths/data_streams.yaml # Enrollment endpoints - /enrollment-api-keys: + /api/fleet/enrollment-api-keys: $ref: paths/enrollment_api_keys_deprecated.yaml - '/enrollment-api-keys/{keyId}': + '/api/fleet/enrollment-api-keys/{keyId}': $ref: 'paths/enrollment_api_keys@{key_id}_deprecated.yaml' - /enrollment_api_keys: + /api/fleet/enrollment_api_keys: $ref: paths/enrollment_api_keys.yaml - '/enrollment_api_keys/{keyId}': + '/api/fleet/enrollment_api_keys/{keyId}': $ref: 'paths/enrollment_api_keys@{key_id}.yaml' # Package policies endpoints - /package_policies: + /api/fleet/package_policies: $ref: paths/package_policies.yaml - /package_policies/_bulk_get: + /api/fleet/package_policies/_bulk_get: $ref: paths/package_policies@_bulk_get.yaml - /package_policies/delete: + /api/fleet/package_policies/delete: $ref: paths/package_policies@delete.yaml - /package_policies/upgrade: + /api/fleet/package_policies/upgrade: $ref: paths/package_policies@upgrade.yaml - /package_policies/upgrade/dryrun: + /api/fleet/package_policies/upgrade/dryrun: $ref: paths/package_policies@upgrade_dryrun.yaml - '/package_policies/{packagePolicyId}': + '/api/fleet/package_policies/{packagePolicyId}': $ref: 'paths/package_policies@{package_policy_id}.yaml' # Outputs - /outputs: + /api/fleet/outputs: $ref: paths/outputs.yaml - /outputs/{outputId}: + '/api/fleet/outputs/{outputId}': $ref: paths/outputs@{output_id}.yaml - /outputs/{outputId}/health: + '/api/fleet/outputs/{outputId}/health': $ref: paths/output_health@{output_id}.yaml - /logstash_api_keys: + /api/fleet/logstash_api_keys: $ref: paths/logstash_api_keys.yaml # Agent binary download sources - /agent_download_sources: + /api/fleet/agent_download_sources: $ref: paths/agent_download_sources.yaml - /agent_download_sources/{sourceId}: + '/api/fleet/agent_download_sources/{sourceId}': $ref: paths/agent_download_sources@{source_id}.yaml # Fleet server hosts - /fleet_server_hosts: + /api/fleet/fleet_server_hosts: $ref: paths/fleet_server_hosts.yaml - /fleet_server_hosts/{itemId}: + '/api/fleet/fleet_server_hosts/{itemId}': $ref: paths/fleet_server_hosts@{item_id}.yaml # Fleet proxies - /proxies: + /api/fleet/proxies: $ref: paths/proxies.yaml - /proxies/{itemId}: + '/api/fleet/proxies/{itemId}': $ref: paths/proxies@{item_id}.yaml # K8s - /kubernetes: + /api/fleet/kubernetes: $ref: paths/kubernetes.yaml # Uninstall tokens - /uninstall_tokens: + /api/fleet/uninstall_tokens: $ref: paths/uninstall_tokens.yaml - /uninstall_tokens/{uninstallTokenId}: + '/api/fleet/uninstall_tokens/{uninstallTokenId}': $ref: paths/uninstall_tokens@{uninstall_token_id}.yaml components: securitySchemes: diff --git a/x-pack/plugins/fleet/common/types/rest_spec/download_sources.ts b/x-pack/plugins/fleet/common/types/rest_spec/download_sources.ts index 0313753ebae13..04e1b920c6224 100644 --- a/x-pack/plugins/fleet/common/types/rest_spec/download_sources.ts +++ b/x-pack/plugins/fleet/common/types/rest_spec/download_sources.ts @@ -10,7 +10,7 @@ import type { DownloadSourceBase, DownloadSource } from '../models'; import type { ListResult } from './common'; export interface GetOneDownloadSourceResponse { - item: DownloadSourceBase; + item: DownloadSource; } export interface DeleteDownloadSourceResponse { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/hooks/use_package_policy.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/hooks/use_package_policy.tsx index 49425e62e8a6b..ec2771df920cd 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/hooks/use_package_policy.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/hooks/use_package_policy.tsx @@ -74,7 +74,7 @@ export function usePackagePolicyWithRelatedData( description: '', namespace: '', policy_id: '', - policy_ids: [''], + policy_ids: [], enabled: true, inputs: [], version: '', diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.test.tsx index f893f7a7e7aeb..384920b252a5a 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.test.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/edit_package_policy_page/index.test.tsx @@ -564,6 +564,7 @@ describe('edit package policy page', () => { policy_ids: ['agent-policy-1', 'agent-policy-2'], }) ); + expect(sendGetAgentStatus).toHaveBeenCalledTimes(1); }); it('should not remove managed policy when policies are modified', async () => { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx index 0535bc9c6af62..51f3fe68a9d95 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx @@ -8,6 +8,8 @@ import React, { useState, useMemo, useCallback } from 'react'; import { differenceBy, isEqual } from 'lodash'; import { EuiSpacer, EuiPortal } from '@elastic/eui'; +import { isStuckInUpdating } from '../../../../../../common/services/agent_status'; + import type { Agent } from '../../../types'; import { @@ -348,7 +350,7 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { setAgentToUpgrade(undefined); refreshAgents(); }} - isUpdating={Boolean(agentToUpgrade.upgrade_started_at && !agentToUpgrade.upgraded_at)} + isUpdating={isStuckInUpdating(agentToUpgrade)} /> )} diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx index 4133752733269..d074454b0fe14 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/index.tsx @@ -310,12 +310,6 @@ export const EditOutputFlyout: React.FunctionComponent = data-test-subj="settingsOutputsFlyout.typeInput" {...inputs.typeInput.props} options={OUTPUT_TYPE_OPTIONS} - placeholder={i18n.translate( - 'xpack.fleet.settings.editOutputFlyout.typeInputPlaceholder', - { - defaultMessage: 'Specify type', - } - )} /> {renderTypeSpecificWarning()} diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka.tsx index a9c5c587c60f7..a0e72aae1ef42 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka.tsx @@ -66,12 +66,6 @@ export const OutputFormKafkaSection: React.FunctionComponent = (props) => data-test-subj="settingsOutputsFlyout.kafkaVersionInput" {...inputs.kafkaVersionInput.props} options={kafkaVersionOptions} - placeholder={i18n.translate( - 'xpack.fleet.settings.editOutputFlyout.kafkaVersionInputPlaceholder', - { - defaultMessage: 'Specify version', - } - )} />
    diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka_authentication.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka_authentication.tsx index 199b92d4de98e..8f2cef9ee044f 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka_authentication.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/edit_output_flyout/output_form_kafka_authentication.tsx @@ -379,12 +379,6 @@ export const OutputFormKafkaAuthentication: React.FunctionComponent<{ data-test-subj="settingsOutputsFlyout.kafkaVerificationModeInput" {...inputs.kafkaVerificationModeInput.props} options={kafkaVerificationModeOptions} - placeholder={i18n.translate( - 'xpack.fleet.settings.editOutputFlyout.kafkaVerificationModeInputPlaceholder', - { - defaultMessage: 'Specify verification mode', - } - )} />
    diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/hooks.ts b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/hooks.ts deleted file mode 100644 index 228140ac290b6..0000000000000 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/hooks.ts +++ /dev/null @@ -1,47 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { useState, useMemo, useCallback } from 'react'; -import { i18n } from '@kbn/i18n'; - -import { sendPostLogstashApiKeys, useStartServices } from '../../../../hooks'; - -export function useLogstashApiKey() { - const [isLoading, setIsLoading] = useState(false); - const [apiKey, setApiKey] = useState(); - const { notifications } = useStartServices(); - - const generateApiKey = useCallback(async () => { - try { - setIsLoading(true); - - const res = await sendPostLogstashApiKeys(); - if (res.error) { - throw res.error; - } - - setApiKey(res.data?.api_key); - } catch (err) { - notifications.toasts.addError(err, { - title: i18n.translate('xpack.fleet.settings.logstashInstructions.generateApiKeyError', { - defaultMessage: 'Impossible to generate an api key', - }), - }); - } finally { - setIsLoading(false); - } - }, [notifications.toasts]); - - return useMemo( - () => ({ - isLoading, - generateApiKey, - apiKey, - }), - [isLoading, generateApiKey, apiKey] - ); -} diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/hooks.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/hooks.tsx new file mode 100644 index 0000000000000..78e8b930b45aa --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/settings/components/logstash_instructions/hooks.tsx @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState, useMemo, useCallback } from 'react'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { EuiCode } from '@elastic/eui'; +import { toMountPoint } from '@kbn/react-kibana-mount'; + +import { + LOGSTASH_API_KEY_CLUSTER_PERMISSIONS, + LOGSTASH_API_KEY_INDICES, + LOGSTASH_API_KEY_INDICES_PRIVILEGES, +} from '../../../../../../../common/constants'; +import { sendPostLogstashApiKeys, useStartServices } from '../../../../hooks'; + +export function useLogstashApiKey() { + const [isLoading, setIsLoading] = useState(false); + const [apiKey, setApiKey] = useState(); + const startServices = useStartServices(); + const { notifications } = startServices; + const generateApiKey = useCallback(async () => { + try { + setIsLoading(true); + + const res = await sendPostLogstashApiKeys(); + if (res.error) { + throw res.error; + } + + setApiKey(res.data?.api_key); + } catch (err) { + if (err.statusCode === 403) { + notifications.toasts.addDanger( + { + title: i18n.translate('xpack.fleet.settings.logstashInstructions.generateApiKeyError', { + defaultMessage: 'Cannot generate an API key', + }), + text: toMountPoint( + {LOGSTASH_API_KEY_CLUSTER_PERMISSIONS.join(', ')} + ), + indexPermissions: ( + {LOGSTASH_API_KEY_INDICES_PRIVILEGES.join(', ')} + ), + indexes: LOGSTASH_API_KEY_INDICES.map((index) => ( + + {index} +
    +
    + )), + br:
    , + }} + />, + startServices + ), + }, + {} + ); + } else { + notifications.toasts.addError(err, { + title: i18n.translate('xpack.fleet.settings.logstashInstructions.generateApiKeyError', { + defaultMessage: 'Cannot generate an API key', + }), + }); + } + } finally { + setIsLoading(false); + } + }, [notifications.toasts, startServices]); + + return useMemo( + () => ({ + isLoading, + generateApiKey, + apiKey, + }), + [isLoading, generateApiKey, apiKey] + ); +} diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/configs/index.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/configs/index.tsx index e80665631f3ea..bfee718daa12c 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/configs/index.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/configs/index.tsx @@ -134,7 +134,7 @@ export const Configs: React.FC = ({ packageInfo }) => { overflowHeight={1000} data-test-subj="configsTab.codeblock" > - {configs} + {configs as React.ReactNode} )} diff --git a/x-pack/plugins/fleet/public/hooks/use_url_pagination.ts b/x-pack/plugins/fleet/public/hooks/use_url_pagination.ts index b73a298a704ff..6bc3f0c9d20b2 100644 --- a/x-pack/plugins/fleet/public/hooks/use_url_pagination.ts +++ b/x-pack/plugins/fleet/public/hooks/use_url_pagination.ts @@ -39,8 +39,8 @@ export const useUrlPagination = (): UrlPagination => { ...location, search: toUrlParams({ ...urlParams, - currentPage, - pageSize, + currentPage: String(currentPage), + pageSize: String(pageSize), }), }); }, diff --git a/x-pack/plugins/fleet/server/integration_tests/cloud_preconfiguration.test.ts b/x-pack/plugins/fleet/server/integration_tests/cloud_preconfiguration.test.ts index 97bd1145fa5ca..9d529738aa6da 100644 --- a/x-pack/plugins/fleet/server/integration_tests/cloud_preconfiguration.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/cloud_preconfiguration.test.ts @@ -30,7 +30,8 @@ import { const logFilePath = Path.join(__dirname, 'logs.log'); -describe('Fleet cloud preconfiguration', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('Fleet cloud preconfiguration', () => { let esServer: TestElasticsearchUtils; let kbnServer: TestKibanaUtils; diff --git a/x-pack/plugins/fleet/server/integration_tests/ha_setup.test.ts b/x-pack/plugins/fleet/server/integration_tests/ha_setup.test.ts index 25ab8fd65ae1f..c0405b2523fa7 100644 --- a/x-pack/plugins/fleet/server/integration_tests/ha_setup.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/ha_setup.test.ts @@ -90,7 +90,8 @@ const createAndSetupRoot = async (config?: object) => { /** * Verifies that multiple Kibana instances running in parallel will not create duplicate preconfiguration objects. */ -describe('Fleet setup preconfiguration with multiple instances Kibana', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('Fleet setup preconfiguration with multiple instances Kibana', () => { let esServer: TestElasticsearchUtils; // let esClient: Client; let roots: Root[] = []; diff --git a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts index 929853d080967..b3d9b65a1f3ef 100644 --- a/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts +++ b/x-pack/plugins/fleet/server/integration_tests/reset_preconfiguration.test.ts @@ -22,7 +22,8 @@ import { useDockerRegistry, waitForFleetSetup, getSupertestWithAdminUser } from const logFilePath = Path.join(__dirname, 'logs.log'); -describe('Fleet preconfiguration reset', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('Fleet preconfiguration reset', () => { let esServer: TestElasticsearchUtils; let kbnServer: TestKibanaUtils; diff --git a/x-pack/plugins/fleet/server/plugin.ts b/x-pack/plugins/fleet/server/plugin.ts index c2451005ecb4a..3967c3b6abc7c 100644 --- a/x-pack/plugins/fleet/server/plugin.ts +++ b/x-pack/plugins/fleet/server/plugin.ts @@ -55,6 +55,7 @@ import type { SpacesPluginStart } from '@kbn/spaces-plugin/server'; import type { SavedObjectTaggingStart } from '@kbn/saved-objects-tagging-plugin/server'; import { SECURITY_EXTENSION_ID } from '@kbn/core-saved-objects-server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import type { FleetConfigType } from '../common/types'; import type { FleetAuthz } from '../common'; @@ -317,6 +318,7 @@ export class FleetPlugin id: `fleetv2`, name: 'Fleet', category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [PLUGIN_ID], catalogue: ['fleet'], privilegesTooltip: i18n.translate('xpack.fleet.serverPlugin.privilegesTooltip', { @@ -479,6 +481,7 @@ export class FleetPlugin id: 'fleet', // for BWC name: 'Integrations', category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [INTEGRATIONS_PLUGIN_ID], catalogue: ['fleet'], privileges: { diff --git a/x-pack/plugins/fleet/server/routes/epm/handlers.ts b/x-pack/plugins/fleet/server/routes/epm/handlers.ts index 560af83619a48..47bdbd972b4c7 100644 --- a/x-pack/plugins/fleet/server/routes/epm/handlers.ts +++ b/x-pack/plugins/fleet/server/routes/epm/handlers.ts @@ -142,9 +142,12 @@ export const getInstalledListHandler: FleetRequestHandler< TypeOf > = async (context, request, response) => { try { - const savedObjectsClient = (await context.fleet).internalSoClient; + const [fleetContext, coreContext] = await Promise.all([context.fleet, context.core]); + const savedObjectsClient = fleetContext.internalSoClient; + const esClient = coreContext.elasticsearch.client.asCurrentUser; const res = await getInstalledPackages({ savedObjectsClient, + esClient, ...request.query, }); diff --git a/x-pack/plugins/fleet/server/services/agent_policy.test.ts b/x-pack/plugins/fleet/server/services/agent_policy.test.ts index 37bc2abe4c27c..9f42746c9c5fa 100644 --- a/x-pack/plugins/fleet/server/services/agent_policy.test.ts +++ b/x-pack/plugins/fleet/server/services/agent_policy.test.ts @@ -952,8 +952,11 @@ describe('Agent policy', () => { }); } }); - - await agentPolicyService.removeOutputFromAll(soClient, esClient, 'output-id-123'); + mockedAppContextService.getInternalUserSOClientWithoutSpaceExtension.mockReturnValue( + soClient + ); + mockedAppContextService.getInternalUserSOClientForSpaceId.mockReturnValue(soClient); + await agentPolicyService.removeOutputFromAll(esClient, 'output-id-123'); expect(mockedAgentPolicyServiceUpdate).toHaveBeenCalledTimes(2); expect(mockedAgentPolicyServiceUpdate).toHaveBeenCalledWith( @@ -993,6 +996,10 @@ describe('Agent policy', () => { mockedDownloadSourceService.getDefaultDownloadSourceId.mockResolvedValue( 'default-download-source-id' ); + mockedAppContextService.getInternalUserSOClientWithoutSpaceExtension.mockReturnValue( + soClient + ); + mockedAppContextService.getInternalUserSOClientForSpaceId.mockReturnValue(soClient); soClient.find.mockResolvedValue({ saved_objects: [ { @@ -1010,11 +1017,7 @@ describe('Agent policy', () => { ], } as any); - await agentPolicyService.removeDefaultSourceFromAll( - soClient, - esClient, - 'default-download-source-id' - ); + await agentPolicyService.removeDefaultSourceFromAll(esClient, 'default-download-source-id'); expect(mockedAgentPolicyServiceUpdate).toHaveBeenCalledTimes(2); expect(mockedAgentPolicyServiceUpdate).toHaveBeenCalledWith( diff --git a/x-pack/plugins/fleet/server/services/agent_policy.ts b/x-pack/plugins/fleet/server/services/agent_policy.ts index 38c785520b510..999448f7cae47 100644 --- a/x-pack/plugins/fleet/server/services/agent_policy.ts +++ b/x-pack/plugins/fleet/server/services/agent_policy.ts @@ -18,6 +18,7 @@ import type { SavedObjectsClientContract, SavedObject, SavedObjectsUpdateResponse, + SavedObjectsFindOptions, } from '@kbn/core/server'; import { SavedObjectsUtils } from '@kbn/core/server'; @@ -538,6 +539,7 @@ class AgentPolicyService { fields?: string[]; esClient?: ElasticsearchClient; withAgentCount?: boolean; + spaceId?: string; } ): Promise<{ items: AgentPolicy[]; @@ -555,9 +557,10 @@ class AgentPolicyService { kuery, withPackagePolicies = false, fields, + spaceId, } = options; - const baseFindParams = { + const baseFindParams: SavedObjectsFindOptions = { type: savedObjectType, sortField, sortOrder, @@ -565,6 +568,11 @@ class AgentPolicyService { perPage, ...(fields ? { fields } : {}), }; + + if (spaceId) { + baseFindParams.namespaces = [spaceId]; + } + const filter = kuery ? normalizeKuery(savedObjectType, kuery) : undefined; let agentPoliciesSO; try { @@ -839,24 +847,22 @@ class AgentPolicyService { /** * Remove an output from all agent policies that are using it, and replace the output by the default ones. - * @param soClient * @param esClient * @param outputId */ - public async removeOutputFromAll( - soClient: SavedObjectsClientContract, - esClient: ElasticsearchClient, - outputId: string - ) { + public async removeOutputFromAll(esClient: ElasticsearchClient, outputId: string) { const savedObjectType = await getAgentPolicySavedObjectType(); const agentPolicies = ( - await soClient.find({ - type: savedObjectType, - fields: ['revision', 'data_output_id', 'monitoring_output_id'], - searchFields: ['data_output_id', 'monitoring_output_id'], - search: escapeSearchQueryPhrase(outputId), - perPage: SO_SEARCH_LIMIT, - }) + await appContextService + .getInternalUserSOClientWithoutSpaceExtension() + .find({ + type: savedObjectType, + fields: ['revision', 'data_output_id', 'monitoring_output_id'], + searchFields: ['data_output_id', 'monitoring_output_id'], + search: escapeSearchQueryPhrase(outputId), + perPage: SO_SEARCH_LIMIT, + namespaces: ['*'], + }) ).saved_objects.map(mapAgentPolicySavedObjectToAgentPolicy); if (agentPolicies.length > 0) { @@ -869,6 +875,9 @@ class AgentPolicyService { await pMap( agentPolicies, async (agentPolicy) => { + const soClient = appContextService.getInternalUserSOClientForSpaceId( + agentPolicy.space_ids?.[0] + ); const existingAgentPolicy = await this.get(soClient, agentPolicy.id, true); if (!existingAgentPolicy) { @@ -888,10 +897,14 @@ class AgentPolicyService { ); await pMap( agentPolicies, - (agentPolicy) => - this.update(soClient, esClient, agentPolicy.id, getAgentPolicy(agentPolicy), { + (agentPolicy) => { + const soClient = appContextService.getInternalUserSOClientForSpaceId( + agentPolicy.space_ids?.[0] + ); + return this.update(soClient, esClient, agentPolicy.id, getAgentPolicy(agentPolicy), { skipValidation: true, - }), + }); + }, { concurrency: 50, } @@ -903,28 +916,35 @@ class AgentPolicyService { * Remove a Fleet Server from all agent policies that are using it, to use the default one instead. */ public async removeFleetServerHostFromAll( - soClient: SavedObjectsClientContract, esClient: ElasticsearchClient, fleetServerHostId: string ) { const savedObjectType = await getAgentPolicySavedObjectType(); const agentPolicies = ( - await soClient.find({ - type: savedObjectType, - fields: ['revision', 'fleet_server_host_id'], - searchFields: ['fleet_server_host_id'], - search: escapeSearchQueryPhrase(fleetServerHostId), - perPage: SO_SEARCH_LIMIT, - }) + await appContextService + .getInternalUserSOClientWithoutSpaceExtension() + .find({ + type: savedObjectType, + fields: ['revision', 'fleet_server_host_id'], + searchFields: ['fleet_server_host_id'], + search: escapeSearchQueryPhrase(fleetServerHostId), + perPage: SO_SEARCH_LIMIT, + namespaces: ['*'], + }) ).saved_objects.map(mapAgentPolicySavedObjectToAgentPolicy); if (agentPolicies.length > 0) { await pMap( agentPolicies, (agentPolicy) => - this.update(soClient, esClient, agentPolicy.id, { - fleet_server_host_id: null, - }), + this.update( + appContextService.getInternalUserSOClientForSpaceId(agentPolicy.space_ids?.[0]), + esClient, + agentPolicy.id, + { + fleet_server_host_id: null, + } + ), { concurrency: 50, } @@ -1185,7 +1205,9 @@ class AgentPolicyService { }); } - await soClient.delete(savedObjectType, id); + await soClient.delete(savedObjectType, id, { + force: true, // need to delete through multiple space + }); await this.triggerAgentPolicyUpdatedEvent(esClient, 'deleted', id, { spaceId: soClient.getCurrentNamespace(), }); @@ -1445,35 +1467,36 @@ class AgentPolicyService { * @param esClient * @param downloadSourceId */ - public async removeDefaultSourceFromAll( - soClient: SavedObjectsClientContract, - esClient: ElasticsearchClient, - downloadSourceId: string - ) { + public async removeDefaultSourceFromAll(esClient: ElasticsearchClient, downloadSourceId: string) { const savedObjectType = await getAgentPolicySavedObjectType(); const agentPolicies = ( - await soClient.find({ - type: savedObjectType, - fields: ['revision', 'download_source_id'], - searchFields: ['download_source_id'], - search: escapeSearchQueryPhrase(downloadSourceId), - perPage: SO_SEARCH_LIMIT, - }) - ).saved_objects.map((so) => ({ - id: so.id, - ...so.attributes, - })); + await appContextService + .getInternalUserSOClientWithoutSpaceExtension() + .find({ + type: savedObjectType, + fields: ['revision', 'download_source_id'], + searchFields: ['download_source_id'], + search: escapeSearchQueryPhrase(downloadSourceId), + perPage: SO_SEARCH_LIMIT, + namespaces: ['*'], + }) + ).saved_objects.map(mapAgentPolicySavedObjectToAgentPolicy); if (agentPolicies.length > 0) { await pMap( agentPolicies, (agentPolicy) => - this.update(soClient, esClient, agentPolicy.id, { - download_source_id: - agentPolicy.download_source_id === downloadSourceId - ? null - : agentPolicy.download_source_id, - }), + this.update( + appContextService.getInternalUserSOClientForSpaceId(agentPolicy.space_ids?.[0]), + esClient, + agentPolicy.id, + { + download_source_id: + agentPolicy.download_source_id === downloadSourceId + ? null + : agentPolicy.download_source_id, + } + ), { concurrency: 50, } diff --git a/x-pack/plugins/fleet/server/services/api_keys/logstash_api_keys.ts b/x-pack/plugins/fleet/server/services/api_keys/logstash_api_keys.ts index 66888223b02d1..cf6a68f5c0271 100644 --- a/x-pack/plugins/fleet/server/services/api_keys/logstash_api_keys.ts +++ b/x-pack/plugins/fleet/server/services/api_keys/logstash_api_keys.ts @@ -7,6 +7,12 @@ import type { ElasticsearchClient } from '@kbn/core/server'; +import { + LOGSTASH_API_KEY_CLUSTER_PERMISSIONS, + LOGSTASH_API_KEY_INDICES, + LOGSTASH_API_KEY_INDICES_PRIVILEGES, +} from '../../../common/constants'; + /** * Check if an esClient has enought permission to create a valid API key for logstash * @@ -14,20 +20,11 @@ import type { ElasticsearchClient } from '@kbn/core/server'; */ export async function canCreateLogstashApiKey(esClient: ElasticsearchClient) { const res = await esClient.security.hasPrivileges({ - cluster: ['monitor', 'manage_own_api_key'], + cluster: LOGSTASH_API_KEY_CLUSTER_PERMISSIONS, index: [ { - names: [ - 'logs-*-*', - 'metrics-*-*', - 'traces-*-*', - 'synthetics-*-*', - '.logs-endpoint.diagnostic.collection-*', - '.logs-endpoint.action.responses-*', - 'profiling-*', - '.profiling-*', - ], - privileges: ['auto_configure', 'create_doc'], + names: LOGSTASH_API_KEY_INDICES, + privileges: LOGSTASH_API_KEY_INDICES_PRIVILEGES, }, ], }); diff --git a/x-pack/plugins/fleet/server/services/download_source.ts b/x-pack/plugins/fleet/server/services/download_source.ts index e679123f7e255..21b5ac8355ae8 100644 --- a/x-pack/plugins/fleet/server/services/download_source.ts +++ b/x-pack/plugins/fleet/server/services/download_source.ts @@ -156,7 +156,6 @@ class DownloadSourceService { throw new DownloadSourceError(`Default Download source ${id} cannot be deleted.`); } await agentPolicyService.removeDefaultSourceFromAll( - soClient, appContextService.getInternalUserESClient(), id ); diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.test.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.test.ts index 989c28e205052..371ea4a470eaf 100644 --- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.test.ts @@ -1867,6 +1867,110 @@ describe('EPM template', () => { }, }); }); + + it('should fill constant keywords from previous mappings', async () => { + const esClient = elasticsearchServiceMock.createElasticsearchClient(); + esClient.indices.getDataStream.mockResponse({ + data_streams: [{ name: 'test-constant.keyword-default' }], + } as any); + esClient.indices.get.mockResponse({ + 'test-constant.keyword-default': { + mappings: { + properties: { + some_keyword_field: { + type: 'constant_keyword', + }, + }, + }, + }, + } as any); + esClient.indices.simulateTemplate.mockResponse({ + template: { + settings: { index: {} }, + mappings: { + properties: { + some_keyword_field: { + type: 'constant_keyword', + value: 'some_value', + }, + }, + }, + }, + } as any); + const logger = loggerMock.create(); + await updateCurrentWriteIndices(esClient, logger, [ + { + templateName: 'test', + indexTemplate: { + index_patterns: ['test-constant.keyword-*'], + template: { + template: { + settings: { index: {} }, + mappings: { properties: {} }, + }, + }, + } as any, + }, + ]); + const putMappingsCalls = esClient.indices.putMapping.mock.calls; + expect(putMappingsCalls).toHaveLength(1); + expect(putMappingsCalls[0][0]).toEqual({ + index: 'test-constant.keyword-default', + body: { + properties: { + some_keyword_field: { + type: 'constant_keyword', + value: 'some_value', + }, + }, + }, + write_index_only: true, + }); + }); + + it('should not error when previous mappings are not found', async () => { + const esClient = elasticsearchServiceMock.createElasticsearchClient(); + esClient.indices.getDataStream.mockResponse({ + data_streams: [{ name: 'test-constant.keyword-default' }], + } as any); + esClient.indices.get.mockResponse({ + 'test-constant.keyword-default': { + mappings: { + properties: { + some_keyword_field: { + type: 'constant_keyword', + }, + }, + }, + }, + } as any); + esClient.indices.simulateTemplate.mockResponse({ + template: {}, + } as any); + const logger = loggerMock.create(); + await updateCurrentWriteIndices(esClient, logger, [ + { + templateName: 'test', + indexTemplate: { + index_patterns: ['test-constant.keyword-*'], + template: { + template: { + settings: { index: {} }, + mappings: { properties: {} }, + }, + }, + } as any, + }, + ]); + const putMappingsCalls = esClient.indices.putMapping.mock.calls; + expect(putMappingsCalls).toHaveLength(1); + expect(putMappingsCalls[0][0]).toEqual({ + index: 'test-constant.keyword-default', + body: {}, + write_index_only: true, + }); + }); + it('should rollover on expected error', async () => { const esClient = elasticsearchServiceMock.createElasticsearchClient(); esClient.indices.getDataStream.mockResponse({ diff --git a/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.ts b/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.ts index efd621e9cc63a..3709975c57a5e 100644 --- a/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.ts +++ b/x-pack/plugins/fleet/server/services/epm/elasticsearch/template/template.ts @@ -1027,10 +1027,16 @@ const updateExistingDataStream = async ({ ); settings = simulateResult.template.settings; - mappings = fillConstantKeywordValues( - currentBackingIndexConfig?.mappings || {}, - simulateResult.template.mappings - ); + + try { + mappings = fillConstantKeywordValues( + currentBackingIndexConfig?.mappings || {}, + simulateResult.template.mappings || {} + ); + } catch (err) { + logger.error(`Error filling constant keyword values: ${err}`); + mappings = simulateResult.template.mappings; + } lifecycle = simulateResult.template.lifecycle; diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts b/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts index 31896033d2432..2dc295762e33a 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/get.test.ts @@ -8,7 +8,7 @@ import type { SavedObjectsClientContract, SavedObjectsFindResult } from '@kbn/core/server'; import { SavedObjectsErrorHelpers } from '@kbn/core/server'; -import { savedObjectsClientMock } from '@kbn/core/server/mocks'; +import { savedObjectsClientMock, elasticsearchServiceMock } from '@kbn/core/server/mocks'; import { ASSETS_SAVED_OBJECT_TYPE, @@ -17,7 +17,7 @@ import { } from '../../../../common'; import type { RegistryPackage } from '../../../../common/types'; import type { PackagePolicySOAttributes } from '../../../types'; - +import { dataStreamService } from '../../data_streams'; import { createAppContextStartContractMock } from '../../../mocks'; import { appContextService } from '../../app_context'; import { PackageNotFoundError } from '../../../errors'; @@ -32,6 +32,7 @@ import { getInstalledPackages, getPackageInfo, getPackages, getPackageUsageStats jest.mock('../registry'); jest.mock('../../settings'); jest.mock('../../audit_logging'); +jest.mock('../../data_streams'); const MockRegistry = jest.mocked(Registry); @@ -643,6 +644,7 @@ owner: elastic`, }); await getInstalledPackages({ + esClient: elasticsearchServiceMock.createInternalClient(), savedObjectsClient: soClient, dataStreamType: 'logs', nameQuery: 'nginx', @@ -785,6 +787,7 @@ owner: elastic`, }); const results = await getInstalledPackages({ + esClient: elasticsearchServiceMock.createInternalClient(), savedObjectsClient: soClient, dataStreamType: 'logs', nameQuery: 'nginx', @@ -816,6 +819,84 @@ owner: elastic`, total: 5, }); }); + it('filter non active datastreams if flag is true', async () => { + const soClient = savedObjectsClientMock.create(); + + jest.mocked(dataStreamService.getAllFleetDataStreams).mockResolvedValue([ + { + name: `logs-elastic_agent.apm_server-production`, + }, + { + name: `metrics-elastic_agent.apm_server-production`, + }, + ] as any); + + soClient.find.mockImplementation(async (options) => { + if (options.type === PACKAGES_SAVED_OBJECT_TYPE) { + return { + total: 5, + saved_objects: [ + { + type: 'epm-packages', + id: 'elastic_agent', + attributes: { + es_index_patterns: { + fleet_server_logs: 'logs-elastic_agent.fleet_server-*', + apm_server_logs: 'logs-elastic_agent.apm_server-*', + apm_server_metrics: 'metrics-elastic_agent.apm_server-*', + }, + name: 'elastic_agent', + version: '1.8.0', + install_status: 'installed', + }, + references: [], + sort: ['elastic_agent'], + }, + ], + } as any; + } else if (options.type === ASSETS_SAVED_OBJECT_TYPE) { + return { + total: 5, + saved_objects: [ + { + type: 'epm-packages-assets', + id: '338b6f9e-e126-5f1e-abb9-afe017d4788b', + attributes: { + package_name: 'elastic_agent', + package_version: '1.8.0', + install_source: 'upload', + asset_path: 'elastic_agent-1.8.0/manifest.yml', + media_type: 'text/yaml; charset=utf-8', + data_utf8: + 'name: elastic_agent\ntitle: Elastic Agent\nversion: 1.8.0\ndescription: Collect logs and metrics from Elastic Agents.\ntype: integration\nformat_version: 1.0.0\nlicense: basic\ncategories: ["elastic_stack"]\nconditions:\n kibana.version: "^8.7.1"\nowner:\n github: elastic/elastic-agent\nicons:\n - src: /img/logo_elastic_agent.svg\n title: logo Elastic Agent\n size: 64x64\n type: image/svg+xml\nscreenshots:\n - src: /img/elastic_agent_overview.png\n title: Elastic Agent Overview\n size: 2560×1234\n type: image/png\n - src: /img/elastic_agent_metrics.png\n title: Elastic Agent Metrics\n size: 2560×1234\n type: image/png\n - src: /img/elastic_agent_info.png\n title: Elastic Agent Information\n size: 2560×1234\n type: image/png\n - src: /img/elastic_agent_integrations.png\n title: Elastic Agent Integrations\n size: 2560×1234\n type: image/png\n', + data_base64: '', + }, + references: [], + }, + ], + } as any; + } + }); + + const results = await getInstalledPackages({ + savedObjectsClient: soClient, + esClient: elasticsearchServiceMock.createInternalClient(), + perPage: 10, + sortOrder: 'asc', + showOnlyActiveDataStreams: true, + }); + + expect(results.items[0].dataStreams).toEqual([ + { + name: 'logs-elastic_agent.apm_server-*', + title: 'apm_server_logs', + }, + { + name: 'metrics-elastic_agent.apm_server-*', + title: 'apm_server_metrics', + }, + ]); + }); }); describe('getPackageInfo', () => { diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get.ts b/x-pack/plugins/fleet/server/services/epm/packages/get.ts index 2af0f1e9f1d2b..e59f0ad4b5ae9 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/get.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/get.ts @@ -7,12 +7,17 @@ import { safeLoad } from 'js-yaml'; import pMap from 'p-map'; -import type { SavedObjectsClientContract, SavedObjectsFindOptions } from '@kbn/core/server'; +import minimatch from 'minimatch'; +import type { + ElasticsearchClient, + SavedObjectsClientContract, + SavedObjectsFindOptions, +} from '@kbn/core/server'; import semverGte from 'semver/functions/gte'; import type { Logger } from '@kbn/core/server'; import { withSpan } from '@kbn/apm-utils'; -import type { SortResults } from '@elastic/elasticsearch/lib/api/types'; +import type { IndicesDataStream, SortResults } from '@elastic/elasticsearch/lib/api/types'; import { nodeBuilder } from '@kbn/es-query'; @@ -50,6 +55,7 @@ import { PackageInvalidArchiveError, } from '../../../errors'; import { appContextService } from '../..'; +import { dataStreamService } from '../../data_streams'; import * as Registry from '../registry'; import type { PackageAsset } from '../archive/storage'; import { getEsPackage } from '../archive/storage'; @@ -180,20 +186,22 @@ export async function getPackages( interface GetInstalledPackagesOptions { savedObjectsClient: SavedObjectsClientContract; + esClient: ElasticsearchClient; dataStreamType?: PackageDataStreamTypes; nameQuery?: string; searchAfter?: SortResults; perPage: number; sortOrder: 'asc' | 'desc'; + showOnlyActiveDataStreams?: boolean; } export async function getInstalledPackages(options: GetInstalledPackagesOptions) { - const { savedObjectsClient, ...otherOptions } = options; + const { savedObjectsClient, esClient, showOnlyActiveDataStreams, ...otherOptions } = options; const { dataStreamType } = otherOptions; - const packageSavedObjects = await getInstalledPackageSavedObjects( - savedObjectsClient, - otherOptions - ); + const [packageSavedObjects, allFleetDataStreams] = await Promise.all([ + getInstalledPackageSavedObjects(savedObjectsClient, otherOptions), + showOnlyActiveDataStreams ? dataStreamService.getAllFleetDataStreams(esClient) : undefined, + ]); const integrations = packageSavedObjects.saved_objects.map((integrationSavedObject) => { const { @@ -203,7 +211,11 @@ export async function getInstalledPackages(options: GetInstalledPackagesOptions) es_index_patterns: esIndexPatterns, } = integrationSavedObject.attributes; - const dataStreams = getInstalledPackageSavedObjectDataStreams(esIndexPatterns, dataStreamType); + const dataStreams = getInstalledPackageSavedObjectDataStreams( + esIndexPatterns, + dataStreamType, + allFleetDataStreams + ); return { name, @@ -296,7 +308,7 @@ export async function getPackageSavedObjects( async function getInstalledPackageSavedObjects( savedObjectsClient: SavedObjectsClientContract, - options: Omit + options: Omit ) { const { searchAfter, sortOrder, perPage, nameQuery, dataStreamType } = options; @@ -385,8 +397,13 @@ export async function getInstalledPackageManifests( function getInstalledPackageSavedObjectDataStreams( indexPatterns: Record, - dataStreamType?: string + dataStreamType?: string, + filterActiveDatastreams?: IndicesDataStream[] ) { + const filterActiveDatastreamsName = filterActiveDatastreams + ? filterActiveDatastreams.map((ds) => ds.name) + : undefined; + return Object.entries(indexPatterns) .map(([key, value]) => { return { @@ -395,11 +412,22 @@ function getInstalledPackageSavedObjectDataStreams( }; }) .filter((stream) => { - if (!dataStreamType) { - return true; - } else { - return stream.name.startsWith(`${dataStreamType}-`); + if (dataStreamType && !stream.name.startsWith(`${dataStreamType}-`)) { + return false; } + + if (filterActiveDatastreamsName) { + const patternRegex = new minimatch.Minimatch(stream.name, { + noglobstar: true, + nonegate: true, + }).makeRe(); + + return filterActiveDatastreamsName.some((dataStreamName) => + dataStreamName.match(patternRegex) + ); + } + + return true; }); } diff --git a/x-pack/plugins/fleet/server/services/fleet_server_host.ts b/x-pack/plugins/fleet/server/services/fleet_server_host.ts index 41eaf2b0e86a3..c28a065cca63e 100644 --- a/x-pack/plugins/fleet/server/services/fleet_server_host.ts +++ b/x-pack/plugins/fleet/server/services/fleet_server_host.ts @@ -142,7 +142,7 @@ export async function deleteFleetServerHost( ); } - await agentPolicyService.removeFleetServerHostFromAll(soClient, esClient, id); + await agentPolicyService.removeFleetServerHostFromAll(esClient, id); return await soClient.delete(FLEET_SERVER_HOST_SAVED_OBJECT_TYPE, id); } diff --git a/x-pack/plugins/fleet/server/services/output.ts b/x-pack/plugins/fleet/server/services/output.ts index bd5066d3ffc43..96a056c7a9603 100644 --- a/x-pack/plugins/fleet/server/services/output.ts +++ b/x-pack/plugins/fleet/server/services/output.ts @@ -153,6 +153,7 @@ async function getAgentPoliciesPerOutput(outputId?: string, isDefault?: boolean) const directAgentPolicies = await agentPolicyService.list(internalSoClientWithoutSpaceExtension, { kuery: agentPoliciesKuery, perPage: SO_SEARCH_LIMIT, + spaceId: '*', }); const directAgentPolicyIds = directAgentPolicies?.items.map((policy) => policy.id); @@ -162,6 +163,7 @@ async function getAgentPoliciesPerOutput(outputId?: string, isDefault?: boolean) const packagePolicySOs = await packagePolicyService.list(internalSoClientWithoutSpaceExtension, { kuery: packagePoliciesKuery, perPage: SO_SEARCH_LIMIT, + spaceId: '*', }); const agentPolicyIdsFromPackagePolicies = [ ...new Set( @@ -234,6 +236,7 @@ async function findPoliciesWithFleetServerOrSynthetics(outputId?: string, isDefa internalSoClientWithoutSpaceExtension, { fields: ['policy_ids', 'package.name'], + spaceId: '*', kuery: [FLEET_APM_PACKAGE, FLEET_SYNTHETICS_PACKAGE, FLEET_SERVER_PACKAGE] .map((packageName) => `${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name:${packageName}`) .join(' or '), @@ -820,20 +823,9 @@ class OutputService { throw new OutputUnauthorizedError(`Default monitoring output ${id} cannot be deleted.`); } - const internalSoClientWithoutSpaceExtension = - appContextService.getInternalUserSOClientWithoutSpaceExtension(); + await packagePolicyService.removeOutputFromAll(appContextService.getInternalUserESClient(), id); - await packagePolicyService.removeOutputFromAll( - internalSoClientWithoutSpaceExtension, - appContextService.getInternalUserESClient(), - id - ); - - await agentPolicyService.removeOutputFromAll( - internalSoClientWithoutSpaceExtension, - appContextService.getInternalUserESClient(), - id - ); + await agentPolicyService.removeOutputFromAll(appContextService.getInternalUserESClient(), id); auditLoggingService.writeCustomSoAuditLog({ action: 'delete', diff --git a/x-pack/plugins/fleet/server/services/package_policy.test.ts b/x-pack/plugins/fleet/server/services/package_policy.test.ts index fa86c4b0b9e2d..f0558aaa8fe26 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.test.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.test.ts @@ -5157,8 +5157,14 @@ describe('Package policy service', () => { }); } }); + appContextService.start( + createAppContextStartContractMock(undefined, false, { + internal: soClient, + withoutSpaceExtensions: soClient, + }) + ); - await packagePolicyService.removeOutputFromAll(soClient, esClient, 'output-id-123'); + await packagePolicyService.removeOutputFromAll(esClient, 'output-id-123'); expect(updateSpy).toHaveBeenCalledTimes(1); expect(updateSpy).toHaveBeenCalledWith( diff --git a/x-pack/plugins/fleet/server/services/package_policy.ts b/x-pack/plugins/fleet/server/services/package_policy.ts index c1970548e98fa..32058445d0745 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.ts @@ -1369,7 +1369,10 @@ class PackagePolicyClientImpl implements PackagePolicyClient { const secretsToDelete: string[] = []; if (idsToDelete.length > 0) { const { statuses } = await soClient.bulkDelete( - idsToDelete.map((id) => ({ id, type: savedObjectType })) + idsToDelete.map((id) => ({ id, type: savedObjectType })), + { + force: true, // need to delete through multiple space + } ); statuses.forEach(({ id, success, error }) => { @@ -2030,20 +2033,19 @@ class PackagePolicyClientImpl implements PackagePolicyClient { } } - public async removeOutputFromAll( - soClient: SavedObjectsClientContract, - esClient: ElasticsearchClient, - outputId: string - ) { + public async removeOutputFromAll(esClient: ElasticsearchClient, outputId: string) { const savedObjectType = await getPackagePolicySavedObjectType(); const packagePolicies = ( - await soClient.find({ - type: savedObjectType, - fields: ['name', 'enabled', 'policy_ids', 'inputs', 'output_id'], - searchFields: ['output_id'], - search: escapeSearchQueryPhrase(outputId), - perPage: SO_SEARCH_LIMIT, - }) + await appContextService + .getInternalUserSOClientWithoutSpaceExtension() + .find({ + type: savedObjectType, + fields: ['name', 'enabled', 'policy_ids', 'inputs', 'output_id'], + searchFields: ['output_id'], + search: escapeSearchQueryPhrase(outputId), + perPage: SO_SEARCH_LIMIT, + namespaces: ['*'], + }) ).saved_objects.map(mapPackagePolicySavedObjectToPackagePolicy); if (packagePolicies.length > 0) { @@ -2060,6 +2062,9 @@ class PackagePolicyClientImpl implements PackagePolicyClient { await pMap( packagePolicies, async (packagePolicy) => { + const soClient = appContextService.getInternalUserSOClientForSpaceId( + packagePolicy.spaceIds?.[0] + ); const existingPackagePolicy = await this.get(soClient, packagePolicy.id); if (!existingPackagePolicy) { @@ -2087,6 +2092,9 @@ class PackagePolicyClientImpl implements PackagePolicyClient { await pMap( packagePolicies, (packagePolicy) => { + const soClient = appContextService.getInternalUserSOClientForSpaceId( + packagePolicy.spaceIds?.[0] + ); return this.update( soClient, esClient, diff --git a/x-pack/plugins/fleet/server/services/package_policy_service.ts b/x-pack/plugins/fleet/server/services/package_policy_service.ts index 8b47f42380935..46913642843cf 100644 --- a/x-pack/plugins/fleet/server/services/package_policy_service.ts +++ b/x-pack/plugins/fleet/server/services/package_policy_service.ts @@ -225,11 +225,7 @@ export interface PackagePolicyClient { * @param esClient * @param outputId */ - removeOutputFromAll( - soClient: SavedObjectsClientContract, - esClient: ElasticsearchClient, - outputId: string - ): Promise; + removeOutputFromAll(esClient: ElasticsearchClient, outputId: string): Promise; /** * Returns an `AsyncIterable` for retrieving all integration policy IDs diff --git a/x-pack/plugins/fleet/server/types/rest_spec/epm.ts b/x-pack/plugins/fleet/server/types/rest_spec/epm.ts index 358d2c8d6345d..8f2ffe24fcf2a 100644 --- a/x-pack/plugins/fleet/server/types/rest_spec/epm.ts +++ b/x-pack/plugins/fleet/server/types/rest_spec/epm.ts @@ -35,6 +35,7 @@ export const GetInstalledPackagesRequestSchema = { schema.literal('profiling'), ]) ), + showOnlyActiveDataStreams: schema.maybe(schema.boolean()), nameQuery: schema.maybe(schema.string()), searchAfter: schema.maybe(schema.arrayOf(schema.oneOf([schema.string(), schema.number()]))), perPage: schema.number({ defaultValue: 15 }), diff --git a/x-pack/plugins/graph/server/plugin.ts b/x-pack/plugins/graph/server/plugin.ts index 27d3577e047a2..aa794fcd98a55 100644 --- a/x-pack/plugins/graph/server/plugin.ts +++ b/x-pack/plugins/graph/server/plugin.ts @@ -12,6 +12,7 @@ import { LicensingPluginSetup, LicensingPluginStart } from '@kbn/licensing-plugi import { HomeServerPluginSetup } from '@kbn/home-plugin/server'; import { FeaturesPluginSetup } from '@kbn/features-plugin/server'; import { ContentManagementServerSetup } from '@kbn/content-management-plugin/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { LicenseState } from './lib/license_state'; import { registerSearchRoute } from './routes/search'; import { registerExploreRoute } from './routes/explore'; @@ -68,6 +69,7 @@ export class GraphPlugin implements Plugin { }), order: 600, category: DEFAULT_APP_CATEGORIES.kibana, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['graph', 'kibana'], catalogue: ['graph'], minimumLicense: 'platinum', diff --git a/x-pack/plugins/index_lifecycle_management/public/extend_index_management/components/index_lifecycle_summary.tsx b/x-pack/plugins/index_lifecycle_management/public/extend_index_management/components/index_lifecycle_summary.tsx index 1d828a758b277..ac96deaef92e4 100644 --- a/x-pack/plugins/index_lifecycle_management/public/extend_index_management/components/index_lifecycle_summary.tsx +++ b/x-pack/plugins/index_lifecycle_management/public/extend_index_management/components/index_lifecycle_summary.tsx @@ -26,7 +26,7 @@ import { import { euiThemeVars } from '@kbn/ui-theme'; import { ApplicationStart } from '@kbn/core/public'; -import { Index, IndexDetailsTab } from '@kbn/index-management'; +import { Index, IndexDetailsTab } from '@kbn/index-management-shared-types'; import { IlmExplainLifecycleLifecycleExplainManaged } from '@elastic/elasticsearch/lib/api/types'; import { Phase } from '../../../common/types'; import { getPolicyEditPath } from '../../application/services/navigation'; diff --git a/x-pack/plugins/index_lifecycle_management/tsconfig.json b/x-pack/plugins/index_lifecycle_management/tsconfig.json index a70e757e8a8e0..7c3913fcae1bd 100644 --- a/x-pack/plugins/index_lifecycle_management/tsconfig.json +++ b/x-pack/plugins/index_lifecycle_management/tsconfig.json @@ -37,7 +37,7 @@ "@kbn/shared-ux-router", "@kbn/ui-theme", "@kbn/shared-ux-link-redirect-app", - "@kbn/index-management", + "@kbn/index-management-shared-types", "@kbn/react-kibana-context-render", "@kbn/unsaved-changes-prompt", "@kbn/shared-ux-table-persist", diff --git a/x-pack/plugins/index_management/common/constants/index.ts b/x-pack/plugins/index_management/common/constants/index.ts index abb931468498c..2174985095ea5 100644 --- a/x-pack/plugins/index_management/common/constants/index.ts +++ b/x-pack/plugins/index_management/common/constants/index.ts @@ -54,6 +54,6 @@ export { export { MAJOR_VERSION } from './plugin'; -export { Section, IndexDetailsSection } from '@kbn/index-management'; -export type { IndexDetailsTab, IndexDetailsTabId } from '@kbn/index-management'; +export { Section, IndexDetailsSection } from '@kbn/index-management-shared-types'; +export type { IndexDetailsTab, IndexDetailsTabId } from '@kbn/index-management-shared-types'; export * from './allow_auto_create'; diff --git a/x-pack/plugins/index_management/common/lib/enrich_policies.ts b/x-pack/plugins/index_management/common/lib/enrich_policies.ts index fc7e15addec86..7c3d4852b5e64 100644 --- a/x-pack/plugins/index_management/common/lib/enrich_policies.ts +++ b/x-pack/plugins/index_management/common/lib/enrich_policies.ts @@ -6,7 +6,7 @@ */ import type { EnrichSummary, EnrichPolicyType } from '@elastic/elasticsearch/lib/api/types'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; export const getPolicyType = (policy: EnrichSummary): EnrichPolicyType => { if (policy.config.match) { diff --git a/x-pack/plugins/index_management/common/types/indices.ts b/x-pack/plugins/index_management/common/types/indices.ts index 555fe1c331ae0..612aaf3bd6c9b 100644 --- a/x-pack/plugins/index_management/common/types/indices.ts +++ b/x-pack/plugins/index_management/common/types/indices.ts @@ -5,7 +5,7 @@ * 2.0. */ -export type { Index } from '@kbn/index-management'; +export type { Index } from '@kbn/index-management-shared-types'; export interface IndexModule { number_of_shards: number | string; diff --git a/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx b/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx index 11fc6e7ad08c8..ccc863d42c129 100644 --- a/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx +++ b/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx @@ -146,13 +146,19 @@ export const ComponentTable: FunctionComponent = ({ selection: { onSelectionChange: setSelection, selectable: ({ usedBy }) => usedBy.length === 0, - selectableMessage: (selectable) => + selectableMessage: (selectable, { name }) => selectable ? i18n.translate('xpack.idxMgmt.componentTemplatesList.table.selectionLabel', { - defaultMessage: 'Select this component template', + defaultMessage: 'Select "{name}" component template', + values: { + name, + }, }) : i18n.translate('xpack.idxMgmt.componentTemplatesList.table.disabledSelectionLabel', { - defaultMessage: 'Component template is in use and cannot be deleted', + defaultMessage: 'Component template "{name}" is in use and cannot be deleted', + values: { + name, + }, }), }, rowProps: () => ({ @@ -257,6 +263,7 @@ export const ComponentTable: FunctionComponent = ({ }, () => trackMetric(METRIC_TYPE.CLICK, UIM_COMPONENT_TEMPLATE_DETAILS) )} + role="button" data-test-subj="templateDetailsLink" > {name} diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/fields_list_item.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/fields_list_item.tsx index db43adfccaca5..33c51a3cb644b 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/fields_list_item.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/components/document_fields/fields/fields_list_item.tsx @@ -293,7 +293,7 @@ function FieldListItemComponent( {isSemanticText && ( - {source.inference_id} + {source.inference_id as string} )} diff --git a/x-pack/plugins/index_management/public/application/hooks/use_index_errors.ts b/x-pack/plugins/index_management/public/application/hooks/use_index_errors.ts index 58c3a359c2dce..82f1545e3a98a 100644 --- a/x-pack/plugins/index_management/public/application/hooks/use_index_errors.ts +++ b/x-pack/plugins/index_management/public/application/hooks/use_index_errors.ts @@ -6,7 +6,7 @@ */ import { i18n } from '@kbn/i18n'; -import { Index } from '@kbn/index-management'; +import { Index } from '@kbn/index-management-shared-types'; import { MlPluginStart } from '@kbn/ml-plugin/public'; import { useState, useEffect } from 'react'; import { normalize } from '../components/mappings_editor/lib'; diff --git a/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/create_policy_context.tsx b/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/create_policy_context.tsx index dab8056486405..5ea137b717a0d 100644 --- a/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/create_policy_context.tsx +++ b/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/create_policy_context.tsx @@ -6,7 +6,7 @@ */ import React, { createContext, useContext, useState } from 'react'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; export type DraftPolicy = Partial; diff --git a/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/create_policy_wizard.tsx b/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/create_policy_wizard.tsx index ff20f78830476..ab39f06fbb410 100644 --- a/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/create_policy_wizard.tsx +++ b/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/create_policy_wizard.tsx @@ -9,7 +9,7 @@ import React, { useState, useMemo, useCallback } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiSteps, EuiStepStatus, EuiCallOut, EuiSpacer } from '@elastic/eui'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; import { useAppContext } from '../../app_context'; import { ConfigurationStep, FieldSelectionStep, CreateStep } from './steps'; import { useCreatePolicyContext } from './create_policy_context'; diff --git a/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/steps/create.tsx b/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/steps/create.tsx index 7150e2bd29bac..a8f97d7793f50 100644 --- a/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/steps/create.tsx +++ b/x-pack/plugins/index_management/public/application/sections/enrich_policy_create/steps/create.tsx @@ -21,7 +21,7 @@ import { EuiCodeBlock, } from '@elastic/eui'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; import { useCreatePolicyContext } from '../create_policy_context'; import { serializeAsESPolicy, getESPolicyCreationApiCall } from '../../../../../common/lib'; diff --git a/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx b/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx index e7ea6435a98fe..b4dbb663e0859 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx @@ -79,6 +79,7 @@ export const DataStreamTable: React.FunctionComponent = ({ return ( diff --git a/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/details_flyout/policy_details_flyout.tsx b/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/details_flyout/policy_details_flyout.tsx index 9fb20e33e22c8..2e8c4d9c5ef6e 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/details_flyout/policy_details_flyout.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/details_flyout/policy_details_flyout.tsx @@ -21,7 +21,7 @@ import { EuiButtonEmpty, } from '@elastic/eui'; import { CodeEditor } from '@kbn/code-editor'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; export interface Props { policy: SerializedEnrichPolicy; diff --git a/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/enrich_policies_list.tsx b/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/enrich_policies_list.tsx index e11c0e9db87fc..a036273ebdde9 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/enrich_policies_list.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/enrich_policies_list.tsx @@ -12,7 +12,7 @@ import { RouteComponentProps } from 'react-router-dom'; import { Location } from 'history'; import { parse } from 'query-string'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; import { APP_WRAPPER_CLASS, useExecutionContext } from '../../../../shared_imports'; import { useAppContext } from '../../../app_context'; import { useRedirectPath } from '../../../hooks/redirect_path'; diff --git a/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/policies_table/policies_table.tsx b/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/policies_table/policies_table.tsx index 4c3ec85e16ea7..e78e08b829997 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/policies_table/policies_table.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/enrich_policies_list/policies_table/policies_table.tsx @@ -16,7 +16,7 @@ import { import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; import { reactRouterNavigate } from '@kbn/kibana-react-plugin/public'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; import { useEuiTablePersist, DEFAULT_PAGE_SIZE_OPTIONS } from '@kbn/shared-ux-table-persist'; import { useAppContext } from '../../../../app_context'; diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/index_mapping_with_context_types.tsx b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/index_mapping_with_context_types.tsx index 5dd264d38b80e..228f928f1ec74 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/index_mapping_with_context_types.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/details_page/index_mapping_with_context_types.tsx @@ -6,7 +6,7 @@ */ import { CoreStart } from '@kbn/core/public'; -import { IndexMappingProps } from '@kbn/index-management'; +import { IndexMappingProps } from '@kbn/index-management-shared-types'; import { AppDependencies } from '../../../../app_context'; import { ExtensionsService } from '../../../../../services/extensions_service'; diff --git a/x-pack/plugins/index_management/public/application/sections/home/template_list/template_table/template_table.tsx b/x-pack/plugins/index_management/public/application/sections/home/template_list/template_table/template_table.tsx index 5b5493adca8d2..679aa56194186 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/template_list/template_table/template_table.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/template_list/template_table/template_table.tsx @@ -60,6 +60,7 @@ export const TemplateTable: React.FunctionComponent = ({ {...reactRouterNavigate(history, getTemplateDetailsLink(name), () => uiMetricService.trackMetric(METRIC_TYPE.CLICK, UIM_TEMPLATE_SHOW_DETAILS_CLICK) )} + role="button" data-test-subj="templateDetailsLink" > {name} diff --git a/x-pack/plugins/index_management/public/application/services/api.ts b/x-pack/plugins/index_management/public/application/services/api.ts index f182ffe53ce07..08baa49713573 100644 --- a/x-pack/plugins/index_management/public/application/services/api.ts +++ b/x-pack/plugins/index_management/public/application/services/api.ts @@ -6,7 +6,7 @@ */ import { METRIC_TYPE } from '@kbn/analytics'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; import { IndicesStatsResponse } from '@elastic/elasticsearch/lib/api/types'; import { InferenceAPIConfigResponse } from '@kbn/ml-trained-models-utils'; import { MappingTypeMapping } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; diff --git a/x-pack/plugins/index_management/public/index.ts b/x-pack/plugins/index_management/public/index.ts index 09adb299c711f..e49b83b892add 100644 --- a/x-pack/plugins/index_management/public/index.ts +++ b/x-pack/plugins/index_management/public/index.ts @@ -19,6 +19,6 @@ export type { IndexMappingProps, IndexManagementPluginSetup, IndexManagementPluginStart, -} from '@kbn/index-management'; +} from '@kbn/index-management-shared-types'; export { getIndexListUri, getTemplateDetailsLink } from './application/services/routing'; diff --git a/x-pack/plugins/index_management/public/plugin.ts b/x-pack/plugins/index_management/public/plugin.ts index dff4880fbc66a..49693bb0d9aa9 100644 --- a/x-pack/plugins/index_management/public/plugin.ts +++ b/x-pack/plugins/index_management/public/plugin.ts @@ -15,7 +15,10 @@ import { PluginInitializerContext, ScopedHistory, } from '@kbn/core/public'; -import { IndexManagementPluginSetup, IndexManagementPluginStart } from '@kbn/index-management'; +import { + IndexManagementPluginSetup, + IndexManagementPluginStart, +} from '@kbn/index-management-shared-types'; import { setExtensionsService } from './application/store/selectors/extension_service'; import { ExtensionsService } from './services/extensions_service'; diff --git a/x-pack/plugins/index_management/public/services/extensions_service.mock.ts b/x-pack/plugins/index_management/public/services/extensions_service.mock.ts index 072acd92f5a9d..c2f80cb4e8e95 100644 --- a/x-pack/plugins/index_management/public/services/extensions_service.mock.ts +++ b/x-pack/plugins/index_management/public/services/extensions_service.mock.ts @@ -6,7 +6,7 @@ */ import type { PublicMethodsOf } from '@kbn/utility-types'; -import { ExtensionsSetup } from '@kbn/index-management/src/services/extensions_service'; +import { ExtensionsSetup } from '@kbn/index-management-shared-types/src/services/extensions_service'; import { ExtensionsService } from './extensions_service'; export type ExtensionsSetupMock = jest.Mocked; diff --git a/x-pack/plugins/index_management/public/services/extensions_service.ts b/x-pack/plugins/index_management/public/services/extensions_service.ts index 3823ad7ed28f2..116007ba1276f 100644 --- a/x-pack/plugins/index_management/public/services/extensions_service.ts +++ b/x-pack/plugins/index_management/public/services/extensions_service.ts @@ -13,7 +13,7 @@ import { EmptyListContent, IndexContent, ExtensionsSetup, -} from '@kbn/index-management'; +} from '@kbn/index-management-shared-types'; import { IndexDetailsTab } from '../../common/constants'; export class ExtensionsService { diff --git a/x-pack/plugins/index_management/public/services/public_api_service.mock.ts b/x-pack/plugins/index_management/public/services/public_api_service.mock.ts index 567c87b914654..b78ce424cbc1a 100644 --- a/x-pack/plugins/index_management/public/services/public_api_service.mock.ts +++ b/x-pack/plugins/index_management/public/services/public_api_service.mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { PublicApiServiceSetup } from '@kbn/index-management/src/services/public_api_service'; +import { PublicApiServiceSetup } from '@kbn/index-management-shared-types/src/services/public_api_service'; export type PublicApiServiceSetupMock = jest.Mocked; diff --git a/x-pack/plugins/index_management/server/lib/enrich_policies.ts b/x-pack/plugins/index_management/server/lib/enrich_policies.ts index 61fa1d1467006..119a865d49661 100644 --- a/x-pack/plugins/index_management/server/lib/enrich_policies.ts +++ b/x-pack/plugins/index_management/server/lib/enrich_policies.ts @@ -7,7 +7,7 @@ import { IScopedClusterClient } from '@kbn/core/server'; import type { EnrichSummary } from '@elastic/elasticsearch/lib/api/types'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; import { getPolicyType } from '../../common/lib'; export const serializeEnrichmentPolicies = ( diff --git a/x-pack/plugins/index_management/server/routes/api/enrich_policies/register_create_route.ts b/x-pack/plugins/index_management/server/routes/api/enrich_policies/register_create_route.ts index 24110cc685676..bb6ef8b1fff50 100644 --- a/x-pack/plugins/index_management/server/routes/api/enrich_policies/register_create_route.ts +++ b/x-pack/plugins/index_management/server/routes/api/enrich_policies/register_create_route.ts @@ -8,7 +8,7 @@ import { IScopedClusterClient } from '@kbn/core/server'; import { schema, TypeOf } from '@kbn/config-schema'; -import type { SerializedEnrichPolicy } from '@kbn/index-management'; +import type { SerializedEnrichPolicy } from '@kbn/index-management-shared-types'; import { RouteDependencies } from '../../../types'; import { addInternalBasePath } from '..'; import { enrichPoliciesActions } from '../../../lib/enrich_policies'; diff --git a/x-pack/plugins/index_management/tsconfig.json b/x-pack/plugins/index_management/tsconfig.json index e8244c57beef5..eac67aa620973 100644 --- a/x-pack/plugins/index_management/tsconfig.json +++ b/x-pack/plugins/index_management/tsconfig.json @@ -45,7 +45,7 @@ "@kbn/monaco", "@kbn/console-plugin", "@kbn/shared-ux-utility", - "@kbn/index-management", + "@kbn/index-management-shared-types", "@kbn/utility-types", "@kbn/inference_integration_flyout", "@kbn/ml-plugin", diff --git a/x-pack/plugins/inference/common/output/create_output_api.ts b/x-pack/plugins/inference/common/output/create_output_api.ts index 0da2a84c53c5b..35fc2b3647004 100644 --- a/x-pack/plugins/inference/common/output/create_output_api.ts +++ b/x-pack/plugins/inference/common/output/create_output_api.ts @@ -47,12 +47,12 @@ export function createOutputApi(chatCompleteApi: ChatCompleteAPI): OutputAPI { return { id, - type: OutputEventType.OutputComplete, output: event.toolCalls.length && 'arguments' in event.toolCalls[0].function ? event.toolCalls[0].function.arguments : undefined, content: event.content, + type: OutputEventType.OutputComplete, }; }) ); diff --git a/x-pack/plugins/inference/common/output/index.ts b/x-pack/plugins/inference/common/output/index.ts index 12636498ab925..d7522f2cfa52e 100644 --- a/x-pack/plugins/inference/common/output/index.ts +++ b/x-pack/plugins/inference/common/output/index.ts @@ -6,8 +6,8 @@ */ import { Observable } from 'rxjs'; +import { ServerSentEventBase } from '@kbn/sse-utils'; import { FromToolSchema, ToolSchema } from '../chat_complete/tool_schema'; -import { InferenceTaskEventBase } from '../inference_task'; import { Message } from '../chat_complete'; export enum OutputEventType { @@ -17,20 +17,25 @@ export enum OutputEventType { type Output = Record | undefined | unknown; -export type OutputUpdateEvent = - InferenceTaskEventBase & { +export type OutputUpdateEvent = ServerSentEventBase< + OutputEventType.OutputUpdate, + { id: TId; content: string; - }; + } +>; export type OutputCompleteEvent< TId extends string = string, TOutput extends Output = Output -> = InferenceTaskEventBase & { - id: TId; - output: TOutput; - content?: string; -}; +> = ServerSentEventBase< + OutputEventType.OutputComplete, + { + id: TId; + output: TOutput; + content: string; + } +>; export type OutputEvent = | OutputUpdateEvent @@ -67,9 +72,9 @@ export function createOutputCompleteEvent { return { - id, type: OutputEventType.OutputComplete, + id, output, - content, + content: content ?? '', }; } diff --git a/x-pack/plugins/threat_intelligence/cypress/screens/empty_page.ts b/x-pack/plugins/inference/common/util/truncate_list.ts similarity index 51% rename from x-pack/plugins/threat_intelligence/cypress/screens/empty_page.ts rename to x-pack/plugins/inference/common/util/truncate_list.ts index dd24adc295587..59b5b1699a3b0 100644 --- a/x-pack/plugins/threat_intelligence/cypress/screens/empty_page.ts +++ b/x-pack/plugins/inference/common/util/truncate_list.ts @@ -5,6 +5,12 @@ * 2.0. */ -export const EMPTY_PAGE_BODY = '[data-test-subj="tiEmptyPage"]'; -export const EMPTY_PAGE_DOCS_LINK = '[data-test-subj="tiEmptyPageDocsLink"]'; -export const EMPTY_PAGE_INTEGRATIONS_LINK = '[data-test-subj="tiEmptyPageIntegrationsPageLink"]'; +import { take } from 'lodash'; + +export function truncateList(values: T[], limit: number): Array { + if (values.length <= limit) { + return values; + } + + return [...take(values, limit), `${values.length - limit} more values`]; +} diff --git a/x-pack/plugins/inference/public/util/http_response_into_observable.ts b/x-pack/plugins/inference/public/util/http_response_into_observable.ts index 53fdf302076a9..c63a7bcb3cd15 100644 --- a/x-pack/plugins/inference/public/util/http_response_into_observable.ts +++ b/x-pack/plugins/inference/public/util/http_response_into_observable.ts @@ -5,23 +5,26 @@ * 2.0. */ -import { map, OperatorFunction, pipe, switchMap, tap } from 'rxjs'; -import { InferenceTaskEvent, InferenceTaskEventType } from '../../common/inference_task'; -import { - createObservableFromHttpResponse, - StreamedHttpResponse, -} from './create_observable_from_http_response'; +import { catchError, map, OperatorFunction, pipe, switchMap, tap, throwError } from 'rxjs'; import { createInferenceInternalError, InferenceTaskError, InferenceTaskErrorEvent, } from '../../common/errors'; +import { InferenceTaskEvent, InferenceTaskEventType } from '../../common/inference_task'; +import { + createObservableFromHttpResponse, + StreamedHttpResponse, +} from './create_observable_from_http_response'; export function httpResponseIntoObservable< T extends InferenceTaskEvent = never >(): OperatorFunction { return pipe( switchMap((response) => createObservableFromHttpResponse(response)), + catchError((error) => { + return throwError(() => createInferenceInternalError(error.message)); + }), map((line): T => { try { return JSON.parse(line); diff --git a/x-pack/plugins/inference/scripts/evaluation/scenarios/esql/index.spec.ts b/x-pack/plugins/inference/scripts/evaluation/scenarios/esql/index.spec.ts index dffca52b10836..83868884e1429 100644 --- a/x-pack/plugins/inference/scripts/evaluation/scenarios/esql/index.spec.ts +++ b/x-pack/plugins/inference/scripts/evaluation/scenarios/esql/index.spec.ts @@ -192,7 +192,7 @@ const buildTestDefinitions = (): Section[] => { { title: 'Generates a query to show employees filtered by name and grouped by hire_date', question: `From the employees index, I want to see how many employees with a "B" in their first name - where hired each month over the past 2 years. + were hired each month over the past 2 years. Assume the following fields: - hire_date - first_name @@ -208,10 +208,10 @@ const buildTestDefinitions = (): Section[] => { (which can be read the same backward and forward), and then return their last name and first name - last_name - first_name`, - expected: `FROM employees - | EVAL reversed_last_name = REVERSE(last_name) - | WHERE TO_LOWER(last_name) == TO_LOWER(reversed_last_name) - | KEEP last_name, first_name`, + criteria: [ + `The assistant should not provide an ES|QL query, and explicitly mention that there is no + way to check for palindromes using ES|QL.`, + ], }, { title: 'Generates a query to show the top 10 domains by doc count', diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/extract_doc_entries.ts b/x-pack/plugins/inference/scripts/load_esql_docs/extract_doc_entries.ts new file mode 100644 index 0000000000000..4de5752c8e6b1 --- /dev/null +++ b/x-pack/plugins/inference/scripts/load_esql_docs/extract_doc_entries.ts @@ -0,0 +1,288 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import Fs from 'fs/promises'; +import Path from 'path'; +import fastGlob from 'fast-glob'; +import $, { load, Cheerio, AnyNode } from 'cheerio'; +import { partition } from 'lodash'; +import { ToolingLog } from '@kbn/tooling-log'; +import pLimit from 'p-limit'; +import { ScriptInferenceClient } from '../util/kibana_client'; +import { convertToMarkdownPrompt } from './prompts/convert_to_markdown'; +import { bindOutput, PromptCaller } from './utils/output_executor'; + +/** + * The pages that will be extracted but only used as context + * for the LLM for the enhancement tasks of the documentation entries. + */ +const contextArticles = [ + 'esql.html', + 'esql-syntax.html', + 'esql-kibana.html', + 'esql-query-api.html', + 'esql-limitations.html', + 'esql-cross-clusters.html', + 'esql-examples.html', + 'esql-metadata-fields.html', + 'esql-multi-index.html', +]; + +interface ExtractedPage { + sourceFile: string; + name: string; + content: string; +} + +export interface ExtractedCommandOrFunc { + name: string; + markdownContent: string; + command: boolean; +} + +export interface ExtractionOutput { + commands: ExtractedCommandOrFunc[]; + functions: ExtractedCommandOrFunc[]; + pages: ExtractedPage[]; + skippedFile: string[]; +} + +export async function extractDocEntries({ + builtDocsDir, + log, + inferenceClient, +}: { + builtDocsDir: string; + log: ToolingLog; + inferenceClient: ScriptInferenceClient; +}): Promise { + const files = await fastGlob(`${builtDocsDir}/html/en/elasticsearch/reference/master/esql*.html`); + if (!files.length) { + throw new Error('No files found'); + } + + const output: ExtractionOutput = { + commands: [], + functions: [], + pages: [], + skippedFile: [], + }; + + const executePrompt = bindOutput({ + output: inferenceClient.output, + connectorId: inferenceClient.getConnectorId(), + }); + + const limiter = pLimit(10); + + await Promise.all( + files.map(async (file) => { + return await processFile({ + file, + log, + executePrompt, + output, + limiter, + }); + }) + ); + + return output; +} + +async function processFile({ + file: fileFullPath, + output, + executePrompt, + log, + limiter, +}: { + file: string; + output: ExtractionOutput; + executePrompt: PromptCaller; + log: ToolingLog; + limiter: pLimit.Limit; +}) { + const basename = Path.basename(fileFullPath); + const fileContent = (await Fs.readFile(fileFullPath)).toString('utf-8'); + + if (basename === 'esql-commands.html') { + // process commands + await processCommands({ + fileContent, + log, + output, + limiter, + executePrompt, + }); + } else if (basename === 'esql-functions-operators.html') { + // process functions / operators + await processFunctionsAndOperators({ + fileContent, + log, + output, + limiter, + executePrompt, + }); + } else if (contextArticles.includes(basename)) { + const $element = load(fileContent)('*'); + output.pages.push({ + sourceFile: basename, + name: basename === 'esql.html' ? 'overview' : basename.substring(5, basename.length - 5), + content: getSimpleText($element), + }); + } else { + output.skippedFile.push(basename); + } +} + +async function processFunctionsAndOperators({ + fileContent, + output, + executePrompt, + log, + limiter, +}: { + fileContent: string; + output: ExtractionOutput; + executePrompt: PromptCaller; + log: ToolingLog; + limiter: pLimit.Limit; +}) { + const $element = load(fileContent.toString())('*'); + + const sections = extractSections($element); + + const searches = [ + 'Binary operators', + 'Equality', + 'Inequality', + 'Less than', + 'Less than or equal to', + 'Greater than', + 'Greater than or equal to', + 'Add +', + 'Subtract -', + 'Multiply *', + 'Divide /', + 'Modulus %', + 'Unary operators', + 'Logical operators', + 'IS NULL and IS NOT NULL', + 'Cast (::)', + ]; + + const matches = ['IN', 'LIKE', 'RLIKE']; + + const [operatorSections, allOtherSections] = partition(sections, (section) => { + return ( + matches.includes(section.title) || + searches.some((search) => section.title.toLowerCase().startsWith(search.toLowerCase())) + ); + }); + + const functionSections = allOtherSections.filter(({ title }) => !!title.match(/^[A-Z_]+$/)); + + const markdownFiles = await Promise.all( + functionSections.map(async (section) => { + return limiter(async () => { + return { + name: section.title, + markdownContent: await executePrompt( + convertToMarkdownPrompt({ htmlContent: section.content }) + ), + command: false, + }; + }); + }) + ); + + output.functions.push(...markdownFiles); + + output.pages.push({ + sourceFile: 'esql-functions-operators.html', + name: 'operators', + content: operatorSections.map(({ title, content }) => `${title}\n${content}`).join('\n'), + }); +} + +async function processCommands({ + fileContent, + output, + executePrompt, + log, + limiter, +}: { + fileContent: string; + output: ExtractionOutput; + executePrompt: PromptCaller; + log: ToolingLog; + limiter: pLimit.Limit; +}) { + const $element = load(fileContent.toString())('*'); + + const sections = extractSections($element).filter(({ title }) => !!title.match(/^[A-Z_]+$/)); + + const markdownFiles = await Promise.all( + sections.map(async (section) => { + return limiter(async () => { + return { + name: section.title, + markdownContent: await executePrompt( + convertToMarkdownPrompt({ htmlContent: section.content }) + ), + command: true, + }; + }); + }) + ); + + output.commands.push(...markdownFiles); +} + +function getSimpleText($element: Cheerio) { + $element.remove('.navfooter'); + $element.remove('#sticky_content'); + $element.remove('.edit_me'); + $element.find('code').each(function () { + $(this).replaceWith('`' + $(this).text() + '`'); + }); + return $element + .find('.section,section,.part') + .last() + .text() + .replaceAll(/([\n]\s*){2,}/g, '\n'); +} + +export function extractSections(cheerio: Cheerio) { + const sections: Array<{ + title: string; + content: string; + }> = []; + cheerio.find('.section .position-relative').each((index, element) => { + const untilNextHeader = $(element).nextUntil('.position-relative'); + + const title = $(element).text().trim().replace('edit', ''); + + untilNextHeader.find('svg defs').remove(); + untilNextHeader.find('.console_code_copy').remove(); + untilNextHeader.find('.imageblock').remove(); + untilNextHeader.find('table').remove(); + + const htmlContent = untilNextHeader + .map((i, node) => $(node).prop('outerHTML')) + .toArray() + .join(''); + + sections.push({ + title: title === 'STATS ... BY' ? 'STATS' : title, + content: `

    ${title}

    ${htmlContent}
    `, + }); + }); + + return sections; +} diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/extract_sections.ts b/x-pack/plugins/inference/scripts/load_esql_docs/extract_sections.ts deleted file mode 100644 index c4a2da3f355dd..0000000000000 --- a/x-pack/plugins/inference/scripts/load_esql_docs/extract_sections.ts +++ /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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import $, { AnyNode, Cheerio } from 'cheerio'; - -export function extractSections(cheerio: Cheerio) { - const sections: Array<{ - title: string; - content: string; - }> = []; - cheerio.find('.section h3').each((index, element) => { - let untilNextHeader = $(element).nextUntil('h3'); - - if (untilNextHeader.length === 0) { - untilNextHeader = $(element).parents('.titlepage').nextUntil('h3'); - } - - if (untilNextHeader.length === 0) { - untilNextHeader = $(element).parents('.titlepage').nextAll(); - } - - const title = $(element).text().trim().replace('edit', ''); - - untilNextHeader.find('table').remove(); - untilNextHeader.find('svg').remove(); - - const text = untilNextHeader.text(); - - const content = text.replaceAll(/([\n]\s*){2,}/g, '\n'); - - sections.push({ - title: title === 'STATS ... BY' ? 'STATS' : title, - content: `${title}\n\n${content}`, - }); - }); - - return sections; -} diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/generate_doc.ts b/x-pack/plugins/inference/scripts/load_esql_docs/generate_doc.ts new file mode 100644 index 0000000000000..2fe10d7ac4a83 --- /dev/null +++ b/x-pack/plugins/inference/scripts/load_esql_docs/generate_doc.ts @@ -0,0 +1,146 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import pLimit from 'p-limit'; +import { ToolingLog } from '@kbn/tooling-log'; +import { ScriptInferenceClient } from '../util/kibana_client'; +import type { ExtractionOutput } from './extract_doc_entries'; +import { createDocumentationPagePrompt, rewriteFunctionPagePrompt } from './prompts'; +import { bindOutput } from './utils/output_executor'; + +export interface FileToWrite { + name: string; + content: string; +} + +interface PageGeneration { + outputFileName: string; + sourceFile: string; + instructions: string; +} + +export const generateDoc = async ({ + extraction, + inferenceClient, +}: { + extraction: ExtractionOutput; + inferenceClient: ScriptInferenceClient; + log: ToolingLog; +}) => { + const filesToWrite: FileToWrite[] = []; + + const limiter = pLimit(10); + + const callOutput = bindOutput({ + connectorId: inferenceClient.getConnectorId(), + output: inferenceClient.output, + }); + + const documentation = documentationForFunctionRewrite(extraction); + + await Promise.all( + [...extraction.commands, ...extraction.functions].map(async (func) => { + return limiter(async () => { + const rewrittenContent = await callOutput( + rewriteFunctionPagePrompt({ + content: func.markdownContent, + documentation, + command: func.command, + }) + ); + filesToWrite.push({ + name: fileNameForFunc(func.name), + content: rewrittenContent, + }); + }); + }) + ); + + const pageContentByName = (pageName: string) => + extraction.pages.find((page) => page.name === pageName)!.content; + + const pages: PageGeneration[] = [ + { + sourceFile: 'syntax', + outputFileName: 'esql-syntax.txt', + instructions: ` + Generate a description of Elastic ES|QL syntax. Make sure to reuse as much as possible the provided content of file and be as complete as possible. + For timespan literals, generate at least five examples of full ES|QL queries, using a mix commands and functions, using different intervals and units. + **Make sure you use timespan literals, such as \`1 day\` or \`24h\` or \`7 weeks\` in these examples**. + Combine ISO timestamps with time span literals and NOW(). + Make sure the example queries are using different combinations of syntax, commands and functions for each, and use BUCKET at least twice + When using DATE_TRUNC, make sure you DO NOT wrap the timespan in single or double quotes. + Do not use the Cast operator. In your examples, make sure to only use commands and functions that exist in the provided documentation. + `, + }, + { + sourceFile: 'overview', + outputFileName: 'esql-overview.txt', + instructions: `Generate a description of ES|QL as a language. Ignore links to other documents. + From Limitations, include the known limitations, but ignore limitations that are specific to a command. + Include a summary of what is mentioned in the CROSS_CLUSTER, Kibana and API sections. + Explain how to use the REST API with an example and mention important information for Kibana usage and cross cluster querying.`, + }, + { + sourceFile: 'operators', + outputFileName: 'esql-operators.txt', + instructions: ` + Generate a document describing the operators. + For each type of operator (binary, unary, logical, and the remaining), generate a section. + For each operator, generate at least one full ES|QL query as an example of its usage. + Keep it short, e.g. only a \`\`\`esql\\nFROM ...\\n| WHERE ... \`\`\` + `, + }, + ]; + + await Promise.all( + pages.map(async (page) => { + return limiter(async () => { + const pageContent = await callOutput( + createDocumentationPagePrompt({ + documentation, + content: pageContentByName(page.sourceFile), + specificInstructions: page.instructions, + }) + ); + filesToWrite.push({ + name: page.outputFileName, + content: pageContent, + }); + }); + }) + ); + + return filesToWrite; +}; + +const fileNameForFunc = (funcName: string) => + `esql-${funcName.replaceAll(' ', '-').toLowerCase()}.txt`; + +const documentationForFunctionRewrite = (extraction: ExtractionOutput) => { + return JSON.stringify( + { + pages: extraction.pages.filter((page) => { + return !['query-api', 'cross-clusters'].includes(page.name); + }), + commands: extraction.commands, + functions: extraction.functions.filter((func) => { + return [ + 'BUCKET', + 'COUNT', + 'COUNT_DISTINCT', + 'CASE', + 'DATE_EXTRACT', + 'DATE_DIFF', + 'DATE_TRUNC', + ].includes(func.name); + }), + }, + undefined, + 2 + ); +}; diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/load_esql_docs.ts b/x-pack/plugins/inference/scripts/load_esql_docs/load_esql_docs.ts index 3250d06906905..a35491a476040 100644 --- a/x-pack/plugins/inference/scripts/load_esql_docs/load_esql_docs.ts +++ b/x-pack/plugins/inference/scripts/load_esql_docs/load_esql_docs.ts @@ -4,19 +4,13 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ + import { run } from '@kbn/dev-cli-runner'; import { ESQLMessage, EditorError, getAstAndSyntaxErrors } from '@kbn/esql-ast'; import { validateQuery } from '@kbn/esql-validation-autocomplete'; -import $, { load } from 'cheerio'; -import { SingleBar } from 'cli-progress'; -import FastGlob from 'fast-glob'; import Fs from 'fs/promises'; -import { compact, once, partition } from 'lodash'; -import pLimit from 'p-limit'; import Path from 'path'; -import git, { SimpleGitProgressEvent } from 'simple-git'; import yargs, { Argv } from 'yargs'; -import { lastValueFrom } from 'rxjs'; import { REPO_ROOT } from '@kbn/repo-info'; import { INLINE_ESQL_QUERY_REGEX } from '../../common/tasks/nl_to_esql/constants'; import { correctCommonEsqlMistakes } from '../../common/tasks/nl_to_esql/correct_common_esql_mistakes'; @@ -24,7 +18,9 @@ import { connectorIdOption, elasticsearchOption, kibanaOption } from '../util/cl import { getServiceUrls } from '../util/get_service_urls'; import { KibanaClient } from '../util/kibana_client'; import { selectConnector } from '../util/select_connector'; -import { extractSections } from './extract_sections'; +import { syncBuiltDocs } from './sync_built_docs_repo'; +import { extractDocEntries } from './extract_doc_entries'; +import { generateDoc, FileToWrite } from './generate_doc'; yargs(process.argv.slice(2)) .command( @@ -38,16 +34,16 @@ yargs(process.argv.slice(2)) default: process.env.LOG_LEVEL || 'info', choices: ['info', 'debug', 'silent', 'verbose'], }) - .option('only', { - describe: 'Only regenerate these files', - string: true, - array: true, - }) .option('dryRun', { describe: 'Do not write or delete any files', boolean: true, default: false, }) + .option('syncDocs', { + describe: 'Sync doc repository before generation', + boolean: true, + default: true, + }) .option('kibana', kibanaOption) .option('elasticsearch', elasticsearchOption) .option('connectorId', connectorIdOption), @@ -63,431 +59,83 @@ yargs(process.argv.slice(2)) const kibanaClient = new KibanaClient(log, serviceUrls.kibanaUrl); const connectors = await kibanaClient.getConnectors(); - if (!connectors.length) { throw new Error('No connectors found'); } - const connector = await selectConnector({ connectors, preferredId: argv.connectorId, log, }); + log.info(`Using connector ${connector.connectorId}`); const chatClient = kibanaClient.createInferenceClient({ connectorId: connector.connectorId, }); - log.info(`Using connector ${connector.connectorId}`); - const builtDocsDir = Path.join(REPO_ROOT, '../built-docs'); + log.info(`Looking in ${builtDocsDir} for built-docs repository`); - log.debug(`Looking in ${builtDocsDir} for built-docs repository`); - - const dirExists = await Fs.stat(builtDocsDir); - - const getProgressHandler = () => { - let stage: string = ''; - let method: string = ''; - const loader: SingleBar = new SingleBar({ - barsize: 25, - format: `{phase} {bar} {percentage}%`, - }); - - const start = once(() => { - loader.start(100, 0, { phase: 'initializing' }); - }); - - return { - progress: (event: SimpleGitProgressEvent) => { - start(); - if (event.stage !== stage || event.method !== method) { - stage = event.stage; - method = event.method; - } - loader.update(event.progress, { phase: event.method + '/' + event.stage }); - }, - stop: () => loader.stop(), - }; - }; - - if (!dirExists) { - log.info('Cloning built-docs repo. This will take a while.'); - - const { progress, stop } = getProgressHandler(); - await git(Path.join(builtDocsDir, '..'), { - progress, - }).clone(`https://github.com/elastic/built-docs`, builtDocsDir, ['--depth', '1']); - - stop(); + if (argv.syncDocs) { + log.info(`Running sync for built-docs repository in ${builtDocsDir}...`); + await syncBuiltDocs({ builtDocsDir, log }); } - const { progress, stop } = getProgressHandler(); - - const builtDocsGit = git(builtDocsDir, { progress }); - - log.debug('Initializing simple-git'); - await builtDocsGit.init(); - - log.info('Making sure built-docs is up to date'); - await builtDocsGit.pull(); - - const files = FastGlob.sync( - `${builtDocsDir}/html/en/elasticsearch/reference/master/esql*.html` - ); - - if (!files) { - throw new Error('No files found'); - } - - const fsLimiter = pLimit(10); - - stop(); - - log.info(`Processing ${files.length} files`); - - async function extractContents( - file: string - ): Promise< - Array<{ title: string; content: string; instructions?: string; skip?: boolean }> - > { - const fileContents = await Fs.readFile(file); - const $element = load(fileContents.toString())('*'); - - function getSimpleText() { - $element.remove('.navfooter'); - $element.remove('#sticky_content'); - $element.find('code').each(function () { - $(this).replaceWith('`' + $(this).text() + '`'); - }); - return $element - .find('.section,section,.part') - .last() - .text() - .replaceAll(/([\n]\s*){2,}/g, '\n'); - } - - switch (Path.basename(file)) { - case 'esql-commands.html': - return extractSections($element) - .filter(({ title }) => !!title.match(/^[A-Z_]+$/)) - .map((doc) => ({ - ...doc, - instructions: `For this command, generate a Markdown document containing the following sections: - - ## {Title} - - {What this command does, the use cases, and any limitations from this document or esql-limitations.txt} - - ### Examples - - {example ES|QL queries using this command. prefer to copy mentioned queries, but make sure there are at least three different examples, focusing on different usages of this command}`, - })); - - case 'esql-limitations.html': - return [ - { - title: 'Limitations', - content: getSimpleText(), - skip: true, - }, - ]; - - case 'esql-syntax.html': - return [ - { - title: 'Syntax', - content: getSimpleText(), - instructions: `Generate a description of ES|QL syntax. Be as complete as possible. - For timespan literals, generate at least five examples of full ES|QL queries, using a mix commands and functions, using different intervals and units. - **Make sure you use timespan literals, such as \`1 day\` or \`24h\` or \`7 weeks\` in these examples**. - Combine ISO timestamps with time span literals and NOW(). - Make sure the example queries are using different combinations of syntax, commands and functions for each. - When using DATE_TRUNC, make sure you DO NOT wrap the timespan in single or double quotes. - Do not use the Cast operator. - `, - }, - ]; - - case 'esql.html': - return [ - { - title: 'Overview', - content: getSimpleText().replace( - /The ES\|QL documentation is organized in these sections(.*)$/, - '' - ), - instructions: `Generate a description of ES|QL as a language. Ignore links to other documents. From Limitations, include the known limitations, but ignore limitations that are specific to a command. - Include a summary of what is mentioned in the CROSS_CLUSTER, Kibana and API sections. Explain how to use the REST API with an example and mention important information for Kibana usage and cross cluster querying.`, - }, - ]; - - case 'esql-cross-clusters.html': - return [ - { - title: 'CROSS_CLUSTER', - content: getSimpleText(), - skip: true, - }, - ]; - - case 'esql-query-api.html': - return [ - { - title: 'API', - content: getSimpleText(), - skip: true, - }, - ]; - - case 'esql-kibana.html': - return [ - { - title: 'Kibana', - content: getSimpleText(), - skip: true, - }, - ]; - - case 'esql-functions-operators.html': - const sections = extractSections($element); - - const searches = [ - 'Binary operators', - 'Equality', - 'Inequality', - 'Less than', - 'Greater than', - 'Add +', - 'Subtract -', - 'Multiply *', - 'Divide /', - 'Modulus %', - 'Unary operators', - 'Logical operators', - 'IS NULL', - 'IS NOT NULL', - 'Cast (::)', - ]; + log.info(`Retrieving and converting documentation from ${builtDocsDir}...`); + const extraction = await extractDocEntries({ + builtDocsDir, + inferenceClient: chatClient, + log, + }); - const matches = ['IN', 'LIKE', 'RLIKE']; + log.info(`Rewriting documentation...`); + const docFiles = await generateDoc({ + extraction, + inferenceClient: chatClient, + log, + }); - const [operatorSections, allOtherSections] = partition(sections, (section) => { - return ( - matches.includes(section.title) || - searches.some((search) => - section.title.toLowerCase().startsWith(search.toLowerCase()) - ) + log.info(`Correcting common ESQL mistakes...`); + docFiles.forEach((docFile) => { + docFile.content = docFile.content.replaceAll( + INLINE_ESQL_QUERY_REGEX, + (match, query) => { + const correctionResult = correctCommonEsqlMistakes(query); + if (correctionResult.isCorrection) { + log.info( + `Corrected ES|QL, from:\n${correctionResult.input}\nto:\n${correctionResult.output}` ); - }); - - return allOtherSections - .map((section) => ({ - ...section, - instructions: `For each function, use the following template: - - ## {Title} - - {description of what this function does} - - ### Examples - - {at least two examples of full ES|QL queries. prefer the ones in the document verbatim} - `, - })) - .concat({ - title: 'Operators', - content: operatorSections - .map(({ title, content }) => `${title}\n${content}`) - .join('\n'), - instructions: - 'Generate a document describing the operators. For each type of operator (binary, unary, logical, and the remaining), generate a section. For each operator, generate at least one full ES|QL query as an example of its usage. Keep it short, e.g. only a ```esql\nFROM ...\n| WHERE ... ```', - }); - - default: - log.debug('Dropping file', file); - break; - } - return []; - } - - const documents = await Promise.all( - files.map((file) => fsLimiter(() => extractContents(file))) - ); - - const flattened = documents.flat().filter((doc) => { - // ES|QL aggregate functions, ES|QL mathematical functions, ES|QL string functions etc - const isOverviewArticle = - doc.title.startsWith('ES|QL') || - doc.title === 'Functions overview' || - doc.title === 'Operators overview'; - - if (isOverviewArticle) { - log.debug('Dropping overview article', doc.title); - } - return !isOverviewArticle; + } + return '```esql\n' + correctionResult.output + '\n```'; + } + ); }); const outDir = Path.join(__dirname, '../../server/tasks/nl_to_esql/esql_docs'); if (!argv.dryRun) { - log.info(`Writing ${flattened.length} documents to disk to ${outDir}`); - } - - if (!argv.only && !argv.dryRun) { - log.debug(`Clearing ${outDir}`); - - await Fs.readdir(outDir, { recursive: true }) - .then((filesInDir) => { - const limiter = pLimit(10); - return Promise.all(filesInDir.map((file) => limiter(() => Fs.unlink(file)))); - }) - .catch((error) => (error.code === 'ENOENT' ? Promise.resolve() : error)); - } + log.info(`Writing ${docFiles.length} documents to disk to ${outDir}`); - if (!argv.dryRun) { await Fs.mkdir(outDir).catch((error) => error.code === 'EEXIST' ? Promise.resolve() : error ); - } - const chatLimiter = pLimit(10); - - const allContent = flattened - .map((doc) => `## ${doc.title}\n\n${doc.content}\n\(end of ${doc.title})`) - .join('\n\n'); - - const allErrors: Array<{ - title: string; - fileName: string; - errors: Array<{ query: string; errors: Array }>; - }> = []; - - async function writeFile(doc: { title: string; content: string }) { - const fileName = Path.join( - outDir, - `esql-${doc.title.replaceAll(' ', '-').toLowerCase()}.txt` - ); - - doc.content = doc.content.replaceAll(INLINE_ESQL_QUERY_REGEX, (match, query) => { - const correctionResult = correctCommonEsqlMistakes(query); - if (correctionResult.isCorrection) { - log.info( - `Corrected ES|QL, from:\n${correctionResult.input}\nto:\n${correctionResult.output}` - ); - } - return '```esql\n' + correctionResult.output + '\n```'; - }); - - const queriesWithSyntaxErrors = compact( - await Promise.all( - Array.from(doc.content.matchAll(INLINE_ESQL_QUERY_REGEX)).map( - async ([match, query]) => { - const { errors, warnings } = await validateQuery(query, getAstAndSyntaxErrors, { - // setting this to true, we don't want to validate the index / fields existence - ignoreOnMissingCallbacks: true, - }); - const all = [...errors, ...warnings]; - if (all.length) { - log.warning( - `Error in ${fileName}:\n${JSON.stringify({ errors, warnings }, null, 2)}` - ); - return { - errors: all, - query, - }; - } - } - ) - ) + await Promise.all( + docFiles.map(async (file) => { + const fileName = Path.join(outDir, file.name); + await Fs.writeFile(fileName, file.content); + }) ); - - if (queriesWithSyntaxErrors.length) { - allErrors.push({ - title: doc.title, - fileName, - errors: queriesWithSyntaxErrors, - }); - } - - if (!argv.dryRun) { - await Fs.writeFile(fileName, doc.content); - } } - await Promise.all( - flattened.map(async (doc) => { - if (doc.skip || (argv.only && !argv.only.includes(doc.title))) { - return undefined; - } - - if (!doc.instructions) { - return fsLimiter(() => writeFile(doc)); - } - - return chatLimiter(async () => { - try { - const response = await lastValueFrom( - chatClient.output('generate_markdown', { - connectorId: chatClient.getConnectorId(), - system: `## System instructions - - Your job is to generate Markdown documentation off of content that is scraped from the Elasticsearch website. - - The documentation is about ES|QL, or the Elasticsearch Query Language, which is a new piped language that can be - used for loading, extracting and transforming data stored in Elasticsearch. The audience for the documentation - you generate, is intended for an LLM, to be able to answer questions about ES|QL or generate and execute ES|QL - queries. - - If you need to generate example queries, make sure they are different, in that they use different commands, and arguments, - to show case how a command, function or operator can be used in different ways. - - When you generate a complete ES|QL query, always wrap it in code blocks with the language being \`esql\`.. Here's an example: - - \`\`\`esql - FROM logs-* - | WHERE @timestamp <= NOW() - \`\`\` - - **If you are describing the syntax of a command, only wrap it in SINGLE backticks. - Leave out the esql part**. Eg: - ### Syntax: - - \`DISSECT input "pattern" [APPEND_SEPARATOR=""]\` - - #### Context - - These is the entire documentation, use it as context for answering questions - - ${allContent} - `, - input: `Generate Markdown for the following document: - - ## ${doc.title} - - ### Instructions - - ${doc.instructions} - - ### Content of file - - ${doc.content}`, - }) - ); - - return fsLimiter(() => - writeFile({ title: doc.title, content: response.content! }) - ); - } catch (error) { - log.error(`Error processing ${doc.title}: ${error.message}`); - } - }); - }) - ); + log.info(`Checking syntax...`); + const syntaxErrors = ( + await Promise.all(docFiles.map(async (file) => await findEsqlSyntaxError(file))) + ).flat(); log.warning( `Please verify the following queries that had syntax errors\n${JSON.stringify( - allErrors, + syntaxErrors, null, 2 )}` @@ -498,3 +146,31 @@ yargs(process.argv.slice(2)) } ) .parse(); + +interface SyntaxError { + query: string; + errors: Array; +} + +const findEsqlSyntaxError = async (doc: FileToWrite): Promise => { + return Array.from(doc.content.matchAll(INLINE_ESQL_QUERY_REGEX)).reduce( + async (listP, [match, query]) => { + const list = await listP; + const { errors, warnings } = await validateQuery(query, getAstAndSyntaxErrors, { + // setting this to true, we don't want to validate the index / fields existence + ignoreOnMissingCallbacks: true, + }); + + const all = [...errors, ...warnings]; + if (all.length) { + list.push({ + errors: all, + query, + }); + } + + return list; + }, + Promise.resolve([] as SyntaxError[]) + ); +}; diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/prompts/convert_to_markdown.ts b/x-pack/plugins/inference/scripts/load_esql_docs/prompts/convert_to_markdown.ts new file mode 100644 index 0000000000000..cef4a07fa712e --- /dev/null +++ b/x-pack/plugins/inference/scripts/load_esql_docs/prompts/convert_to_markdown.ts @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { PromptTemplate } from '../utils/output_executor'; + +/** + * Prompt used to ask the LLM to convert a raw html content to markdown. + */ +export const convertToMarkdownPrompt: PromptTemplate<{ + htmlContent: string; +}> = ({ htmlContent }) => { + return { + system: ` + You are a helpful assistant specialized + in converting html fragment extracted from online documentation into equivalent Markdown documents. + + Please respond exclusively with the requested Markdown document, without + adding your thoughts or any non-markdown reply. + + - Ignore all links (just use their text content when relevant) + - Blockquotes (>) are not wanted, so don't generate any + - Use title2 (##) for the main title of the document + - Use title3 (###) for the section titles, such as "Syntax", "Parameters", "Examples" and so on. + - Use title4 (####) for subsections, such as parameter names or example titles + - HTML tables that are below code snippets are example of results. Please convert them to Markdown table + - for elements, only keep the text content of the underlying elements + + All the code snippets are for ESQL, so please use the following format for all snippets: + + \`\`\`esql + + \`\`\` + + `, + input: ` + Here is the html documentation to convert to markdown: + \`\`\`html + ${htmlContent} + \`\`\` + `, + }; +}; diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/prompts/create_documentation_page.ts b/x-pack/plugins/inference/scripts/load_esql_docs/prompts/create_documentation_page.ts new file mode 100644 index 0000000000000..228c96ef18b44 --- /dev/null +++ b/x-pack/plugins/inference/scripts/load_esql_docs/prompts/create_documentation_page.ts @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { PromptTemplate } from '../utils/output_executor'; + +/** + * Prompt used to ask the LLM to create a documentation page from the provided content + */ +export const createDocumentationPagePrompt: PromptTemplate<{ + content: string; + documentation: string; + specificInstructions: string; +}> = ({ content, documentation, specificInstructions }) => { + return { + system: ` + You are a helpful assistant specialized in checking and improving technical documentation + about ES|QL, the new Query language from Elasticsearch written in Markdown format. + + Your job is to generate technical documentation in Markdown format based on content that is scraped from the Elasticsearch website. + + The documentation is about ES|QL, or the Elasticsearch Query Language, which is a new piped language that can be + used for loading, extracting and transforming data stored in Elasticsearch. The audience for the documentation + you generate, is intended for an LLM, to be able to answer questions about ES|QL or generate and execute ES|QL + queries. + + If you need to generate example queries, make sure they are different, in that they use different commands, and arguments, + to show case how a command, function or operator can be used in different ways. + + When you generate a complete ES|QL query, always wrap it in code blocks with the language being \`esql\`.. Here's an example: + + \`\`\`esql + FROM logs-* + | WHERE @timestamp <= NOW() + \`\`\` + + #### Context + + This is the entire documentation, in JSON format. Use it as context for answering questions + + \`\`\`json + ${documentation} + \`\`\` +`, + input: ` + ${specificInstructions} + + Use this document as main source to generate your markdown document: + + \`\`\`markdown + ${content} + \`\`\` + + But also add relevant content from the documentation you have access to. + `, + }; +}; diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/prompts/index.ts b/x-pack/plugins/inference/scripts/load_esql_docs/prompts/index.ts new file mode 100644 index 0000000000000..f5b54643fb3cb --- /dev/null +++ b/x-pack/plugins/inference/scripts/load_esql_docs/prompts/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { createDocumentationPagePrompt } from './create_documentation_page'; +export { rewriteFunctionPagePrompt } from './rewrite_function_page'; +export { convertToMarkdownPrompt } from './convert_to_markdown'; diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/prompts/rewrite_function_page.ts b/x-pack/plugins/inference/scripts/load_esql_docs/prompts/rewrite_function_page.ts new file mode 100644 index 0000000000000..230145b7a4135 --- /dev/null +++ b/x-pack/plugins/inference/scripts/load_esql_docs/prompts/rewrite_function_page.ts @@ -0,0 +1,238 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { PromptTemplate } from '../utils/output_executor'; + +/** + * Prompt used to ask the LLM to improve a function or command page + */ +export const rewriteFunctionPagePrompt: PromptTemplate<{ + content: string; + documentation: string; + command: boolean; +}> = ({ content, documentation, command: isCommand }) => { + const entityName = isCommand ? 'command' : 'function'; + return { + system: ` + You are a helpful assistant specialized in rewriting technical documentation articles + about ES|QL, the new Query language from Elasticsearch written in Markdown format. + + An ES|QL query is composed of a source command followed by an optional + series of processing commands, separated by a pipe character: |. For + example: + + | + | + + An example of what an ES|QL query looks like: + + \`\`\`esql + FROM employees + | WHERE still_hired == true + | EVAL hired = DATE_FORMAT("YYYY", hire_date) + | STATS avg_salary = AVG(salary) BY languages + | EVAL avg_salary = ROUND(avg_salary) + | EVAL lang_code = TO_STRING(languages) + | ENRICH languages_policy ON lang_code WITH lang = language_name + | WHERE lang IS NOT NULL + | KEEP avg_salary, lang + | SORT avg_salary ASC + | LIMIT 3 + \`\`\` + + You will be given a technical documentation article about a specific ES|QL ${entityName}, + please rewrite it using the following template: + + \`\`\`markdown + # {title of the ${entityName}} + + {short description of what the ${entityName} does} + + ## Syntax + + {syntax used for the ${entityName}. Just re-use the content from the original article} + + ### Parameters + + {foreach parameters} + #### {parameter name} + + {if the parameter is optional, mention it. otherwise don't mention it's not optional} + + {short explanation of what the parameter does} + + {end foreach argument} + + ## Examples + + {list of examples from the source doc} + \`\`\` + + Additional instructions: + + - Follow the template, and DO NOT add any section, unless explicitly asked for in the instructions. + + - DO NOT modify the main title of the page, it must only be the command name, e.g. "## AVG" + + - Do NOT mention "ES|QL" in the description + - GOOD: "The AVG ${entityName} calculates [...]" + - BAD: "The AVG ${entityName} in ES|QL calculates [...]" + + - Move the description section at the beginning of the file (but remove the title). + - This means there is no longer a "Description" section after the "Parameters" one + + - For the "Syntax" section, if you need to escape code blocks, use single ticks and not triple ticks + - GOOD: \`AVG(number)\` + - BAD: \`\`\`AVG(number)\`\`\` + + - For the "Parameters" section + - if there is a description of the parameter in the source document, re-use it. Else, use your own words. + + - For the "Examples" section: + - Re-use as much as possible examples from the source document + - DO NOT modify the syntax of the examples. The syntax is correct, don't try to fix it. + - For each example, add a short, entity-dense sentence explaining what the example does. + - GOOD: "Calculate the average salary change" + - BAD: "Calculate the average salary change. This example uses the \`MV_AVG\` function to first average the multiple values per employee, and then uses the result with the \`AVG\` function:" + + - If any limitations impacting this ${entityName} are mentioned in this document or other ones, such + as the "esql-limitations.html" file, please add a "Limitations" section at the bottom of the file + and mention them. Otherwise, don't say or mention that there are no limitations. + + - When you generate a complete ES|QL query for the examples, always wrap it in code blocks + with the language being \`esql\`. + + An example of rewrite would be: + + Source: + + ///// + ${source} + ///// + + Output: + + ///// + ${output} + ///// + + + Please answer exclusively with the content of the output document, without any additional messages, + information, though or reasoning. DO NOT wrap the output with \`\`\`markdown. + + The full documentation, in JSON format: + \`\`\`json + ${documentation} + \`\`\` + + Please use it to search for limitations or additional information or examples when rewriting the article. + `, + input: ` + This is the technical document page you need to rewrite: + + \`\`\`markdown + ${content} + \`\`\` + `, + }; +}; + +const source = ` +## DISSECT + +DISSECT enables you to extract structured data out of a string. + +### Syntax + +\`\`\`esql +DISSECT input \"pattern\" [APPEND_SEPARATOR=\"\"] +\`\`\` + +### Parameters + +#### input + +The column that contains the string you want to structure. If the column has multiple values, DISSECT will process each value. + +#### pattern + +A dissect pattern. If a field name conflicts with an existing column, the existing column is dropped. If a field name is used more than once, only the rightmost duplicate creates a column. + +#### + +A string used as the separator between appended values, when using the append modifier. + +### Description + +DISSECT enables you to extract structured data out of a string. DISSECT matches the string against a delimiter-based pattern, and extracts the specified keys as columns. + +Refer to Process data with DISSECT for the syntax of dissect patterns. + +### Examples + +The following example parses a string that contains a timestamp, some text, and an IP address: + +\`\`\`esql +ROW a = \"2023-01-23T12:15:00.000Z - some text - 127.0.0.1\" +| DISSECT a \"%{date} - %{msg} - %{ip}\" +| KEEP date, msg, ip +\`\`\` + +By default, DISSECT outputs keyword string columns. To convert to another type, use Type conversion functions: + +\`\`\`esql +ROW a = \"2023-01-23T12:15:00.000Z - some text - 127.0.0.1\" +| DISSECT a \"%{date} - %{msg} - %{ip}\" +| KEEP date, msg, ip +| EVAL date = TO_DATETIME(date) +\`\`\` + +`; + +const output = ` + # DISSECT + +The DISSECT command is used to extract structured data from a string. +It matches the string against a delimiter-based pattern and extracts the specified keys as columns. + +## Syntax + +\`DISSECT input "pattern" [APPEND_SEPARATOR=""]\` + +### Parameters + +#### input + +The column containing the string you want to structure. If the column has multiple values, DISSECT will process each value. + +#### pattern + +A dissect pattern. If a field name conflicts with an existing column, the existing column is dropped. If a field name is used more than once, only the rightmost duplicate creates a column. + +#### + +A string used as the separator between appended values, when using the append modifier. + +## Examples + +The following example parses a string that contains a timestamp, some text, and an IP address: + +\`\`\`esql +ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1" +| DISSECT a "%{date} - %{msg} - %{ip}" +| KEEP date, msg, ip +\`\`\` + +By default, DISSECT outputs keyword string columns. To convert to another type, use Type conversion functions: + +\`\`\`esql +ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1" +| DISSECT a "%{date} - %{msg} - %{ip}" +| KEEP date, msg, ip +| EVAL date = TO_DATETIME(date) +\`\`\` +`; diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/sync_built_docs_repo.ts b/x-pack/plugins/inference/scripts/load_esql_docs/sync_built_docs_repo.ts new file mode 100644 index 0000000000000..930d8ad2bf2af --- /dev/null +++ b/x-pack/plugins/inference/scripts/load_esql_docs/sync_built_docs_repo.ts @@ -0,0 +1,85 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import Path from 'path'; +import Fs from 'fs/promises'; +import git, { SimpleGitProgressEvent } from 'simple-git'; +import { SingleBar } from 'cli-progress'; +import { once } from 'lodash'; +import { ToolingLog } from '@kbn/tooling-log'; + +export const syncBuiltDocs = async ({ + builtDocsDir, + log, +}: { + builtDocsDir: string; + log: ToolingLog; +}) => { + const dirExists = await exists(builtDocsDir); + + if (!dirExists) { + log.info('Cloning built-docs repo. This will take a while.'); + + const { progress, stop } = getProgressHandler(); + await git(Path.join(builtDocsDir, '..'), { + progress, + }).clone(`https://github.com/elastic/built-docs`, builtDocsDir, ['--depth', '1']); + + stop(); + } + + const { progress, stop } = getProgressHandler(); + + const builtDocsGit = git(builtDocsDir, { progress }); + + log.debug('Initializing simple-git'); + await builtDocsGit.init(); + + log.info('Making sure built-docs is up to date'); + await builtDocsGit.pull(); + + stop(); +}; + +const exists = async (path: string): Promise => { + let dirExists = true; + try { + await Fs.stat(path); + } catch (e) { + if (e.code === 'ENOENT') { + dirExists = false; + } else { + throw e; + } + } + return dirExists; +}; + +const getProgressHandler = () => { + let stage: string = ''; + let method: string = ''; + const loader: SingleBar = new SingleBar({ + barsize: 25, + format: `{phase} {bar} {percentage}%`, + }); + + const start = once(() => { + loader.start(100, 0, { phase: 'initializing' }); + }); + + return { + progress: (event: SimpleGitProgressEvent) => { + start(); + if (event.stage !== stage || event.method !== method) { + stage = event.stage; + method = event.method; + } + loader.update(event.progress, { phase: event.method + '/' + event.stage }); + }, + stop: () => loader.stop(), + }; +}; diff --git a/x-pack/plugins/inference/scripts/load_esql_docs/utils/output_executor.ts b/x-pack/plugins/inference/scripts/load_esql_docs/utils/output_executor.ts new file mode 100644 index 0000000000000..6697446f93cec --- /dev/null +++ b/x-pack/plugins/inference/scripts/load_esql_docs/utils/output_executor.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { lastValueFrom } from 'rxjs'; +import type { OutputAPI } from '../../../common/output'; + +export interface Prompt { + system?: string; + input: string; +} + +export type PromptTemplate = (input: Input) => Prompt; + +export type PromptCaller = (prompt: Prompt) => Promise; + +export type PromptCallerFactory = ({ + connectorId, + output, +}: { + connectorId: string; + output: OutputAPI; +}) => PromptCaller; + +export const bindOutput: PromptCallerFactory = ({ connectorId, output }) => { + return async ({ input, system }) => { + const response = await lastValueFrom( + output('', { + connectorId, + input, + system, + }) + ); + return response.content ?? ''; + }; +}; diff --git a/x-pack/plugins/inference/server/chat_complete/adapters/openai/openai_adapter.ts b/x-pack/plugins/inference/server/chat_complete/adapters/openai/openai_adapter.ts index 3a89f100f2879..62af864a6037d 100644 --- a/x-pack/plugins/inference/server/chat_complete/adapters/openai/openai_adapter.ts +++ b/x-pack/plugins/inference/server/chat_complete/adapters/openai/openai_adapter.ts @@ -74,7 +74,7 @@ export const openAIAdapter: InferenceConnectorAdapter = { }), filter( (line): line is OpenAI.ChatCompletionChunk => - 'object' in line && line.object === 'chat.completion.chunk' + 'object' in line && line.object === 'chat.completion.chunk' && line.choices.length > 0 ), map((chunk): ChatCompletionChunkEvent => { const delta = chunk.choices[0].delta; diff --git a/x-pack/plugins/inference/server/index.ts b/x-pack/plugins/inference/server/index.ts index e45ae303d2833..d02dfec733941 100644 --- a/x-pack/plugins/inference/server/index.ts +++ b/x-pack/plugins/inference/server/index.ts @@ -18,6 +18,7 @@ export { withoutTokenCountEvents } from '../common/chat_complete/without_token_c export { withoutChunkEvents } from '../common/chat_complete/without_chunk_events'; export { withoutOutputUpdateEvents } from '../common/output/without_output_update_events'; +export type { InferenceClient } from './types'; export { naturalLanguageToEsql } from './tasks/nl_to_esql'; export type { InferenceServerSetup, InferenceServerStart }; diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-abs.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-abs.txt index 6a970dc5700fe..0700d970972a4 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-abs.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-abs.txt @@ -1,14 +1,28 @@ -## ABS +# ABS -The `ABS` function returns the absolute value of a numeric expression. If the input is null, the function returns null. +The ABS function returns the absolute value of a given number. -### Examples +## Syntax + +`ABS(number)` + +### Parameters + +#### number + +A numeric expression. If the parameter is `null`, the function will also return `null`. + +## Examples + +In this example, the ABS function is used to calculate the absolute value of -1.0: ```esql ROW number = -1.0 | EVAL abs_number = ABS(number) ``` +In the following example, the ABS function is used to calculate the absolute value of the height of employees: + ```esql FROM employees | KEEP first_name, last_name, height diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-acos.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-acos.txt index 3460483c15870..370e43bcf850f 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-acos.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-acos.txt @@ -1,15 +1,27 @@ -## ACOS +# ACOS -The `ACOS` function returns the arccosine of a number as an angle, expressed in radians. The input number must be between -1 and 1. If the input is null, the function returns null. +The ACOS function returns the arccosine of a given number, expressed in radians. -### Examples +## Syntax + +`ACOS(number)` + +### Parameters + +#### number + +This is a number between -1 and 1. If the parameter is `null`, the function will also return `null`. + +## Examples + +In this example, the ACOS function calculates the arccosine of 0.9. ```esql -ROW a = .9 -| EVAL acos = ACOS(a) +ROW a=.9 +| EVAL acos=ACOS(a) ``` ```esql ROW b = -0.5 | EVAL acos_b = ACOS(b) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-asin.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-asin.txt index ad4fb8fe8d310..a7901b95b8931 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-asin.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-asin.txt @@ -1,15 +1,29 @@ -## ASIN +# ASIN -The `ASIN` function returns the arcsine of the input numeric expression as an angle, expressed in radians. +The ASIN function returns the arcsine of a given numeric expression as an angle, expressed in radians. -### Examples +## Syntax + +`ASIN(number)` + +### Parameters + +#### number + +This is a numeric value ranging between -1 and 1. If the parameter is `null`, the function will also return `null`. + +## Examples + +In this example, the ASIN function calculates the arcsine of 0.9: ```esql -ROW a = .9 -| EVAL asin = ASIN(a) +ROW a=.9 +| EVAL asin=ASIN(a) ``` +In this example, the ASIN function calculates the arcsine of -0.5: + ```esql ROW a = -.5 | EVAL asin = ASIN(a) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-atan.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-atan.txt index fbeee5e84f2f3..a8b6f3dfa547c 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-atan.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-atan.txt @@ -1,8 +1,18 @@ -## ATAN +# ATAN -The `ATAN` function returns the arctangent of the input numeric expression as an angle, expressed in radians. +The ATAN function returns the arctangent of a given numeric expression, expressed in radians. -### Examples +## Syntax + +`ATAN(number)` + +### Parameters + +#### number + +This is a numeric expression. If the parameter is `null`, the function will also return `null`. + +## Examples ```esql ROW a=12.9 @@ -12,4 +22,4 @@ ROW a=12.9 ```esql ROW x=5.0, y=3.0 | EVAL atan_yx = ATAN(y / x) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-avg.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-avg.txt index 943a12c4aaa90..b9d209b4ef3a1 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-avg.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-avg.txt @@ -1,15 +1,29 @@ -## AVG +# AVG -The `AVG` function calculates the average of a numeric field. +The AVG function calculates the average of a numeric field. -### Examples +## Syntax + +`AVG(number)` + +### Parameters + +#### number + +The numeric field for which the average is calculated. + +## Examples + +Calculate the average height of employees: ```esql FROM employees | STATS AVG(height) ``` +The AVG function can be used with inline functions. For example: + ```esql FROM employees | STATS avg_salary_change = ROUND(AVG(MV_AVG(salary_change)), 10) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-bucket.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-bucket.txt index 945a4328d7728..585a0321ef818 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-bucket.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-bucket.txt @@ -1,8 +1,34 @@ -## BUCKET +# BUCKET -The `BUCKET` function creates groups of values—buckets—out of a datetime or numeric input. The size of the buckets can either be provided directly or chosen based on a recommended count and values range. +The BUCKET function allows you to create groups of values, known as buckets, from a datetime or numeric input. The size of the buckets can be specified directly or determined based on a recommended count and values range. -### Examples +## Syntax + +`BUCKET(field, buckets, from, to)` + +### Parameters + +#### field + +A numeric or date expression from which to derive buckets. + +#### buckets + +The target number of buckets, or the desired bucket size if `from` and `to` parameters are omitted. + +#### from + +The start of the range. This can be a number, a date, or a date expressed as a string. + +#### to + +The end of the range. This can be a number, a date, or a date expressed as a string. + +## Examples + +BUCKET can operate in two modes: one where the bucket size is computed based on a bucket count recommendation and a range, and another where the bucket size is provided directly. + +For instance, asking for at most 20 buckets over a year results in monthly buckets: ```esql FROM employees @@ -11,33 +37,34 @@ FROM employees | SORT hire_date ``` -```esql -FROM employees -| WHERE hire_date >= "1985-01-01T00:00:00Z" AND hire_date < "1986-01-01T00:00:00Z" -| STATS hires_per_month = COUNT(*) BY month = BUCKET(hire_date, 20, "1985-01-01T00:00:00Z", "1986-01-01T00:00:00Z") -| SORT month -``` +If the desired bucket size is known in advance, simply provide it as the second argument, leaving the range out: ```esql FROM employees | WHERE hire_date >= "1985-01-01T00:00:00Z" AND hire_date < "1986-01-01T00:00:00Z" -| STATS hires_per_week = COUNT(*) BY week = BUCKET(hire_date, 100, "1985-01-01T00:00:00Z", "1986-01-01T00:00:00Z") +| STATS hires_per_week = COUNT(*) BY week = BUCKET(hire_date, 1 week) | SORT week ``` +BUCKET can also operate on numeric fields. For example, to create a salary histogram: + ```esql FROM employees -| WHERE hire_date >= "1985-01-01T00:00:00Z" AND hire_date < "1986-01-01T00:00:00Z" -| STATS hires_per_week = COUNT(*) BY week = BUCKET(hire_date, 1 week) -| SORT week +| STATS COUNT(*) BY bs = BUCKET(salary, 20, 25324, 74999) +| SORT bs ``` +BUCKET may be used in both the aggregating and grouping part of the STATS ... BY ... command provided that in the aggregating part the function is referenced by an alias defined in the grouping part, or that it is invoked with the exact same expression: + ```esql FROM employees -| STATS COUNT(*) BY bs = BUCKET(salary, 20, 25324, 74999) -| SORT bs +| STATS s1 = b1 + 1, s2 = BUCKET(salary / 1000 + 999, 50.) + 2 BY b1 = BUCKET(salary / 100 + 99, 50.), b2 = BUCKET(salary / 1000 + 999, 50.) +| SORT b1, b2 +| KEEP s1, b1, s2, b2 ``` +More examples: + ```esql FROM employees | WHERE hire_date >= "1985-01-01T00:00:00Z" AND hire_date < "1986-01-01T00:00:00Z" diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-case.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-case.txt index 4c9cc07e669db..110f0ee1a242b 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-case.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-case.txt @@ -1,8 +1,22 @@ -## CASE +# CASE -The `CASE` function accepts pairs of conditions and values. The function returns the value that belongs to the first condition that evaluates to true. If the number of arguments is odd, the last argument is the default value which is returned when no condition matches. If the number of arguments is even, and no condition matches, the function returns null. +The CASE function accepts pairs of conditions and values. It returns the value that corresponds to the first condition that evaluates to `true`. If no condition matches, the function returns a default value or `null` if the number of arguments is even. -### Examples +## Syntax + +`CASE(condition, trueValue)` + +### Parameters + +#### condition + +A condition to evaluate. + +#### trueValue + +The value that is returned when the corresponding condition is the first to evaluate to `true`. If no condition matches, the default value is returned. + +## Examples Determine whether employees are monolingual, bilingual, or polyglot: @@ -32,6 +46,6 @@ Calculate an hourly error rate as a percentage of the total number of log messag FROM sample_data | EVAL error = CASE(message LIKE "*error*", 1, 0) | EVAL hour = DATE_TRUNC(1 hour, @timestamp) -| STATS error_rate = AVG(error) BY hour +| STATS error_rate = AVG(error) by hour | SORT hour ``` \ No newline at end of file diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cbrt.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cbrt.txt index 44ecddefc290d..6bbff254f2b16 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cbrt.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cbrt.txt @@ -1,15 +1,20 @@ -## CBRT +# CBRT -The `CBRT` function returns the cube root of a number. The input can be any numeric value, and the return value is always a double. Cube roots of infinities are null. +The CBRT function calculates the cube root of a given number. -### Examples +## Syntax + +`CBRT(number)` + +### Parameters + +#### number + +This is a numeric expression. If the parameter is `null`, the function will also return `null`. + +## Examples ```esql ROW d = 1000.0 -| EVAL c = CBRT(d) +| EVAL c = cbrt(d) ``` - -```esql -ROW value = 27.0 -| EVAL cube_root = CBRT(value) -``` \ No newline at end of file diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ceil.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ceil.txt index 3713fa2cf4cba..438d02cb6646d 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ceil.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ceil.txt @@ -1,16 +1,24 @@ -## CEIL +# CEIL -The `CEIL` function rounds a number up to the nearest integer. This operation is a no-op for long (including unsigned) and integer types. For double types, it picks the closest double value to the integer, similar to `Math.ceil`. +The CEIL function rounds a number up to the nearest integer. -### Examples +## Syntax + +`CEIL(number)` + +### Parameters + +#### number + +This is a numeric expression. If the parameter is `null`, the function will also return `null`. + +## Examples ```esql ROW a=1.8 -| EVAL a = CEIL(a) +| EVAL a=CEIL(a) ``` -```esql -FROM employees -| KEEP first_name, last_name, height -| EVAL height_ceil = CEIL(height) -``` \ No newline at end of file +## Limitations + +- the CEIL function does not perform any operation for `long` (including unsigned) and `integer` types. For `double` type, it picks the closest `double` value to the integer, similar to the Math.ceil function in other programming languages. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cidr_match.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cidr_match.txt index 2e5e306d01c01..2dcb0ec9b6824 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cidr_match.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cidr_match.txt @@ -1,17 +1,35 @@ -## CIDR_MATCH +# CIDR_MATCH -The `CIDR_MATCH` function returns true if the provided IP is contained in one of the provided CIDR blocks. +The CIDR_MATCH function checks if a given IP address falls within one or more specified CIDR blocks. -### Examples +## Syntax + +`CIDR_MATCH(ip, blockX)` + +### Parameters + +#### ip + +The IP address to be checked. This function supports both IPv4 and IPv6 addresses. + +#### blockX + +The CIDR block(s) against which the IP address is to be checked. + +## Examples + +The following example checks if the IP address 'ip1' falls within the CIDR blocks "127.0.0.2/32": ```esql FROM hosts -| WHERE CIDR_MATCH(ip1, "127.0.0.2/32", "127.0.0.3/32") +| WHERE CIDR_MATCH(ip1, "127.0.0.2/32") | KEEP card, host, ip0, ip1 ``` +The function also supports passing multiple blockX: + ```esql FROM network_logs | WHERE CIDR_MATCH(source_ip, "192.168.1.0/24", "10.0.0.0/8") | KEEP timestamp, source_ip, destination_ip, action -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-coalesce.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-coalesce.txt index 057efa96da3bd..ac0162fae33e6 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-coalesce.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-coalesce.txt @@ -1,15 +1,37 @@ -## COALESCE +# COALESCE -The `COALESCE` function returns the first of its arguments that is not null. If all arguments are null, it returns null. +The COALESCE function returns the first non-null argument from the list of provided arguments. -### Examples +## Syntax + +`COALESCE(first, rest)` + +### Parameters + +#### first + +The first expression to evaluate. + +#### rest + +The subsequent expressions to evaluate. + +### Description + +The COALESCE function evaluates the provided expressions in order and returns the first non-null value it encounters. If all the expressions evaluate to null, the function returns null. + +## Examples + +In the following example, the COALESCE function evaluates the expressions 'a' and 'b'. Since 'a' is null, the function returns the value of 'b'. ```esql ROW a=null, b="b" | EVAL COALESCE(a, b) ``` +COALESCE supports any number of rest parameters: + ```esql ROW x=null, y=null, z="z" | EVAL first_non_null = COALESCE(x, y, z) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-concat.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-concat.txt index 435a8458ff05c..ca464bc74d0c6 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-concat.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-concat.txt @@ -1,16 +1,36 @@ -## CONCAT +# CONCAT -The `CONCAT` function concatenates two or more strings. +The CONCAT function combines two or more strings into one. -### Examples +## Syntax + +`CONCAT(string1, string2, [...stringN])` + +### Parameters + +#### string1 + +The first string to concatenate. + +#### string2 + +The second string to concatenate. + +## Examples + +The following example concatenates the `street_1` and `street_2` fields: + +```esql +FROM address +| KEEP street_1, street_2 +| EVAL fullstreet = CONCAT(street_1, street_2) +``` + + +CONCAT supports any number of string parameters. The following example concatenates the `first_name` and `last_name` fields with a space in between: ```esql FROM employees | KEEP first_name, last_name | EVAL fullname = CONCAT(first_name, " ", last_name) ``` - -```esql -ROW part1 = "Hello", part2 = "World" -| EVAL greeting = CONCAT(part1, " ", part2) -``` \ No newline at end of file diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cos.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cos.txt index e554a886c5cab..519af24229150 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cos.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cos.txt @@ -1,15 +1,25 @@ -## COS +# COS -The `COS` function returns the cosine of an angle, expressed in radians. If the input angle is null, the function returns null. +The COS function calculates the cosine of a given angle. -### Examples +## Syntax + +`COS(angle)` + +### Parameters + +#### angle + +The angle for which the cosine is to be calculated, expressed in radians. If the parameter is `null`, the function will return `null`. + +## Examples ```esql ROW a=1.8 -| EVAL cos = COS(a) +| EVAL cos=COS(a) ``` ```esql ROW angle=0.5 | EVAL cosine_value = COS(angle) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cosh.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cosh.txt index c1eda78d10f2b..ec9e8906a9467 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cosh.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-cosh.txt @@ -1,15 +1,25 @@ -## COSH +# COSH -Returns the hyperbolic cosine of an angle. +The COSH function calculates the hyperbolic cosine of a given angle. -### Examples +## Syntax + +`COSH(angle)` + +### Parameters + +#### angle + +The angle in radians for which the hyperbolic cosine is to be calculated. If the angle is null, the function will return null. + +## Examples ```esql ROW a=1.8 -| EVAL cosh = COSH(a) +| EVAL cosh=COSH(a) ``` ```esql ROW angle=0.5 | EVAL hyperbolic_cosine = COSH(angle) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-count.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-count.txt index 407caa4c0f0c6..dace14b709204 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-count.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-count.txt @@ -1,31 +1,51 @@ -## COUNT +# COUNT -The `COUNT` function returns the total number (count) of input values. If the `field` parameter is omitted, it is equivalent to `COUNT(*)`, which counts the number of rows. +The COUNT function returns the total number of input values. -### Examples +## Syntax + +`COUNT(field)` + +### Parameters + +#### field + +This is an expression that outputs values to be counted. If it's omitted, it's equivalent to `COUNT(*)`, which counts the number of rows. + +## Examples + +Count the number of specific field values: ```esql FROM employees | STATS COUNT(height) ``` +Count the number of rows using `COUNT()` or `COUNT(*)`: + ```esql FROM employees | STATS count = COUNT(*) BY languages | SORT languages DESC ``` +The expression can use inline functions. In this example, a string is split into multiple values using the `SPLIT` function, and the values are counted: + ```esql ROW words="foo;bar;baz;qux;quux;foo" | STATS word_count = COUNT(SPLIT(words, ";")) ``` +To count the number of times an expression returns `TRUE`, use a `WHERE` command to remove rows that shouldn’t be included: + ```esql ROW n=1 | WHERE n < 0 | STATS COUNT(n) ``` +To count the same stream of data based on two different expressions, use the pattern `COUNT( OR NULL)`: + ```esql ROW n=1 | STATS COUNT(n > 0 OR NULL), COUNT(n < 0 OR NULL) diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-count_distinct.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-count_distinct.txt index ec7c373e340be..f6918b6651562 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-count_distinct.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-count_distinct.txt @@ -1,31 +1,46 @@ -## COUNT_DISTINCT +# COUNT_DISTINCT -The `COUNT_DISTINCT` function returns the approximate number of distinct values in a column or literal. It uses the HyperLogLog++ algorithm to count based on the hashes of the values, providing configurable precision to trade memory for accuracy. This function is particularly useful for high-cardinality sets and large values, as it maintains fixed memory usage regardless of the number of unique values. +The COUNT_DISTINCT function calculates the approximate number of distinct values in a specified field. -### Examples +## Syntax + +`COUNT_DISTINCT(field, precision)` + +### Parameters + +#### field + +The column or literal for which to count the number of distinct values. + +#### precision + +(Optional) The precision threshold. The counts are approximate. The maximum supported value is 40000. Thresholds above this number will have the same effect as a threshold of 40000. The default value is 3000. + +## Examples + +The following example calculates the number of distinct values in the `ip0` and `ip1` fields: ```esql FROM hosts | STATS COUNT_DISTINCT(ip0), COUNT_DISTINCT(ip1) ``` +You can also specify a precision threshold. In the following example, the precision threshold for `ip0` is set to 80000 and for `ip1` to 5: + ```esql FROM hosts | STATS COUNT_DISTINCT(ip0, 80000), COUNT_DISTINCT(ip1, 5) ``` +The COUNT_DISTINCT function can also be used with inline functions. This example splits a string into multiple values using the `SPLIT` function and counts the unique values: + ```esql ROW words="foo;bar;baz;qux;quux;foo" | STATS distinct_word_count = COUNT_DISTINCT(SPLIT(words, ";")) ``` -### Additional Information - -- **Precision Threshold**: The `COUNT_DISTINCT` function takes an optional second parameter to configure the precision threshold. The maximum supported value is 40000, and the default value is 3000. This threshold allows you to trade memory for accuracy, defining a unique count below which counts are expected to be close to accurate. Above this value, counts might become a bit more fuzzy. -- **Algorithm**: The function is based on the HyperLogLog++ algorithm, which provides excellent accuracy on low-cardinality sets and fixed memory usage. The memory usage depends on the configured precision, requiring about `c * 8` bytes for a precision threshold of `c`. - ### Notes - Computing exact counts requires loading values into a set and returning its size, which doesn't scale well for high-cardinality sets or large values due to memory usage and communication overhead. - The HyperLogLog++ algorithm's accuracy depends on the leading zeros of hashed values, and the exact distributions of hashes in a dataset can affect the accuracy of the cardinality. -- Even with a low threshold, the error remains very low (1-6%) even when counting millions of items. \ No newline at end of file +- Even with a low threshold, the error remains very low (1-6%) even when counting millions of items. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_diff.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_diff.txt index 20a261e53a100..7c0652aa4c067 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_diff.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_diff.txt @@ -1,8 +1,28 @@ -## DATE_DIFF +# DATE_DIFF -The `DATE_DIFF` function subtracts the `startTimestamp` from the `endTimestamp` and returns the difference in multiples of the specified unit. If `startTimestamp` is later than the `endTimestamp`, negative values are returned. Note that while there is an overlap between the function’s supported units and ES|QL’s supported time span literals, these sets are distinct and not interchangeable. Similarly, the supported abbreviations are conveniently shared with implementations of this function in other established products and not necessarily common with the date-time nomenclature used by Elasticsearch. +The DATE_DIFF function calculates the difference between two timestamps and returns the difference in multiples of the specified `unit`. -### Examples +## Syntax + +`DATE_DIFF(unit, startTimestamp, endTimestamp)` + +### Parameters + +#### unit + +The unit of time in which the difference will be calculated. + +#### startTimestamp + +The starting timestamp for the calculation. + +#### endTimestamp + +The ending timestamp for the calculation. + +## Examples + +The following example demonstrates how to use the DATE_DIFF function to calculate the difference between two timestamps in microseconds: ```esql ROW date1 = TO_DATETIME("2023-12-02T11:00:00.000Z"), date2 = TO_DATETIME("2023-12-02T11:00:00.001Z") @@ -12,4 +32,10 @@ ROW date1 = TO_DATETIME("2023-12-02T11:00:00.000Z"), date2 = TO_DATETIME("2023-1 ```esql ROW date1 = TO_DATETIME("2023-01-01T00:00:00.000Z"), date2 = TO_DATETIME("2023-12-31T23:59:59.999Z") | EVAL dd_days = DATE_DIFF("days", date1, date2) -``` \ No newline at end of file +``` + +## Notes + +- If the `startTimestamp` is later than the `endTimestamp`, the function will return a negative value. + +- It's important to note that while there is some overlap between the units supported by this function and ESQL's time span literals, these sets are not interchangeable. Also, the abbreviations supported by this function are shared with other established products and may not align with the date-time nomenclature used by Elasticsearch. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_extract.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_extract.txt index e064e1e09a91b..fa2cf8c0c88a6 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_extract.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_extract.txt @@ -1,15 +1,33 @@ -## DATE_EXTRACT +# DATE_EXTRACT -The `DATE_EXTRACT` function extracts specific parts of a date, such as the year, month, day, or hour. It can be used to retrieve various components of a date based on the specified `datePart`. +The DATE_EXTRACT function is used to extract specific parts of a date. -### Examples +## Syntax + +`DATE_EXTRACT(datePart, date)` + +### Parameters + +#### datePart + +This is the part of the date you want to extract, such as "year", "month" or ""hour_of_day". + +#### date + +This is the date expression. + +## Examples + +To extract the year from a date: ```esql ROW date = DATE_PARSE("yyyy-MM-dd", "2022-05-06") | EVAL year = DATE_EXTRACT("year", date) ``` +To find all events that occurred outside of business hours (before 9 AM or after 5PM), on any given date: + ```esql FROM sample_data | WHERE DATE_EXTRACT("hour_of_day", @timestamp) < 9 AND DATE_EXTRACT("hour_of_day", @timestamp) >= 17 -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_format.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_format.txt index 26149e8ce0d28..4b8a8a174ab80 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_format.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_format.txt @@ -1,17 +1,28 @@ -## DATE_FORMAT +# DATE_FORMAT -The `DATE_FORMAT` function returns a string representation of a date in the provided format. If no format is specified, the default format `yyyy-MM-dd'T'HH:mm:ss.SSSZ` is used. If the date expression is null, the function returns null. +The DATE_FORMAT function returns a string representation of a date, formatted according to the provided format. -### Examples +## Syntax + +`DATE_FORMAT(dateFormat, date)` + +### Parameters + +#### dateFormat + +This is an optional parameter that specifies the desired date format. +If no format is provided, the function defaults to the `yyyy-MM-dd'T'HH:mm:ss.SSSZ` format. + +#### date + +This is the date expression that you want to format. + +## Examples + +In this example, the `hire_date` field is formatted according to the "YYYY-MM-dd" format, and the result is stored in the `hired` field: ```esql FROM employees | KEEP first_name, last_name, hire_date | EVAL hired = DATE_FORMAT("YYYY-MM-dd", hire_date) ``` - -```esql -FROM employees -| KEEP first_name, last_name, hire_date -| EVAL hired = DATE_FORMAT("yyyy/MM/dd", hire_date) -``` \ No newline at end of file diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_parse.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_parse.txt index 4d2843deed440..f62cf0c5f9a4c 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_parse.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_parse.txt @@ -1,15 +1,28 @@ -## DATE_PARSE +# DATE_PARSE -The `DATE_PARSE` function returns a date by parsing the second argument using the format specified in the first argument. +The DATE_PARSE function is used to convert a date string into a date format based on the provided pattern. -### Examples +## Syntax + +`DATE_PARSE(datePattern, dateString)` + +### Parameters + +#### datePattern + +This is the format of the date. If `null` is provided, the function will return `null`. + +#### dateString + +This is the date expression in string format. + +## Examples ```esql ROW date_string = "2022-05-06" | EVAL date = DATE_PARSE("yyyy-MM-dd", date_string) ``` -```esql ROW date_string = "2023-12-25" | EVAL date = DATE_PARSE("yyyy-MM-dd", date_string) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_trunc.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_trunc.txt index 28c15f62c5c53..bd1d4b68043b1 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_trunc.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-date_trunc.txt @@ -1,8 +1,24 @@ -## DATE_TRUNC +# DATE_TRUNC -The `DATE_TRUNC` function rounds down a date to the closest interval. +The DATE_TRUNC function rounds down a date to the nearest specified interval. -### Examples +## Syntax + +`DATE_TRUNC(interval, date)` + +### Parameters + +#### interval + +This is the interval to which the date will be rounded down. It is expressed using the timespan literal syntax. + +#### date + +This is the date expression that will be rounded down. + +## Examples + +The following example rounds down the hire_date to the nearest year: ```esql FROM employees @@ -10,7 +26,7 @@ FROM employees | EVAL year_hired = DATE_TRUNC(1 year, hire_date) ``` -Combine `DATE_TRUNC` with `STATS ... BY` to create date histograms. For example, the number of hires per year: +You can combine DATE_TRUNC with STATS ... BY to create date histograms. For example, the number of hires per year: ```esql FROM employees @@ -19,7 +35,7 @@ FROM employees | SORT year ``` -Or an hourly error rate: +Or, you can calculate an hourly error rate: ```esql FROM sample_data @@ -27,4 +43,4 @@ FROM sample_data | EVAL hour = DATE_TRUNC(1 hour, @timestamp) | STATS error_rate = AVG(error) BY hour | SORT hour -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-dissect.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-dissect.txt index 5ce173f0e801d..8f4a822e52f07 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-dissect.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-dissect.txt @@ -1,29 +1,32 @@ -## DISSECT +# DISSECT -DISSECT enables you to extract structured data out of a string. It matches the string against a delimiter-based pattern and extracts the specified keys as columns. This command is particularly useful for parsing log files, structured text, or any other string data where fields are separated by specific delimiters. +The DISSECT command is used to extract structured data from a string. It matches the string against a delimiter-based pattern and extracts the specified keys as columns. ### Use Cases - **Log Parsing**: Extracting timestamps, log levels, and messages from log entries. - **Data Transformation**: Converting unstructured text data into structured columns for further analysis. - **Data Cleaning**: Removing or reformatting specific parts of a string to make the data more usable. -### Limitations -- If a field name conflicts with an existing column, the existing column is dropped. -- If a field name is used more than once, only the rightmost duplicate creates a column. -- DISSECT does not support reference keys. - -### Syntax +## Syntax `DISSECT input "pattern" [APPEND_SEPARATOR=""]` ### Parameters -- **input**: The column that contains the string you want to structure. If the column has multiple values, DISSECT will process each value. -- **pattern**: A dissect pattern. -- ****: A string used as the separator between appended values, when using the append modifier. -### Examples +#### input + +The column containing the string you want to structure. If the column has multiple values, DISSECT will process each value. + +#### pattern + +A dissect pattern. If a field name conflicts with an existing column, the existing column is dropped. If a field name is used more than once, only the rightmost duplicate creates a column. + +#### + +A string used as the separator between appended values, when using the append modifier. + +## Examples -#### Example 1: Basic Usage The following example parses a string that contains a timestamp, some text, and an IP address: ```esql @@ -32,7 +35,6 @@ ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1" | KEEP date, msg, ip ``` -#### Example 2: Type Conversion By default, DISSECT outputs keyword string columns. To convert to another type, use Type conversion functions: ```esql @@ -42,7 +44,6 @@ ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1" | EVAL date = TO_DATETIME(date) ``` -#### Example 3: Using Append Separator In this example, we use the `APPEND_SEPARATOR` to concatenate values with a custom separator: ```esql @@ -51,4 +52,7 @@ ROW a = "2023-01-23T12:15:00.000Z - some text - 127.0.0.1" | KEEP date, msg, ip ``` -These examples showcase different ways to use the DISSECT command to parse and transform string data in Elasticsearch. \ No newline at end of file +### Limitations +- If a field name conflicts with an existing column, the existing column is dropped. +- If a field name is used more than once, only the rightmost duplicate creates a column. +- DISSECT does not support reference keys. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-drop.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-drop.txt index 9bc678ef29c2f..2e36f20474aef 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-drop.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-drop.txt @@ -1,35 +1,33 @@ -## DROP +# DROP -The `DROP` processing command in ES|QL is used to remove one or more columns from the result set. This command is particularly useful when you want to exclude certain fields from your query results, either to simplify the output or to reduce the amount of data being processed and transferred. The `DROP` command supports the use of wildcards, allowing you to remove multiple columns that match a specific pattern. +The DROP command is used to eliminate one or more columns from the data. -### Use Cases -- **Simplifying Output:** Remove unnecessary columns to make the result set easier to read and analyze. -- **Data Reduction:** Exclude large or irrelevant fields to reduce the amount of data processed and transferred. -- **Pattern Matching:** Use wildcards to efficiently drop multiple columns that share a common naming pattern. +## Syntax -### Limitations -- The `DROP` command does not support nested fields. -- It cannot be used to drop columns of unsupported types as specified in the ES|QL limitations. +`DROP columns` + +### Parameters + +#### columns -### Examples +This is a list of columns, separated by commas, that you want to remove. Wildcards are supported. -#### Example 1: Dropping a Single Column -This example demonstrates how to drop a single column named `height` from the `employees` index. +## Examples + +In the following example, the 'height' column is removed from the data: ```esql FROM employees | DROP height ``` -#### Example 2: Dropping Multiple Columns Using Wildcards -This example shows how to use wildcards to drop all columns that start with `height`. +You can also use wildcards to remove all columns that match a certain pattern. In the following example, all columns that start with 'height' are removed: ```esql FROM employees | DROP height* ``` -#### Example 3: Dropping Multiple Specific Columns This example demonstrates how to drop multiple specific columns by listing them in a comma-separated format. ```esql @@ -37,7 +35,6 @@ FROM employees | DROP height, weight, age ``` -#### Example 4: Dropping Columns with Complex Patterns This example shows how to drop columns that match a more complex pattern using wildcards. ```esql @@ -45,7 +42,6 @@ FROM employees | DROP emp_* ``` -#### Example 5: Combining DROP with Other Commands This example demonstrates how to use the `DROP` command in conjunction with other commands like `KEEP` and `SORT`. ```esql @@ -55,4 +51,6 @@ FROM employees | SORT height DESC ``` -By using the `DROP` command, you can effectively manage the columns in your result set, making your ES|QL queries more efficient and easier to work with. \ No newline at end of file +### Limitations +- The `DROP` command does not support nested fields. +- It cannot be used to drop columns of unsupported types as specified in the ES|QL limitations. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-e.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-e.txt index 7f81d56ab63c2..2ab4a7e3449da 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-e.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-e.txt @@ -1,8 +1,16 @@ -## E +# E -The `E` function returns Euler’s number, which is a mathematical constant approximately equal to 2.71828. It is the base of the natural logarithm. +The E function returns Euler's number. -### Examples +## Syntax + +`E()` + +### Parameters + +This function does not require any parameters. + +## Examples ```esql ROW E() @@ -12,4 +20,4 @@ ROW E() FROM employees | EVAL euler_number = E() | KEEP euler_number -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ends_with.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ends_with.txt index 7607666f70213..0ceafe99f528d 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ends_with.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ends_with.txt @@ -1,8 +1,23 @@ -## ENDS_WITH +# ENDS_WITH -The `ENDS_WITH` function returns a boolean that indicates whether a keyword string ends with another string. +The ENDS_WITH function checks if a given string ends with a specified suffix. + +## Syntax + +`ENDS_WITH(str, suffix)` + +### Parameters + +#### str + +This is the string expression that you want to check. + +#### suffix + +The string expression that will be checked if it is the ending of the first string. + +## Examples -### Examples ```esql FROM employees @@ -14,4 +29,4 @@ FROM employees FROM employees | KEEP first_name | EVAL fn_E = ENDS_WITH(first_name, "a") -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-enrich.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-enrich.txt index 0db6c10e0d44f..9587732048639 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-enrich.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-enrich.txt @@ -1,48 +1,60 @@ -## ENRICH +# ENRICH -ENRICH enables you to add data from existing indices as new columns using an enrich policy. This command is useful for enriching your dataset with additional information from other indices, which can be particularly beneficial for data analysis and reporting. Before using the ENRICH command, you need to create and execute an enrich policy. +The ENRICH command allows you to add data from existing indices as new columns using an enrich policy. -### Use Cases -- **Data Enrichment**: Add supplementary data to your existing dataset for more comprehensive analysis. -- **Cross-Cluster Enrichment**: Enrich data across multiple clusters using the `mode` parameter. -- **Custom Column Names**: Rename columns to avoid conflicts or for better readability. +## Syntax -### Limitations -- The ENRICH command only supports enrich policies of type `match`. -- ENRICH only supports enriching on a column of type `keyword`. +`ENRICH policy [ON match_field] [WITH [new_name1 = ]field1, [new_name2 = ]field2, ...]` + +### Parameters + +#### policy + +The name of the enrich policy. You need to create and execute the enrich policy first. + +#### match_field + +The match field. ENRICH uses its value to look for records in the enrich index. If not specified, the match will be performed on the column with the same name as the `match_field` defined in the enrich policy. -### Examples +#### new_nameX -#### Example 1: Basic Enrichment -The following example uses the `languages_policy` enrich policy to add a new column for each enrich field defined in the policy. The match is performed using the `match_field` defined in the enrich policy and requires that the input table has a column with the same name (`language_code` in this example). +Allows you to change the name of the column that’s added for each of the enrich fields. Defaults to the enrich field name. If a column has the same name as the new name, it will be discarded. If a name (new or original) occurs more than once, only the rightmost duplicate creates a new column. + +#### fieldX + +The enrich fields from the enrich index that are added to the result as new columns. If a column with the same name as the enrich field already exists, the existing column will be replaced by the new column. If not specified, each of the enrich fields defined in the policy is added. A column with the same name as the enrich field will be dropped unless the enrich field is renamed. + +## Examples + +The following example uses the `languages_policy` enrich policy to add a new column for each enrich field defined in the policy. The match is performed using the `match_field` defined in the enrich policy and requires that the input table has a column with the same name (`language_code` in this example). ENRICH will look for records in the enrich index based on the match field value. ```esql ROW language_code = "1" | ENRICH languages_policy ``` -#### Example 2: Using a Different Match Field -To use a column with a different name than the `match_field` defined in the policy as the match field, use the `ON` parameter. +To use a column with a different name than the `match_field` defined in the policy as the match field, use `ON `: ```esql ROW a = "1" | ENRICH languages_policy ON a ``` -#### Example 3: Selecting Specific Enrich Fields -By default, each of the enrich fields defined in the policy is added as a column. To explicitly select the enrich fields that are added, use the `WITH` parameter. +By default, each of the enrich fields defined in the policy is added as a column. To explicitly select the enrich fields that are added, use `WITH , , ...`: ```esql ROW a = "1" | ENRICH languages_policy ON a WITH language_name ``` -#### Example 4: Renaming Enrich Fields -You can rename the columns that are added using the `WITH new_name=` syntax. +You can rename the columns that are added using `WITH new_name=`: ```esql ROW a = "1" | ENRICH languages_policy ON a WITH name = language_name ``` -In case of name collisions, the newly created columns will override existing columns. \ No newline at end of file +### Limitations +- In case of name collisions, the newly created columns will override existing columns. +- The ENRICH command only supports enrich policies of type `match`. +- ENRICH only supports enriching on a column of type `keyword`. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-eval.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-eval.txt index a7ad446cbbde9..ee512ededc6c4 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-eval.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-eval.txt @@ -1,20 +1,36 @@ -## EVAL +# EVAL -The `EVAL` processing command enables you to append new columns with calculated values. This command is useful for creating new data points derived from existing columns, such as performing arithmetic operations, applying functions, or using expressions. +The EVAL command allows you to append new columns with calculated values to your data. -### Use Cases -- **Data Transformation**: Create new columns based on existing data, such as converting units or calculating derived metrics. -- **Data Enrichment**: Add additional context to your data by computing new values. -- **Data Cleaning**: Standardize or normalize data by applying transformations. +## Syntax -### Limitations -- If a column with the same name already exists, the existing column is dropped. -- If a column name is used more than once, only the rightmost duplicate creates a column. +`EVAL [column1 =] value1[, ..., [columnN =] valueN]` + +### Parameters + +#### {columnX} + +This is the name of the column. If a column with the same name already exists, it will be replaced. If a column name is used more than once, only the rightmost duplicate will create a column. + +#### {valueX} -### Examples +This is the value for the column. It can be a literal, an expression, or a function. Columns defined to the left of this one can be used. -#### Example 1: Converting Height to Different Units -This example demonstrates how to convert the height from meters to feet and centimeters. +## Notes + +EVAL supports the following types of functions: +- Mathematical functions +- String functions +- Date-time functions +- Type conversation functions +- Conditional functions and expressions +- Multi-value functions + +Aggregation functions are NOT supported for EVAL. + +## Examples + +The following example multiplies the `height` column by 3.281 and 100 to create new columns `height_feet` and `height_cm`: ```esql FROM employees @@ -23,8 +39,7 @@ FROM employees | EVAL height_feet = height * 3.281, height_cm = height * 100 ``` -#### Example 2: Overwriting an Existing Column -In this example, the `height` column is overwritten with its value in feet. +If the specified column already exists, the existing column will be replaced, and the new column will be appended to the table: ```esql FROM employees @@ -33,8 +48,7 @@ FROM employees | EVAL height = height * 3.281 ``` -#### Example 3: Using an Expression as Column Name -Here, a new column is created with a name equal to the expression used to calculate its value. +Specifying the output column name is optional. If not specified, the new column name is equal to the expression. The following query adds a column named `height*3.281`: ```esql FROM employees @@ -43,8 +57,7 @@ FROM employees | EVAL height * 3.281 ``` -#### Example 4: Using Special Characters in Column Names -This example shows how to handle special characters in column names by quoting them with backticks. +Because this name contains special characters, it needs to be quoted with backticks (`) when using it in subsequent commands: ```esql FROM employees @@ -52,4 +65,6 @@ FROM employees | STATS avg_height_feet = AVG(`height * 3.281`) ``` -These examples illustrate the versatility of the `EVAL` command in transforming and enriching your data within Elasticsearch. \ No newline at end of file +### Limitations +- If a column with the same name already exists, the existing column is dropped. +- If a column name is used more than once, only the rightmost duplicate creates a column. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-exp.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-exp.txt index 89a2c612b08b7..0f55dc85702e5 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-exp.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-exp.txt @@ -1,8 +1,19 @@ -## EXP +# EXP -The `EXP` function returns the value of Euler's number (e) raised to the power of the given numeric expression. If the input is null, the function returns null. +The EXP function calculates the value of Euler's number (e) raised to the power of a given number. + +## Syntax + +`EXP(number)` + +### Parameters + +#### number + +A numeric expression. If the parameter is `null`, the function will also return `null`. + +## Examples -### Examples ```esql ROW d = 5.0 @@ -12,4 +23,4 @@ ROW d = 5.0 ```esql ROW value = 2.0 | EVAL result = EXP(value) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-floor.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-floor.txt index d3f50c55d0091..eac92ffc434b5 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-floor.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-floor.txt @@ -1,16 +1,30 @@ -## FLOOR +# FLOOR -The `FLOOR` function rounds a number down to the nearest integer. This operation is a no-op for long (including unsigned) and integer types. For double types, it picks the closest double value to the integer, similar to `Math.floor`. +The FLOOR function rounds a number down to the nearest integer. -### Examples +## Syntax + +`FLOOR(number)` + +### Parameters + +#### number + +This is a numeric expression. If the parameter is `null`, the function will return `null`. + +## Examples ```esql ROW a=1.8 -| EVAL a = FLOOR(a) +| EVAL a=FLOOR(a) ``` ```esql FROM employees | KEEP first_name, last_name, height | EVAL height_floor = FLOOR(height) -``` \ No newline at end of file +``` + +## Notes + +- The FLOOR function is a no-operation for `long` (including unsigned) and `integer` types. For `double` type, this function picks the closest `double` value to the integer, similar to the Math.floor method in programming languages. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-from.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-from.txt index 7847e7c847655..2f3618dce2412 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-from.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-from.txt @@ -1,21 +1,24 @@ -## FROM +# FROM -The `FROM` source command returns a table with data from a data stream, index, or alias. Each row in the resulting table represents a document, and each column corresponds to a field that can be accessed by the name of that field. This command is fundamental for querying data in Elasticsearch using ES|QL. +The `FROM` command retrieves a table of data from a specified data stream, index, or alias. -### Use Cases +## Syntax -- **Basic Data Retrieval**: Fetch data from a specific index or data stream. -- **Time Series Data**: Use date math to access indices relevant to specific time periods. -- **Multiple Indices**: Query multiple data streams, indices, or aliases using comma-separated lists or wildcards. -- **Remote Clusters**: Query data streams and indices on remote clusters. -- **Metadata Retrieval**: Retrieve specific metadata fields using the `METADATA` directive. +`FROM index_pattern [METADATA fields]` -### Limitations +### Parameters -- By default, an ES|QL query without an explicit `LIMIT` uses an implicit limit of 1000 rows. This applies to the `FROM` command as well. -- Queries do not return more than 10,000 rows, regardless of the `LIMIT` command’s value. +#### index_pattern + +This parameter represents a list of indices, data streams, or aliases. It supports the use of wildcards and date math. + +#### fields + +This is a comma-separated list of metadata fields to be retrieved. + +## Description -### Examples +The `FROM` command retrieves a table of data from a specified data stream, index, or alias. Each row in the resulting table represents a document, and each column corresponds to a field. The field can be accessed using its name. #### Basic Data Retrieval ```esql @@ -50,4 +53,9 @@ FROM employees METADATA _id Use enclosing double quotes (") or three enclosing double quotes (""") to escape index names that contain special characters: ```esql FROM "this=that","""this[that""" -``` \ No newline at end of file +``` + +### Limitations + +- By default, an ES|QL query without an explicit `LIMIT` uses an implicit limit of 1000 rows. This applies to the `FROM` command as well. +- Queries do not return more than 10,000 rows, regardless of the `LIMIT` command’s value. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-greatest.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-greatest.txt index 17217e8e84682..feb119185c72b 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-greatest.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-greatest.txt @@ -1,8 +1,22 @@ -## GREATEST +# GREATEST -The `GREATEST` function returns the maximum value from multiple columns. This is similar to `MV_MAX` except it is intended to run on multiple columns at once. When run on keyword or text fields, this function returns the last string in alphabetical order. When run on boolean columns, it will return `true` if any values are `true`. +The GREATEST function returns the maximum value from multiple columns. -### Examples +## Syntax + +`GREATEST(first, rest)` + +### Parameters + +#### first + +The first column to evaluate. + +#### rest + +The remaining columns to evaluate. + +## Examples ```esql ROW a = 10, b = 20 @@ -12,4 +26,9 @@ ROW a = 10, b = 20 ```esql ROW x = "apple", y = "banana", z = "cherry" | EVAL max_fruit = GREATEST(x, y, z) -``` \ No newline at end of file +``` + +## Notes + +- When applied to `keyword` or `text` fields, the GREATEST function returns the last string in alphabetical order. +- When applied to `boolean` columns, it returns `true` if any values are `true`. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-grok.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-grok.txt index cc357b986a58b..2f7fa48df693f 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-grok.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-grok.txt @@ -1,22 +1,24 @@ -## GROK +# GROK -GROK enables you to extract structured data out of a string. It matches the string against patterns based on regular expressions and extracts the specified patterns as columns. This command is useful for parsing logs, extracting fields from text, and structuring unstructured data. +The GROK command is used to extract structured data from a string. It matches the string against patterns based on regular expressions and extracts the specified patterns as columns. -### Use Cases -- **Log Parsing**: Extracting timestamps, IP addresses, and other fields from log entries. -- **Data Structuring**: Converting unstructured text data into structured columns. -- **Field Extraction**: Extracting specific fields from a string for further analysis. +## Syntax -### Limitations -- If a field name conflicts with an existing column, the existing column is discarded. -- If a field name is used more than once, a multi-valued column will be created with one value per each occurrence of the field name. -- The `GROK` command does not support configuring custom patterns or multiple patterns. -- The `GROK` command is not subject to Grok watchdog settings. +`GROK input "pattern"` + +### Parameters + +#### input + +The column containing the string you want to structure. If the column has multiple values, GROK will process each value. -### Examples +#### pattern -#### Example 1: Basic GROK Usage -This example parses a string that contains a timestamp, an IP address, an email address, and a number. +A grok pattern. If a field name conflicts with an existing column, the existing column is dropped. If a field name is used more than once, a multi-valued column is created with one value per each occurrence of the field name. + +## Examples + +The following example parses a string that contains a timestamp, an IP address, an email address, and a number: ```esql ROW a = "2023-01-23T12:15:00.000Z 127.0.0.1 some.email@foo.com 42" @@ -24,8 +26,7 @@ ROW a = "2023-01-23T12:15:00.000Z 127.0.0.1 some.email@foo.com 42" | KEEP date, ip, email, num ``` -#### Example 2: Type Conversion with GROK -By default, GROK outputs keyword string columns. To convert to other types, append `:type` to the semantics in the pattern. +By default, GROK outputs keyword string columns. `int` and `float` types can be converted by appending `:type` to the semantics in the pattern. For example `{NUMBER:num:int}`: ```esql ROW a = "2023-01-23T12:15:00.000Z 127.0.0.1 some.email@foo.com 42" @@ -33,8 +34,7 @@ ROW a = "2023-01-23T12:15:00.000Z 127.0.0.1 some.email@foo.com 42" | KEEP date, ip, email, num ``` -#### Example 3: Using Type Conversion Functions -For other type conversions, use Type conversion functions. +For other type conversions, use Type conversion functions: ```esql ROW a = "2023-01-23T12:15:00.000Z 127.0.0.1 some.email@foo.com 42" @@ -43,8 +43,7 @@ ROW a = "2023-01-23T12:15:00.000Z 127.0.0.1 some.email@foo.com 42" | EVAL date = TO_DATETIME(date) ``` -#### Example 4: Handling Multi-Valued Columns -If a field name is used more than once, GROK creates a multi-valued column. +If a field name is used more than once, GROK creates a multi-valued column: ```esql FROM addresses @@ -52,4 +51,9 @@ FROM addresses | GROK zip_code "%{WORD:zip_parts} %{WORD:zip_parts}" ``` -These examples showcase different usages of the GROK command, from basic extraction to handling type conversions and multi-valued columns. \ No newline at end of file +### Limitations + +- If a field name conflicts with an existing column, the existing column is discarded. +- If a field name is used more than once, a multi-valued column will be created with one value per each occurrence of the field name. +- The `GROK` command does not support configuring custom patterns or multiple patterns. +- The `GROK` command is not subject to Grok watchdog settings. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ip_prefix.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ip_prefix.txt index 65d4ccbf5d4b3..e06773023ebdd 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ip_prefix.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ip_prefix.txt @@ -1,8 +1,26 @@ -## IP_PREFIX +# IP_PREFIX -The `IP_PREFIX` function truncates an IP address to a given prefix length. It supports both IPv4 and IPv6 addresses. +The IP_PREFIX function truncates an IP address to a specified prefix length. -### Examples +## Syntax + +`IP_PREFIX(ip, prefixLengthV4, prefixLengthV6)` + +### Parameters + +#### ip + +The IP address that you want to truncate. This function supports both IPv4 and IPv6 addresses. + +#### prefixLengthV4 + +The prefix length for IPv4 addresses. + +#### prefixLengthV6 + +The prefix length for IPv6 addresses. + +## Examples ```esql ROW ip4 = TO_IP("1.2.3.4"), ip6 = TO_IP("fe80::cae2:65ff:fece:feb9") @@ -13,4 +31,4 @@ ROW ip4 = TO_IP("1.2.3.4"), ip6 = TO_IP("fe80::cae2:65ff:fece:feb9") FROM network_logs | EVAL truncated_ip = IP_PREFIX(ip_address, 16, 0) | KEEP ip_address, truncated_ip -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-keep.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-keep.txt index fbf2466d26c6e..84d8207bdf934 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-keep.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-keep.txt @@ -1,17 +1,32 @@ -## KEEP +# KEEP -The `KEEP` processing command in ES|QL enables you to specify which columns are returned and the order in which they are returned. This command is particularly useful when you want to focus on specific fields in your dataset, either by explicitly naming them or by using wildcard patterns. The `KEEP` command supports a variety of use cases, such as filtering out unnecessary columns, reordering columns for better readability, and ensuring that only relevant data is processed in subsequent commands. +The KEEP command allows you to specify which columns to return and in what order. -### Use Cases -- **Selective Column Retrieval**: Retrieve only the columns you need for analysis, reducing the amount of data processed. -- **Column Reordering**: Specify the order in which columns should appear in the result set. -- **Wildcard Support**: Use wildcards to include multiple columns that match a pattern, simplifying queries when dealing with numerous fields. +## Syntax -### Limitations -- **Precedence Rules**: When a field name matches multiple expressions, precedence rules are applied. Complete field names take the highest precedence, followed by partial wildcard expressions, and finally, the wildcard `*`. -- **Column Conflicts**: If a field matches two expressions with the same precedence, the rightmost expression wins. +`KEEP columns` -### Examples +### Parameters + +#### columns + +A comma-separated list of columns to retain. Wildcards are supported. If an existing column matches multiple provided wildcards or column names, certain rules apply. + +## Note + +The KEEP command is used to specify which columns to return and their order. + +When a field name matches multiple expressions, precedence rules are applied. Fields are added in the order they appear. If one field matches multiple expressions, the following precedence rules apply (from highest to lowest priority): + +1. Complete field name (no wildcards) +2. Partial wildcard expressions (for example: `fieldNam*`) +3. Wildcard only (`*`) + +If a field matches two expressions with the same precedence, the rightmost expression wins. + +Important: only the columns in the KEEP command can be used after a KEEP command. + +## Examples #### Example 1: Specifying Columns Explicitly This example demonstrates how to explicitly specify the columns to be returned. @@ -60,5 +75,3 @@ This example illustrates how the simple wildcard expression `*` has the lowest p FROM employees | KEEP *, first_name ``` - -These examples showcase the versatility and utility of the `KEEP` command in various scenarios, making it a powerful tool for data manipulation in ES|QL. \ No newline at end of file diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-least.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-least.txt index f756820f7840d..7e0f77bc911eb 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-least.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-least.txt @@ -1,8 +1,22 @@ -## LEAST +# LEAST -Returns the minimum value from multiple columns. This is similar to `MV_MIN` except it is intended to run on multiple columns at once. +The LEAST function returns the smallest value from multiple columns. -### Examples +## Syntax + +`LEAST(first, rest)` + +### Parameters + +#### first + +The first column to evaluate. + +#### rest + +The remaining columns to evaluate. + +## Examples ```esql ROW a = 10, b = 20 @@ -12,4 +26,4 @@ ROW a = 10, b = 20 ```esql ROW x = 5, y = 15, z = 10 | EVAL min_value = LEAST(x, y, z) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-left.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-left.txt index 5164a100ea22b..74997f638f463 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-left.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-left.txt @@ -1,8 +1,24 @@ -## LEFT +# LEFT -The `LEFT` function returns the substring that extracts a specified number of characters from a string, starting from the left. +The LEFT function returns a substring from the beginning of a specified string. -### Examples +## Syntax + +`LEFT(string, length)` + +### Parameters + +#### string + +The string from which a substring will be extracted. + +#### length + +The number of characters to extract from the string. + +## Examples + +The following example extracts the first three characters from the `last_name` field: ```esql FROM employees @@ -16,4 +32,4 @@ FROM employees ROW full_name = "John Doe" | EVAL first_name = LEFT(full_name, 4) | KEEP first_name -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-length.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-length.txt index ea692e7fe9eae..996464cf42ba1 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-length.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-length.txt @@ -1,8 +1,20 @@ -## LENGTH +# LENGTH -The `LENGTH` function returns the character length of a string. If the input string is null, the function returns null. +The LENGTH function calculates the character length of a given string. -### Examples +## Syntax + +`LENGTH(string)` + +### Parameters + +#### string + +The string expression for which the length is to be calculated. + +## Examples + +The following example calculates the character length of the `first_name` field: ```esql FROM employees @@ -13,4 +25,4 @@ FROM employees ```esql ROW message = "Hello, World!" | EVAL message_length = LENGTH(message) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-limit.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-limit.txt index da1a0f85a8782..1a77939b4afbd 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-limit.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-limit.txt @@ -1,24 +1,19 @@ -## LIMIT +# LIMIT -The `LIMIT` processing command in ES|QL is used to restrict the number of rows returned by a query. This is particularly useful when you want to control the volume of data retrieved, either for performance reasons or to focus on a specific subset of the data. +The LIMIT command is used to restrict the number of rows returned by a query. -### Use Cases -- **Performance Optimization**: By limiting the number of rows returned, you can improve query performance and reduce the load on the Elasticsearch cluster. -- **Data Sampling**: Useful for retrieving a sample of data for analysis or debugging. -- **Pagination**: Helps in implementing pagination by limiting the number of rows per page. +## Syntax -### Limitations -- **Maximum Rows**: Queries do not return more than 10,000 rows, regardless of the `LIMIT` command’s value. This limit only applies to the number of rows that are retrieved by the query. Queries and aggregations run on the full data set. -- **Overcoming Limitations**: To overcome this limitation, you can: - - Reduce the result set size by modifying the query to only return relevant data using the `WHERE` command. - - Shift any post-query processing to the query itself using the `STATS ... BY` command to aggregate data in the query. -- **Dynamic Cluster Settings**: The default and maximum limits can be changed using these dynamic cluster settings: - - `esql.query.result_truncation_default_size` - - `esql.query.result_truncation_max_size` +`LIMIT max_number_of_rows` -### Examples +### Parameters + +#### max_number_of_rows + +This parameter specifies the maximum number of rows to be returned. + +## Examples -#### Example 1: Basic Usage This example demonstrates how to limit the number of rows returned to 5. ```esql @@ -27,8 +22,7 @@ FROM employees | LIMIT 5 ``` -#### Example 2: Limiting Rows After Filtering -This example shows how to limit the number of rows after applying a filter. +This example shows how to limit the number of rows after applying a filter: ```esql FROM employees @@ -36,8 +30,7 @@ FROM employees | LIMIT 10 ``` -#### Example 3: Limiting Rows with Aggregation -This example demonstrates limiting the number of rows after performing an aggregation. +This example demonstrates limiting the number of rows after performing an aggregation: ```esql FROM employees @@ -45,8 +38,7 @@ FROM employees | LIMIT 3 ``` -#### Example 4: Limiting Rows with Sorting -This example shows how to limit the number of rows after sorting the data. +This example shows how to limit the number of rows after sorting the data: ```esql FROM employees @@ -54,8 +46,7 @@ FROM employees | LIMIT 7 ``` -#### Example 5: Limiting Rows with Multiple Commands -This example demonstrates the use of `LIMIT` in conjunction with multiple other commands. +This example demonstrates the use of `LIMIT` in conjunction with multiple other commands: ```esql FROM employees @@ -65,4 +56,20 @@ FROM employees | LIMIT 5 ``` -By using the `LIMIT` command, you can effectively manage the volume of data returned by your ES|QL queries, ensuring better performance and more focused results. \ No newline at end of file +## Limitations + +There is no way to achieve pagination with LIMIT, there is no offset parameter. + +A query will never return more than 10,000 rows. This limitation only applies to the number of rows retrieved by the query. The query and any aggregations will still run on the full dataset. + +To work around this limitation: + +- Reduce the size of the result set by modifying the query to only return relevant data. This can be achieved by using the WHERE command to select a smaller subset of the data. +- Shift any post-query processing to the query itself. The ES|QL STATS ... BY command can be used to aggregate data within the query. + +## Notes + +The default and maximum limits can be adjusted using the following dynamic cluster settings: + +- `esql.query.result_truncation_default_size` +- `esql.query.result_truncation_max_size` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-locate.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-locate.txt index e62ea05fcc3ab..1dafd3fa8c998 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-locate.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-locate.txt @@ -1,18 +1,26 @@ -## LOCATE +# LOCATE -The `LOCATE` function returns an integer that indicates the position of a keyword substring within another string. +The LOCATE function returns the position of a specified substring within a string. -### Syntax +## Syntax `LOCATE(string, substring, start)` ### Parameters -- `string`: An input string. -- `substring`: A substring to locate in the input string. -- `start`: The start index. +#### string -### Examples +The string in which you want to search for the substring. + +#### substring + +The substring you want to find in the string. + +#### start + +The starting index for the search. + +## Examples ```esql ROW a = "hello" @@ -22,4 +30,9 @@ ROW a = "hello" ```esql ROW phrase = "Elasticsearch is powerful" | EVAL position = LOCATE(phrase, "powerful") -``` \ No newline at end of file +``` + +## Notes + +- String positions start from `1`. +- If the substring cannot be found, the function returns `0`. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-log.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-log.txt index b41fef3adc86d..0c476551c02d4 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-log.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-log.txt @@ -1,8 +1,22 @@ -## LOG +# LOG -The `LOG` function returns the logarithm of a value to a specified base. The input can be any numeric value, and the return value is always a double. Logs of zero, negative numbers, and base of one return null as well as a warning. +The LOG function calculates the logarithm of a given value to a specified base. -### Examples +## Syntax + +`LOG(base, number)` + +### Parameters + +#### base + +The base of the logarithm. If the base is `null`, the function will return `null`. If the base is not provided, the function will return the natural logarithm (base e) of the value. + +#### number + +The numeric value for which the logarithm is to be calculated. If the number is `null`, the function will return `null`. + +## Examples ```esql ROW base = 2.0, value = 8.0 @@ -12,4 +26,4 @@ ROW base = 2.0, value = 8.0 ```esql ROW value = 100 | EVAL s = LOG(value) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-lookup.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-lookup.txt index fc9312674db81..d6923ba0bb25f 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-lookup.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-lookup.txt @@ -1,10 +1,22 @@ -## LOOKUP +# LOOKUP -The `LOOKUP` command in ES|QL is highly experimental and only available in SNAPSHOT versions. It matches values from the input against a table provided in the request, adding the other fields from the table to the output. This command is useful for enriching your dataset with additional information from a predefined table. However, it is important to note that if the table’s column names conflict with existing columns, the existing columns will be dropped. +The LOOKUP command is a highly experimental feature currently only available in SNAPSHOT versions. It matches values from the input against a provided table, appending the other fields from the table to the output. -### Examples +## Syntax -Here are some example ES|QL queries using the `LOOKUP` command: +`LOOKUP table ON match_field1[, match_field2, ...]` + +### Parameters + +#### table + +The name of the table provided in the request to match against. If the table’s column names conflict with existing columns, the existing columns will be dropped. + +#### match_field + +The fields in the input to match against the table. + +## Examples 1. **Basic Lookup Example:** ```esql @@ -98,4 +110,4 @@ A Fire Upon the Deep|Vernor Vinge |Diamond Dune |Frank Herbert |The New Wave Revelation Space |Alastair Reynolds|Diamond Leviathan Wakes |James S.A. Corey |Hadron -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ltrim.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ltrim.txt index 7a34fe57f9801..29e266a197b32 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ltrim.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-ltrim.txt @@ -1,8 +1,18 @@ -## LTRIM +# LTRIM -Removes leading whitespaces from a string. +The LTRIM function is used to remove leading whitespaces from a string. -### Examples +## Syntax + +`LTRIM(string)` + +### Parameters + +#### string + +This is the string expression from which you want to remove leading whitespaces. If the string is `null`, the function will return `null`. + +## Examples ```esql ROW message = " some text ", color = " red " @@ -16,4 +26,4 @@ ROW message = " some text ", color = " red " ROW text = " example text " | EVAL trimmed_text = LTRIM(text) | EVAL formatted_text = CONCAT("Trimmed: '", trimmed_text, "'") -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-max.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-max.txt index 381c66afa9bb1..8f30ac8ac94c8 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-max.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-max.txt @@ -1,15 +1,29 @@ -## MAX +# MAX -The `MAX` function returns the maximum value of a specified field. +The MAX function calculates the maximum value of a specified field. -### Examples +## Syntax + +`MAX(field)` + +### Parameters + +#### field + +The field for which the maximum value is to be calculated. + +## Examples + +Calculate the maximum number of languages known by employees: ```esql FROM employees | STATS MAX(languages) ``` +The MAX function can be used with inline functions: + ```esql FROM employees | STATS max_avg_salary_change = MAX(MV_AVG(salary_change)) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-median.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-median.txt index 5da7a9be4fdb3..0e7b1900bd003 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-median.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-median.txt @@ -1,15 +1,33 @@ -## MEDIAN +# MEDIAN -The `MEDIAN` function returns the value that is greater than half of all values and less than half of all values, also known as the 50% PERCENTILE. Like `PERCENTILE`, `MEDIAN` is usually approximate. It is also non-deterministic, meaning you can get slightly different results using the same data. +The MEDIAN function calculates the median value of a numeric field. The median is the value that is greater than half of all values and less than half of all values, also known as the 50% percentile. -### Examples +## Syntax + +`MEDIAN(number)` + +### Parameters + +#### number + +The numeric field for which the median is calculated. + +## Examples + +Calculate the median salary: ```esql FROM employees -| STATS MEDIAN(salary), PERCENTILE(salary, 50) +| STATS MEDIAN(salary) ``` +Calculate the median of the maximum values of a multivalued column: + ```esql FROM employees | STATS median_max_salary_change = MEDIAN(MV_MAX(salary_change)) -``` \ No newline at end of file +``` + +## Limitations + +- The MEDIAN function is usually approximate and non-deterministic. This means you can get slightly different results using the same data. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-median_absolute_deviation.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-median_absolute_deviation.txt index 07da947d5494c..6bd3de7db5cf6 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-median_absolute_deviation.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-median_absolute_deviation.txt @@ -1,15 +1,34 @@ -## MEDIAN_ABSOLUTE_DEVIATION +# MEDIAN_ABSOLUTE_DEVIATION -The `MEDIAN_ABSOLUTE_DEVIATION` function returns the median absolute deviation, a measure of variability. It is a robust statistic, meaning that it is useful for describing data that may have outliers, or may not be normally distributed. For such data, it can be more descriptive than standard deviation. It is calculated as the median of each data point’s deviation from the median of the entire sample. That is, for a random variable X, the median absolute deviation is median(|median(X) - X|). Like `PERCENTILE`, `MEDIAN_ABSOLUTE_DEVIATION` is usually approximate. +The MEDIAN_ABSOLUTE_DEVIATION function calculates the median absolute deviation, a measure of variability. It is particularly useful for describing data that may have outliers or may not follow a normal distribution. In such cases, it can be more descriptive than standard deviation. The function computes the median of each data point’s deviation from the median of the entire sample. -### Examples +## Syntax + +`MEDIAN_ABSOLUTE_DEVIATION(number)` + +### Parameters + +#### number + +The numeric expression for which the median absolute deviation is to be calculated. + +## Examples + +Calculate the median salary and the median absolute deviation of salaries: ```esql FROM employees | STATS MEDIAN(salary), MEDIAN_ABSOLUTE_DEVIATION(salary) ``` +Calculate the median absolute deviation of the maximum values of a multivalued column: + ```esql FROM employees | STATS m_a_d_max_salary_change = MEDIAN_ABSOLUTE_DEVIATION(MV_MAX(salary_change)) -``` \ No newline at end of file +``` + +## Limitations + +- The `MEDIAN_ABSOLUTE_DEVIATION` function is non-deterministic, which means you can get slightly different results using the same data. +- The `MEDIAN_ABSOLUTE_DEVIATION` function is usually approximate, which means the results may not be exact. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-min.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-min.txt index 043ad01280ad8..6b4848c7fc9a7 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-min.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-min.txt @@ -1,15 +1,29 @@ -## MIN +# MIN -The `MIN` function returns the minimum value of a specified field. +The MIN function calculates the minimum value of a specified field. -### Examples +## Syntax + +`MIN(field)` + +### Parameters + +#### field + +The field for which the minimum value is to be calculated. + +## Examples + +Calculate the minimum number of languages spoken by employees: ```esql FROM employees | STATS MIN(languages) ``` +The MIN function can be used with inline functions: + ```esql FROM employees | STATS min_avg_salary_change = MIN(MV_AVG(salary_change)) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_append.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_append.txt index 9926157ce96c4..46196cf32931b 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_append.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_append.txt @@ -1,8 +1,16 @@ -## MV_APPEND +# MV_APPEND -The `MV_APPEND` function concatenates values of two multi-value fields. +MV_APPEND is a function that concatenates the values of two multi-value fields. -### Examples +## Syntax + +`MV_APPEND(field1, field2)` + +### Parameters + +#### field1 + +The first multi-value field to be concatenated. ```esql ROW a = ["foo", "bar"], b = ["baz", "qux"] @@ -14,4 +22,4 @@ ROW a = ["foo", "bar"], b = ["baz", "qux"] ROW x = [1, 2, 3], y = [4, 5, 6] | EVAL z = MV_APPEND(x, y) | KEEP x, y, z -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_avg.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_avg.txt index 431c4ec6b2891..81d9eb231311b 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_avg.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_avg.txt @@ -1,8 +1,18 @@ -## MV_AVG +# MV_AVG -The `MV_AVG` function converts a multivalued field into a single-valued field containing the average of all the values. +The MV_AVG function calculates the average of all values in a multivalued field and returns a single value. -### Examples +## Syntax + +`MV_AVG(number)` + +### Parameters + +#### number + +A multivalued expression. + +## Examples ```esql ROW a=[3, 5, 1, 6] @@ -12,4 +22,4 @@ ROW a=[3, 5, 1, 6] ```esql ROW scores=[10, 20, 30, 40] | EVAL average_score = MV_AVG(scores) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_concat.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_concat.txt index 32c029703257d..7a4d9fff9466a 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_concat.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_concat.txt @@ -1,15 +1,33 @@ -## MV_CONCAT +# MV_CONCAT -Converts a multivalued string expression into a single valued column containing the concatenation of all values separated by a delimiter. +MV_CONCAT is a function that transforms a multivalued string expression into a single valued column. It concatenates all values and separates them with a specified delimiter. -### Examples +## Syntax + +`MV_CONCAT(string, delim)` + +### Parameters + +#### string + +A multivalue expression. + +#### delim + +This is the delimiter that separates the concatenated values. + +## Examples + +The following example concatenates the values in the array ["foo", "zoo", "bar"] with a comma and a space as the delimiter: ```esql ROW a=["foo", "zoo", "bar"] | EVAL j = MV_CONCAT(a, ", ") ``` +If you want to concatenate non-string columns, you need to convert them to strings first using the `TO_STRING` function: + ```esql ROW a=[10, 9, 8] | EVAL j = MV_CONCAT(TO_STRING(a), ", ") -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_count.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_count.txt index a8f8d0c5149ad..808563d91b3bf 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_count.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_count.txt @@ -1,8 +1,18 @@ -## MV_COUNT +# MV_COUNT -The `MV_COUNT` function converts a multivalued expression into a single-valued column containing a count of the number of values. +The MV_COUNT function calculates the total number of values in a multivalued expression. -### Examples +## Syntax + +`MV_COUNT(field)` + +### Parameters + +#### field + +A multivalued expression. + +## Examples ```esql ROW a=["foo", "zoo", "bar"] @@ -12,4 +22,4 @@ ROW a=["foo", "zoo", "bar"] ```esql ROW b=["apple", "banana", "cherry", "date"] | EVAL count_b = MV_COUNT(b) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_dedupe.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_dedupe.txt index 297179f995dff..644ddd6d5f405 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_dedupe.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_dedupe.txt @@ -1,8 +1,18 @@ -## MV_DEDUPE +# MV_DEDUPE -Removes duplicate values from a multivalued field. `MV_DEDUPE` may, but won’t always, sort the values in the column. +The MV_DEDUPE function is used to eliminate duplicate values from a multivalued field. -### Examples +## Syntax + +`MV_DEDUPE(field)` + +### Parameters + +#### field + +This is a multivalue expression. + +## Examples ```esql ROW a=["foo", "foo", "bar", "foo"] @@ -12,4 +22,8 @@ ROW a=["foo", "foo", "bar", "foo"] ```esql ROW b=["apple", "apple", "banana", "apple", "banana"] | EVAL dedupe_b = MV_DEDUPE(b) -``` \ No newline at end of file +``` + +## Notes + +While MV_DEDUPE may sort the values in the column, it's not guaranteed to always do so. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_expand.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_expand.txt index 76528b5e22654..3248391d3d658 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_expand.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_expand.txt @@ -1,27 +1,27 @@ -## MV_EXPAND +# MV_EXPAND -The `MV_EXPAND` processing command expands multivalued columns into one row per value, duplicating other columns. This command is useful when you need to normalize data that contains multivalued fields, making it easier to perform operations on each individual value. +The MV_EXPAND command is used to expand multivalued columns into individual rows, replicating the other columns for each new row. -### Use Cases -- **Normalization**: Transform multivalued fields into single-valued rows for easier analysis and processing. -- **Data Transformation**: Prepare data for further operations like sorting, filtering, or aggregating by expanding multivalued fields. -- **Data Cleaning**: Simplify complex data structures by breaking down multivalued fields into individual rows. +## Syntax -### Limitations -- This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. +`MV_EXPAND column` -### Examples +### Parameters -#### Example 1: Basic Expansion -Expanding a multivalued column `a` into individual rows. +#### column + +This is the multivalued column that you want to expand. + +## Examples + +Expanding a multivalued column `a` into individual rows: ```esql ROW a=[1,2,3], b="b", j=["a","b"] | MV_EXPAND a ``` -#### Example 2: Expanding Multiple Columns -Expanding two multivalued columns `a` and `j` into individual rows. +Expanding two multivalued columns `a` and `j` into individual rows: ```esql ROW a=[1,2,3], b="b", j=["a","b"] @@ -29,8 +29,7 @@ ROW a=[1,2,3], b="b", j=["a","b"] | MV_EXPAND j ``` -#### Example 3: Combining with Other Commands -Expanding a multivalued column and then filtering the results. +Expanding a multivalued column and then filtering the results: ```esql ROW a=[1,2,3,4,5], b="b" @@ -38,4 +37,6 @@ ROW a=[1,2,3,4,5], b="b" | WHERE a > 2 ``` -These examples demonstrate different ways to use the `MV_EXPAND` command to transform and analyze data with multivalued fields. \ No newline at end of file +## Notes + +This feature is currently in technical preview and may be subject to changes or removal in future releases. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_first.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_first.txt index 1969ad30226ac..7b04ce040c7b0 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_first.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_first.txt @@ -1,8 +1,18 @@ -## MV_FIRST +# MV_FIRST -The `MV_FIRST` function converts a multivalued expression into a single-valued column containing the first value. This is most useful when reading from a function that emits multivalued columns in a known order like `SPLIT`. The order that multivalued fields are read from underlying storage is not guaranteed. It is frequently ascending, but don’t rely on that. If you need the minimum value, use `MV_MIN` instead of `MV_FIRST`. `MV_MIN` has optimizations for sorted values so there isn’t a performance benefit to `MV_FIRST`. +The MV_FIRST function converts a multivalued expression into a single valued column containing the first value. -### Examples +## Syntax + +`MV_FIRST(field)` + +### Parameters + +#### field + +A multivalue expression. + +## Examples ```esql ROW a="foo;bar;baz" @@ -12,4 +22,8 @@ ROW a="foo;bar;baz" ```esql ROW b="apple;banana;cherry" | EVAL first_b = MV_FIRST(SPLIT(b, ";")) -``` \ No newline at end of file +``` + +## Notes + +The MV_FIRST function is particularly useful when reading from a function that emits multivalued columns in a known order, such as SPLIT. However, it's important to note that the order in which multivalued fields are read from underlying storage is not guaranteed. While it's often ascending, this should not be relied upon. If you need the minimum value, use the MV_MIN function instead of MV_FIRST. MV_MIN has optimizations for sorted values, so there isn't a performance benefit to MV_FIRST. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_last.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_last.txt index f6331ab55a7eb..2a9efa61ea0d6 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_last.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_last.txt @@ -1,8 +1,20 @@ -## MV_LAST +# MV_LAST -The `MV_LAST` function converts a multivalue expression into a single valued column containing the last value. This is most useful when reading from a function that emits multivalued columns in a known order like `SPLIT`. The order that multivalued fields are read from underlying storage is not guaranteed. It is frequently ascending, but don’t rely on that. If you need the maximum value, use `MV_MAX` instead of `MV_LAST`. `MV_MAX` has optimizations for sorted values so there isn’t a performance benefit to `MV_LAST`. +The MV_LAST function converts a multivalued expression into a single valued column containing the last value. -### Examples +## Syntax + +`MV_LAST(field)` + +### Parameters + +#### field + +A multivalue expression. + + + +## Examples ```esql ROW a="foo;bar;baz" @@ -12,4 +24,8 @@ ROW a="foo;bar;baz" ```esql ROW a="apple;banana;cherry" | EVAL last_fruit = MV_LAST(SPLIT(a, ";")) -``` \ No newline at end of file +``` + +## Notes + +The MV_LAST function is particularly useful when reading from a function that emits multivalued columns in a known order, such as SPLIT. However, the order in which multivalued fields are read from underlying storage is not guaranteed. It is often ascending, but this should not be relied upon. If you need the maximum value, use the MV_MAX function instead of MV_LAST. MV_MAX has optimizations for sorted values, so there is no performance benefit to using MV_LAST. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_max.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_max.txt index 4c6d50ec151ee..03f894ce203a8 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_max.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_max.txt @@ -1,15 +1,29 @@ -## MV_MAX +# MV_MAX -The `MV_MAX` function converts a multivalued expression into a single valued column containing the maximum value. +MV_MAX function converts a multivalued expression into a single valued column containing the maximum value. -### Examples +## Syntax + +`MV_MAX(field)` + +### Parameters + +#### field + +A multivalue expression. + +## Examples + +The following example demonstrates the use of MV_MAX function: ```esql ROW a=[3, 5, 1] | EVAL max_a = MV_MAX(a) ``` +MV_MAX function can be used with any column type, including `keyword` columns. In such cases, it selects the last string, comparing their utf-8 representation byte by byte: + ```esql ROW a=["foo", "zoo", "bar"] | EVAL max_a = MV_MAX(a) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_median.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_median.txt index 6702441a82bca..013cce53deded 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_median.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_median.txt @@ -1,17 +1,27 @@ -## MV_MEDIAN +# MV_MEDIAN -The `MV_MEDIAN` function converts a multivalued field into a single valued field containing the median value. +The MV_MEDIAN function converts a multivalued field into a single valued field containing the median value. -### Examples +## Syntax + +`MV_MEDIAN(number)` + +### Parameters + +#### number + +A multivalue expression. + +## Examples ```esql ROW a=[3, 5, 1] | EVAL median_a = MV_MEDIAN(a) ``` -If the row has an even number of values for a column, the result will be the average of the middle two entries. If the column is not floating point, the average rounds down: +If the row has an even number of values for a column, the result will be the average of the middle two entries. If the column is not floating point, the average rounds **down**: ```esql ROW a=[3, 7, 1, 6] | EVAL median_a = MV_MEDIAN(a) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_min.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_min.txt index 386f5d424cef8..97cb8db004cda 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_min.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_min.txt @@ -1,8 +1,18 @@ -## MV_MIN +# MV_MIN -The `MV_MIN` function converts a multivalued expression into a single valued column containing the minimum value. +The MV_MIN function converts a multivalued expression into a single valued column containing the minimum value. -### Examples +## Syntax + +`MV_MIN(field)` + +### Parameters + +#### field + +This is a multivalue expression. + +## Examples ```esql ROW a=[2, 1] @@ -12,4 +22,4 @@ ROW a=[2, 1] ```esql ROW a=["foo", "bar"] | EVAL min_a = MV_MIN(a) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_pseries_weighted_sum.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_pseries_weighted_sum.txt index 1b1fc706b8d3d..85845e5fa8de1 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_pseries_weighted_sum.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_pseries_weighted_sum.txt @@ -1,8 +1,22 @@ -## MV_PSERIES_WEIGHTED_SUM +# MV_PSERIES_WEIGHTED_SUM -Converts a multivalued expression into a single-valued column by multiplying every element on the input list by its corresponding term in P-Series and computing the sum. +The MV_PSERIES_WEIGHTED_SUM function transforms a multivalued expression into a single-valued column. It does this by multiplying each element in the input list by its corresponding term in a P-Series and then calculating the sum. -### Examples +## Syntax + +`MV_PSERIES_WEIGHTED_SUM(number, p)` + +### Parameters + +#### number + +This is a multivalue expression. + +#### p + +A number that represents the *p* parameter in the P-Series. It influences the contribution of each element to the weighted sum. + +## Examples ```esql ROW a = [70.0, 45.0, 21.0, 21.0, 21.0] @@ -14,4 +28,4 @@ ROW a = [70.0, 45.0, 21.0, 21.0, 21.0] ROW b = [10.0, 20.0, 30.0, 40.0, 50.0] | EVAL weighted_sum = MV_PSERIES_WEIGHTED_SUM(b, 2.0) | KEEP weighted_sum -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_slice.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_slice.txt index 4b93d9703095b..fccf790cfb79e 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_slice.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_slice.txt @@ -1,8 +1,26 @@ -## MV_SLICE +# MV_SLICE -The `MV_SLICE` function returns a subset of the multivalued field using the start and end index values. +The MV_SLICE function is used to extract a subset of a multivalued field using specified start and end index values. -### Examples +## Syntax + +`MV_SLICE(field, start, end)` + +### Parameters + +#### field + +This is a multivalue expression. If `null`, the function will return `null`. + +#### start + +This is the start position. If `null`, the function will return `null`. The start argument can be negative, where an index of -1 is used to specify the last value in the list. + +#### end + +This is the end position (included). This parameter is optional; if omitted, the position at `start` is returned. The end argument can be negative, where an index of -1 is used to specify the last value in the list. + +## Examples ```esql ROW a = [1, 2, 2, 3] @@ -12,4 +30,4 @@ ROW a = [1, 2, 2, 3] ```esql ROW a = [1, 2, 2, 3] | EVAL a1 = MV_SLICE(a, -2), a2 = MV_SLICE(a, -3, -1) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_sort.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_sort.txt index 14d41a8fd8d56..a2191a59214d8 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_sort.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_sort.txt @@ -1,15 +1,35 @@ -## MV_SORT +# MV_SORT -The `MV_SORT` function sorts a multivalued field in lexicographical order. The valid options for the sort order are `ASC` (ascending) and `DESC` (descending), with the default being `ASC`. +The MV_SORT function sorts a multivalued field in lexicographical order. -### Examples +## Syntax + +`MV_SORT(field, order)` + +### Parameters + +#### field + +This is a multivalue expression. If the value is `null`, the function will return `null`. + +#### order + +This parameter determines the sort order. The valid options are `ASC` and `DESC`. If not specified, the default is `ASC`. + +## Examples + +Without order parameter + +```esql +ROW names = ["Alice", "Bob", "Charlie"] +| EVAL sorted_names = mv_sort(names) +``` + +With order parameter ```esql ROW a = [4, 2, -3, 2] | EVAL sa = mv_sort(a), sd = mv_sort(a, "DESC") ``` -```esql -ROW names = ["Alice", "Bob", "Charlie"] -| EVAL sorted_names = mv_sort(names) -``` \ No newline at end of file + diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_sum.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_sum.txt index 8ee548edccc9c..7e09a7ceaff06 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_sum.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_sum.txt @@ -1,8 +1,18 @@ -## MV_SUM +# MV_SUM -The `MV_SUM` function converts a multivalued field into a single valued field containing the sum of all of the values. +The MV_SUM function converts a multivalued field into a single valued field containing the sum of all the values. -### Examples +## Syntax + +`MV_SUM(number)` + +### Parameters + +#### number + +This is a multivalue expression. + +## Examples ```esql ROW a=[3, 5, 6] @@ -12,4 +22,4 @@ ROW a=[3, 5, 6] ```esql ROW numbers=[1, 2, 3, 4, 5] | EVAL total_sum = MV_SUM(numbers) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_zip.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_zip.txt index 953519b4bd3fe..c6349624e05af 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_zip.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-mv_zip.txt @@ -1,17 +1,37 @@ -## MV_ZIP +# MV_ZIP -The `MV_ZIP` function combines the values from two multivalued fields with a delimiter that joins them together. +The MV_ZIP function combines the values from two multivalued fields with a specified delimiter. -### Examples +## Syntax + +`MV_ZIP(string1, string2, delim)` + +### Parameters + +#### string1 + +A multivalue expression. + +#### string2 + +A multivalue expression. + +#### delim + +An optional parameter that specifies the delimiter used to join the values. If omitted, a comma (`,`) is used as the default delimiter. + +## Examples + +The following example demonstrates how to use the MV_ZIP function: ```esql ROW a = ["x", "y", "z"], b = ["1", "2"] -| EVAL c = mv_zip(a, b, "-") +| EVAL c = MV_ZIP(a, b, "-") | KEEP a, b, c ``` ```esql ROW names = ["Alice", "Bob", "Charlie"], ids = ["001", "002", "003"] -| EVAL combined = mv_zip(names, ids, ":") +| EVAL combined = MV_ZIP(names, ids, ":") | KEEP names, ids, combined -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-now.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-now.txt index 165bcfe7af1dd..15fd1e506a1d4 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-now.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-now.txt @@ -1,8 +1,16 @@ -## NOW +# NOW -The `NOW` function returns the current date and time. +The NOW function returns the current date and time. -### Examples +## Syntax + +`NOW()` + +### Parameters + +This function does not require any parameters. + +## Examples ```esql ROW current_date = NOW() @@ -11,4 +19,4 @@ ROW current_date = NOW() ```esql FROM sample_data | WHERE @timestamp > NOW() - 1 hour -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-operators.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-operators.txt index cc6c7f5bdf348..0e79037636072 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-operators.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-operators.txt @@ -1,204 +1,224 @@ # ES|QL Operators +This document provides an overview of the operators supported by ES|QL. + ## Binary Operators -### Equality (`==`) -Check if two fields are equal. If either field is multivalued, the result is null. This is pushed to the underlying search index if one side of the comparison is constant and the other side is a field in the index that has both an index and doc_values. +### Equality `==` + +The equality operator checks if the values of two operands are equal or not. + +Example: -#### Example: ```esql FROM employees -| WHERE first_name == "John" -| KEEP first_name, last_name +| WHERE emp_no == 10001 ``` -### Inequality (`!=`) -Check if two fields are unequal. If either field is multivalued, the result is null. This is pushed to the underlying search index if one side of the comparison is constant and the other side is a field in the index that has both an index and doc_values. +### Inequality `!=` + +The inequality operator checks if the values of two operands are equal or not. + +Example: -#### Example: ```esql FROM employees -| WHERE first_name != "John" -| KEEP first_name, last_name +| WHERE emp_no != 10001 ``` -### Less than (`<`) -Check if one field is less than another. If either field is multivalued, the result is null. This is pushed to the underlying search index if one side of the comparison is constant and the other side is a field in the index that has both an index and doc_values. +### Less Than `<` + +The less than operator checks if the value of the left operand is less than the value of the right operand. + +Example: -#### Example: ```esql FROM employees -| WHERE age < 30 -| KEEP first_name, last_name, age +| WHERE salary < 50000 ``` -### Less than or equal to (`<=`) -Check if one field is less than or equal to another. If either field is multivalued, the result is null. This is pushed to the underlying search index if one side of the comparison is constant and the other side is a field in the index that has both an index and doc_values. +### Less Than or Equal To `<=` + +This operator checks if the value of the left operand is less than or equal to the value of the right operand. + +Example: -#### Example: ```esql FROM employees -| WHERE age <= 30 -| KEEP first_name, last_name, age +| WHERE salary <= 50000 ``` -### Greater than (`>`) -Check if one field is greater than another. If either field is multivalued, the result is null. This is pushed to the underlying search index if one side of the comparison is constant and the other side is a field in the index that has both an index and doc_values. +### Greater Than `>` + +The greater than operator checks if the value of the left operand is greater than the value of the right operand. + +Example: -#### Example: ```esql FROM employees -| WHERE age > 30 -| KEEP first_name, last_name, age +| WHERE salary > 50000 ``` -### Greater than or equal to (`>=`) -Check if one field is greater than or equal to another. If either field is multivalued, the result is null. This is pushed to the underlying search index if one side of the comparison is constant and the other side is a field in the index that has both an index and doc_values. +### Greater Than or Equal To `>=` + +This operator checks if the value of the left operand is greater than or equal to the value of the right operand. + +Example: -#### Example: ```esql FROM employees -| WHERE age >= 30 -| KEEP first_name, last_name, age +| WHERE salary >= 50000 ``` -### Add (`+`) -Add two numbers together. If either field is multivalued, the result is null. +### Add `+` + +The add operator adds the values of the operands. + +Example: -#### Example: ```esql FROM employees -| EVAL total_salary = base_salary + bonus -| KEEP first_name, last_name, total_salary +| EVAL total_compensation = salary + bonus ``` -### Subtract (`-`) -Subtract one number from another. If either field is multivalued, the result is null. +### Subtract `-` + +The subtract operator subtracts the right-hand operand from the left-hand operand. + +Example: -#### Example: ```esql FROM employees -| EVAL net_salary = gross_salary - tax -| KEEP first_name, last_name, net_salary +| EVAL remaining_salary = salary - tax ``` -### Multiply (`*`) -Multiply two numbers together. If either field is multivalued, the result is null. +### Multiply `*` + +The multiply operator multiplies the values of the operands. + +Example: -#### Example: ```esql FROM employees -| EVAL annual_salary = monthly_salary * 12 -| KEEP first_name, last_name, annual_salary +| EVAL yearly_salary = salary * 12 ``` -### Divide (`/`) -Divide one number by another. If either field is multivalued, the result is null. Division of two integer types will yield an integer result, rounding towards 0. If you need floating point division, cast one of the arguments to a `DOUBLE`. +### Divide `/` + +The divide operator divides the left-hand operand by the right-hand operand. + +Example: -#### Example: ```esql FROM employees -| EVAL average_salary = total_salary / months_worked -| KEEP first_name, last_name, average_salary +| EVAL monthly_salary = salary / 12 ``` -### Modulus (`%`) -Divide one number by another and return the remainder. If either field is multivalued, the result is null. +### Modulus `%` + +The modulus operator returns the remainder of the division of the left operand by the right operand. + +Example: -#### Example: ```esql FROM employees -| EVAL remainder = total_days % 7 -| KEEP first_name, last_name, remainder +| EVAL remainder = salary % 12 ``` ## Unary Operators ### Negation (`-`) -The only unary operator is negation. -#### Example: +Example: + ```esql FROM employees | EVAL negative_salary = -salary -| KEEP first_name, last_name, negative_salary ``` ## Logical Operators ### AND + Logical AND operator. -#### Example: +Example: + ```esql FROM employees -| WHERE age > 30 AND department == "Engineering" -| KEEP first_name, last_name, age, department +| WHERE salary > 50000 AND bonus > 10000 ``` ### OR + Logical OR operator. -#### Example: +Example: + ```esql FROM employees -| WHERE age > 30 OR department == "Engineering" -| KEEP first_name, last_name, age, department +| WHERE salary > 50000 OR bonus > 10000 ``` ### NOT + Logical NOT operator. -#### Example: +Example: + ```esql FROM employees -| WHERE NOT (age > 30) -| KEEP first_name, last_name, age +| WHERE NOT (salary > 50000) ``` ## Other Operators ### IS NULL and IS NOT NULL -For NULL comparison, use the `IS NULL` and `IS NOT NULL` predicates. -#### Example: +The `IS NULL` operator returns true if the value is null. + +Example: + ```esql FROM employees -| WHERE birth_date IS NULL -| KEEP first_name, last_name -| SORT first_name -| LIMIT 3 +| WHERE manager IS NULL ``` +The `IS NOT NULL` operator returns true if the value is not null. + +Example: + ```esql FROM employees -| WHERE is_rehired IS NOT NULL -| STATS COUNT(emp_no) +| WHERE manager IS NOT NULL ``` -### Cast (`::`) -The `::` operator provides a convenient alternative syntax to the `TO_` conversion functions. +### IN + +The `IN` operator checks if a value is within a set of values (literals, fields or expressions). + +Example: -#### Example: ```esql -ROW ver = CONCAT(("0"::INT + 1)::STRING, ".2.3")::VERSION +FROM employees +| WHERE department IN ("Sales", "Marketing", "HR") ``` -### IN -The `IN` operator allows testing whether a field or expression equals an element in a list of literals, fields, or expressions. - -#### Example: ```esql ROW a = 1, b = 4, c = 3 | WHERE c-a IN (3, b / 2, a) ``` ### LIKE -Use `LIKE` to filter data based on string patterns using wildcards. The following wildcard characters are supported: + +Use `LIKE` to filter data based on string patterns using wildcards. + +The following wildcard characters are supported: - `*` matches zero or more characters. - `?` matches one character. -#### Example: +Example: + ```esql FROM employees | WHERE first_name LIKE "?b*" @@ -206,11 +226,24 @@ FROM employees ``` ### RLIKE + Use `RLIKE` to filter data based on string patterns using regular expressions. -#### Example: +Example: + ```esql FROM employees | WHERE first_name RLIKE ".leja.*" | KEEP first_name, last_name -``` \ No newline at end of file +``` + +### Cast `::` + +The `::` operator provides a convenient alternative syntax to the `TO_` conversion functions. + +Example: + +```esql +FROM employees +| EVAL salary = salary::double +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-overview.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-overview.txt index 32e82c7986480..952ba28dd0b8e 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-overview.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-overview.txt @@ -1,19 +1,13 @@ -## Overview +## ES|QL Overview ### ES|QL -The Elasticsearch Query Language (ES|QL) provides a powerful way to filter, transform, and analyze data stored in Elasticsearch, and in the future in other runtimes. It is designed to be easy to learn and use by end users, SRE teams, application developers, and administrators. +The Elasticsearch Query Language (ES|QL) provides a powerful way to filter, transform, and analyze data stored in Elasticsearch. It is designed to be easy to learn and use by all types of end users. Users can author ES|QL queries to find specific events, perform statistical analysis, and generate visualizations. It supports a wide range of commands and functions that enable users to perform various data operations, such as filtering, aggregation, time-series analysis, and more. ES|QL makes use of "pipes" (`|`) to manipulate and transform data in a step-by-step fashion. This approach allows users to compose a series of operations, where the output of one operation becomes the input for the next, enabling complex data transformations and analysis. -### The ES|QL Compute Engine - -ES|QL is more than a language: it represents a significant investment in new compute capabilities within Elasticsearch. To achieve both the functional and performance requirements for ES|QL, it was necessary to build an entirely new compute architecture. ES|QL search, aggregation, and transformation functions are directly executed within Elasticsearch itself. Query expressions are not transpiled to Query DSL for execution. This approach allows ES|QL to be extremely performant and versatile. - -The new ES|QL execution engine was designed with performance in mind — it operates on blocks at a time instead of per row, targets vectorization and cache locality, and embraces specialization and multi-threading. It is a separate component from the existing Elasticsearch aggregation framework with different performance characteristics. - ### Known Limitations #### Result Set Size Limit @@ -79,7 +73,7 @@ ES|QL only supports the UTC timezone. ### Cross-Cluster Querying -Using ES|QL across clusters allows you to execute a single query across multiple clusters. This feature is in technical preview and may be changed or removed in a future release. +Using ES|QL across clusters allows you to execute a single query across multiple clusters. This feature is in technical preview and may be changed or removed in a future release. #### Prerequisites @@ -98,7 +92,7 @@ FROM cluster_one:my-index-000001 ### Using ES|QL in Kibana -ES|QL can be used in Kibana to query and aggregate data, create visualizations, and set up alerts. +ES|QL can be used in Kibana to query and aggregate data, create visualizations, and set up alerts. #### Important Information @@ -106,39 +100,3 @@ ES|QL can be used in Kibana to query and aggregate data, create visualizations, - The query bar in Discover allows you to write and execute ES|QL queries. - The results table shows up to 10,000 rows, and Discover shows no more than 50 columns. - You can create visualizations and alerts based on ES|QL queries. - -### Using the REST API - -The ES|QL query API allows you to execute ES|QL queries via REST API. - -#### Example - -```javascript -const response = await client.esql.query({ - query: ` - FROM library - | EVAL year = DATE_TRUNC(1 YEARS, release_date) - | STATS MAX(page_count) BY year - | SORT year - | LIMIT 5 - `, -}); -console.log(response); -``` - -#### Request - -`POST /_query` - -#### Request Body - -- `query` (Required): The ES|QL query to run. -- `format` (Optional): Format for the response. -- `params` (Optional): Values for parameters in the query. -- `profile` (Optional): If `true`, includes a `profile` object with information about query execution. - -#### Response - -- `columns`: Column `name` and `type` for each column returned in `values`. -- `rows`: Values for the search results. -- `profile`: Profile describing the execution of the query (if `profile` was sent in the request). \ No newline at end of file diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-percentile.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-percentile.txt index 4873cace16392..499e666de2f03 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-percentile.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-percentile.txt @@ -1,8 +1,22 @@ -## PERCENTILE +# PERCENTILE -The `PERCENTILE` function returns the value at which a certain percentage of observed values occur. For example, the 95th percentile is the value which is greater than 95% of the observed values and the 50th percentile is the MEDIAN. +The PERCENTILE function calculates the value at a specified percentile of observed values. -### Examples +## Syntax + +`PERCENTILE(number, percentile)` + +### Parameters + +#### number + +The numeric expression that represents the set of values to be analyzed. + +#### percentile + +The percentile to compute. The value should be between 0 and 100. + +## Examples ```esql FROM employees @@ -14,13 +28,8 @@ FROM employees | STATS p80_max_salary_change = PERCENTILE(MV_MAX(salary_change), 80) ``` -PERCENTILE is usually approximate. There are many different algorithms to calculate percentiles. The naive implementation simply stores all the values in a sorted array. To find the 50th percentile, you simply find the value that is at `my_array[count(my_array) * 0.5]`. Clearly, the naive implementation does not scale — the sorted array grows linearly with the number of values in your dataset. To calculate percentiles across potentially billions of values in an Elasticsearch cluster, approximate percentiles are calculated. The algorithm used by the percentile metric is called TDigest (introduced by Ted Dunning in Computing Accurate Quantiles using T-Digests). - -When using this metric, there are a few guidelines to keep in mind: -- Accuracy is proportional to q(1-q). This means that extreme percentiles (e.g. 99%) are more accurate than less extreme percentiles, such as the median. -- For small sets of values, percentiles are highly accurate (and potentially 100% accurate if the data is small enough). -- As the quantity of values in a bucket grows, the algorithm begins to approximate the percentiles. It is effectively trading accuracy for memory savings. The exact level of inaccuracy is difficult to generalize, since it depends on your data distribution and volume of data being aggregated. +## Notes -The following chart shows the relative error on a uniform distribution depending on the number of collected values and the requested percentile. It shows how precision is better for extreme percentiles. The reason why error diminishes for a large number of values is that the law of large numbers makes the distribution of values more and more uniform and the t-digest tree can do a better job at summarizing it. It would not be the case on more skewed distributions. +- PERCENTILE is usually approximate. -PERCENTILE is also non-deterministic. This means you can get slightly different results using the same data. \ No newline at end of file +- PERCENTILE is also non-deterministic. This means you can get slightly different results using the same data. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-pi.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-pi.txt index 2afabb44200ea..e97942a90a15f 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-pi.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-pi.txt @@ -1,8 +1,16 @@ -## PI +# PI -The `PI` function returns Pi, the ratio of a circle’s circumference to its diameter. +The PI function returns the mathematical constant Pi, which is the ratio of a circle's circumference to its diameter. -### Examples +## Syntax + +`PI()` + +### Parameters + +This function does not require any parameters. + +## Examples ```esql ROW PI() @@ -12,4 +20,4 @@ ROW PI() FROM employees | EVAL pi_value = PI() | KEEP pi_value -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-pow.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-pow.txt index 43e021e4883e4..22a0ca966e0d0 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-pow.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-pow.txt @@ -1,8 +1,22 @@ -## POW +# POW -The `POW` function returns the value of a base raised to the power of an exponent. It is still possible to overflow a double result here; in that case, null will be returned. +The POW function calculates the value of a base number raised to the power of an exponent number. -### Examples +## Syntax + +`POW(base, exponent)` + +### Parameters + +#### base + +This is a numeric expression for the base. + +#### exponent + +This is a numeric expression for the exponent. + +## Examples ```esql ROW base = 2.0, exponent = 2 @@ -12,4 +26,4 @@ ROW base = 2.0, exponent = 2 ```esql ROW base = 4, exponent = 0.5 | EVAL s = POW(base, exponent) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-rename.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-rename.txt index 0e9dd3258b3c8..bd482258c21f6 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-rename.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-rename.txt @@ -1,37 +1,35 @@ -## RENAME +# RENAME -The `RENAME` processing command in ES|QL is used to rename one or more columns in a dataset. This command is particularly useful when you need to standardize column names, make them more readable, or avoid conflicts with existing column names. If a column with the new name already exists, it will be replaced by the new column. If multiple columns are renamed to the same name, all but the rightmost column with the same new name are dropped. +The RENAME command is used to change the names of one or more columns in a table. -### Examples +## Syntax -Here are some example ES|QL queries using the `RENAME` command: +`RENAME old_name1 AS new_name1[, ..., old_nameN AS new_nameN]` + +### Parameters + +#### old_nameX + +This is the current name of the column that you want to rename. + +#### new_nameX + +This is the new name that you want to assign to the column. If a column with the new name already exists, the existing column will be replaced. If multiple columns are renamed to the same name, all but the rightmost column with the same new name will be dropped. + +## Examples -1. **Renaming a single column:** +The following example renames the column "still_hired" to "employed": - ```esql +```esql FROM employees | KEEP first_name, last_name, still_hired -| RENAME still_hired AS employed +| RENAME still_hired AS employed ``` -2. **Renaming multiple columns in a single command:** +You can rename multiple columns with a single RENAME command: - ```esql +```esql FROM employees | KEEP first_name, last_name | RENAME first_name AS fn, last_name AS ln ``` - -### Syntax - -`RENAME old_name1 AS new_name1[, ..., old_nameN AS new_nameN]` - -### Parameters - -- **old_nameX**: The name of a column you want to rename. -- **new_nameX**: The new name of the column. If it conflicts with an existing column name, the existing column is dropped. If multiple columns are renamed to the same name, all but the rightmost column with the same new name are dropped. - -### Limitations - -- If a column with the new name already exists, it will be replaced by the new column. -- If multiple columns are renamed to the same name, all but the rightmost column with the same new name are dropped. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-repeat.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-repeat.txt index aa702c052e1b7..f6a830f6ee3f5 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-repeat.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-repeat.txt @@ -1,8 +1,22 @@ -## REPEAT +# REPEAT -The `REPEAT` function returns a string constructed by concatenating the input string with itself the specified number of times. +The REPEAT function generates a string by repeating a specified string a certain number of times. -### Examples +## Syntax + +`REPEAT(string, number)` + +### Parameters + +#### string + +The string that you want to repeat. + +#### number + +The number of times you want to repeat the string. + +## Examples ```esql ROW a = "Hello!" @@ -12,4 +26,4 @@ ROW a = "Hello!" ```esql ROW greeting = "Hi" | EVAL repeated_greeting = REPEAT(greeting, 5) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-replace.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-replace.txt index 931fcab1d25b9..930efd579f610 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-replace.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-replace.txt @@ -1,8 +1,28 @@ -## REPLACE +# REPLACE -The `REPLACE` function substitutes in the string `str` any match of the regular expression `regex` with the replacement string `newStr`. +The REPLACE function substitutes any match of a regular expression within a string with a replacement string. -### Examples +## Syntax + +`REPLACE(string, regex, newString)` + +### Parameters + +#### string + +The string expression where the replacement will occur. + +#### regex + +The regular expression that will be matched in the string. + +#### newString + +The string that will replace the matched regular expression in the string. + +## Examples + +The following example replaces any occurrence of the word "World" with the word "Universe": ```esql ROW str = "Hello World" @@ -16,4 +36,4 @@ Another example could be replacing digits in a string with a specific character: ROW str = "User123" | EVAL str = REPLACE(str, "\\d", "*") | KEEP str -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-right.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-right.txt index 99e1fbf2d3c1b..081fe025522c5 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-right.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-right.txt @@ -1,8 +1,24 @@ -## RIGHT +# RIGHT -The `RIGHT` function returns a substring that extracts a specified number of characters from a string, starting from the right. +The RIGHT function extracts a specified number of characters from the end of a string. -### Examples +## Syntax + +`RIGHT(string, length)` + +### Parameters + +#### string + +The string from which a substring is to be returned. + +#### length + +The number of characters to return from the end of the string. + +## Examples + +The following example extracts the last three characters from the `last_name` field: ```esql FROM employees @@ -16,4 +32,4 @@ FROM employees ROW full_name = "John Doe" | EVAL last_part = RIGHT(full_name, 4) | KEEP last_part -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-round.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-round.txt index a3efefb84d2d0..1e62d7a4c4915 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-round.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-round.txt @@ -1,8 +1,24 @@ -## ROUND +# ROUND -The `ROUND` function rounds a number to the specified number of decimal places. By default, it rounds to 0 decimal places, which returns the nearest integer. If the precision is a negative number, it rounds to the number of digits left of the decimal point. If the input value is null, the function returns null. +The ROUND function rounds a numeric value to a specified number of decimal places. -### Examples +## Syntax + +`ROUND(number, decimals)` + +### Parameters + +#### number + +The numeric value to be rounded. + +#### decimals + +The number of decimal places to which the number should be rounded. The default value is 0. + +## Examples + +The following example rounds the height of employees to one decimal place after converting it from meters to feet: ```esql FROM employees @@ -14,4 +30,8 @@ FROM employees FROM sales | KEEP product_name, revenue | EVAL rounded_revenue = ROUND(revenue, -2) -``` \ No newline at end of file +``` + +## Notes + +If "decimals" is a negative number, the ROUND function rounds to the number of digits left of the decimal point. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-row.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-row.txt index 079668328f76d..26b994ecbee6c 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-row.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-row.txt @@ -1,10 +1,22 @@ -## ROW +# ROW -The `ROW` source command produces a row with one or more columns with values that you specify. This can be useful for testing. The command allows you to create a row with specified column names and values, which can be literals, expressions, or functions. In case of duplicate column names, only the rightmost duplicate creates a column. +The ROW command is used to generate a row with one or more columns with specified values. This can be particularly useful for testing purposes. -### Examples +## Syntax -Here are some example ES|QL queries using the `ROW` command: +`ROW column1 = value1[, ..., columnN = valueN]` + +### Parameters + +#### {column name} + +This is the name of the column. If there are duplicate column names, only the rightmost duplicate will create a column. + +#### {value} + +This is the value for the column. It can be a literal, an expression, or a function. + +## Examples 1. Creating a row with simple literal values: ```esql @@ -29,4 +41,4 @@ ROW x = 5, y = [3, 4], z = TO_STRING(123) 5. Using nested functions within a row: ```esql ROW a = ABS(-10), b = CONCAT("Hello", " ", "World"), c = TO_BOOLEAN("true") -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-rtrim.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-rtrim.txt index 8060580a76ae0..1a57382fe8c3e 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-rtrim.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-rtrim.txt @@ -1,8 +1,20 @@ -## RTRIM +# RTRIM -Removes trailing whitespaces from a string. +The RTRIM function is used to remove trailing whitespaces from a string. -### Examples +## Syntax + +`RTRIM(string)` + +### Parameters + +#### string + +This is the string expression from which trailing whitespaces will be removed. + +## Examples + +The following example demonstrates how to use the RTRIM function: ```esql ROW message = " some text ", color = " red " @@ -10,4 +22,4 @@ ROW message = " some text ", color = " red " | EVAL color = RTRIM(color) | EVAL message = CONCAT("'", message, "'") | EVAL color = CONCAT("'", color, "'") -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-show.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-show.txt index ed27f65613931..13e046076e30b 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-show.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-show.txt @@ -1,24 +1,21 @@ -## SHOW +# SHOW -The `SHOW` source command returns information about the deployment and its capabilities. This command is useful for retrieving metadata about the Elasticsearch deployment, such as the version, build date, and hash. It is particularly helpful for administrators and developers who need to verify the deployment details or troubleshoot issues. The `SHOW` command has a limitation in that it can only be used with the `INFO` item. +The SHOW command retrieves details about the deployment and its capabilities. -### Examples +## Syntax -Here are some example ES|QL queries using the `SHOW` command: +`SHOW item` -1. Retrieve the deployment’s version, build date, and hash: - ```esql -SHOW INFO -``` +### Parameters -2. Use the `SHOW` command in a multi-line query for better readability: - ```esql -SHOW INFO -``` +#### item -3. Another example of using the `SHOW` command to get deployment information: - ```esql +The only acceptable value is `INFO`. + +## Examples + +Retrieve the deployment’s version, build date, and hash: + +```esql SHOW INFO ``` - -These examples demonstrate the primary usage of the `SHOW` command to retrieve deployment information. \ No newline at end of file diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-signum.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-signum.txt index 4a1bab62699af..083d913dd99b4 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-signum.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-signum.txt @@ -1,8 +1,18 @@ -## SIGNUM +# SIGNUM -The `SIGNUM` function returns the sign of the given number. It returns -1 for negative numbers, 0 for 0, and 1 for positive numbers. +The SIGNUM function returns the sign of a given number. It outputs `-1` for negative numbers, `0` for `0`, and `1` for positive numbers. -### Examples +## Syntax + +`SIGNUM(number)` + +### Parameters + +#### number + +A numeric expression. + +## Examples ```esql ROW d = 100.0 @@ -12,4 +22,4 @@ ROW d = 100.0 ```esql ROW d = -50.0 | EVAL s = SIGNUM(d) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sin.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sin.txt index 2083ea8f29dad..3d28baafd53d5 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sin.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sin.txt @@ -1,8 +1,18 @@ -## SIN +# SIN -The `SIN` function returns the sine trigonometric function of an angle, expressed in radians. If the input angle is null, the function returns null. +The SIN function calculates the sine of a given angle. -### Examples +## Syntax + +`SIN(angle)` + +### Parameters + +#### angle + +The angle for which the sine value is to be calculated. The angle should be in radians. + +## Examples ```esql ROW a=1.8 @@ -12,4 +22,4 @@ ROW a=1.8 ```esql ROW angle=0.5 | EVAL sine_value = SIN(angle) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sinh.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sinh.txt index 189fdb8a8b82f..eaec5ceb54862 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sinh.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sinh.txt @@ -1,15 +1,25 @@ -## SINH +# SINH -The `SINH` function returns the hyperbolic sine of an angle. +The SINH function calculates the hyperbolic sine of a given angle. -### Examples +## Syntax + +`SINH(angle)` + +### Parameters + +#### angle + +The angle in radians for which the hyperbolic sine is to be calculated. If the parameter is null, the function will return null. + +## Examples ```esql ROW a=1.8 -| EVAL sinh = SINH(a) +| EVAL sinh=SINH(a) ``` ```esql ROW angle=0.5 | EVAL hyperbolic_sine = SINH(angle) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sort.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sort.txt index 0d68d505a5d78..593d94021b71b 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sort.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sort.txt @@ -1,21 +1,20 @@ -## SORT +# SORT -The `SORT` processing command in ES|QL is used to sort a table based on one or more columns. This command is essential for organizing data in a specific order, which can be particularly useful for reporting, data analysis, and visualization. The default sort order is ascending, but you can specify descending order using `DESC`. Additionally, you can handle null values explicitly by using `NULLS FIRST` or `NULLS LAST`. +The SORT command is used to arrange a table based on one or more columns. -### Use Cases -- **Organizing Data**: Sort data to make it easier to read and analyze. -- **Reporting**: Generate reports where data needs to be presented in a specific order. -- **Data Analysis**: Facilitate data analysis by sorting data based on key metrics. -- **Visualization**: Prepare data for visualizations that require sorted input. +## Syntax -### Limitations -- **Multivalued Columns**: When sorting on multivalued columns, the lowest value is used for ascending order and the highest value for descending order. -- **Null Values**: By default, null values are treated as larger than any other value. This can be changed using `NULLS FIRST` or `NULLS LAST`. +`SORT column1 [ASC/DESC][NULLS FIRST/NULLS LAST][, ..., columnN [ASC/DESC][NULLS FIRST/NULLS LAST]]` + +### Parameters + +#### columnX -### Examples +The column on which the sorting is to be performed. -#### Basic Sorting -Sort the `employees` table by the `height` column in ascending order: +## Examples + +Sort a table based on the 'height' column: ```esql FROM employees @@ -23,8 +22,7 @@ FROM employees | SORT height ``` -#### Explicit Ascending Order -Sort the `employees` table by the `height` column in descending order: +Explicitly sort in ascending order with `ASC`: ```esql FROM employees @@ -32,8 +30,7 @@ FROM employees | SORT height DESC ``` -#### Multiple Sort Expressions -Sort the `employees` table by the `height` column in descending order and use `first_name` as a tie breaker in ascending order: +Provide additional sort expressions to act as tie breakers: ```esql FROM employees @@ -41,8 +38,7 @@ FROM employees | SORT height DESC, first_name ASC ``` -#### Sorting Null Values First -Sort the `employees` table by the `first_name` column in ascending order, placing null values first: +Sort `null` values first using `NULLS FIRST`: ```esql FROM employees @@ -50,4 +46,21 @@ FROM employees | SORT first_name ASC NULLS FIRST ``` -These examples demonstrate the versatility of the `SORT` command in organizing data for various analytical and reporting needs. \ No newline at end of file +## Notes + +If SORT is used right after a KEEP command, make sure it only uses column names in KEEP, +or move the SORT before the KEEP, e.g. +- not correct: KEEP date | SORT @timestamp, +- correct: SORT @timestamp | KEEP date) + +By default, the sorting order is ascending. You can specify an explicit sort order by using `ASC` for ascending or `DESC` for descending. + +If two rows have the same sort key, they are considered equal. You can provide additional sort expressions to act as tie breakers. + +When sorting on multivalued columns, the lowest value is used when sorting in ascending order and the highest value is used when sorting in descending order. + +By default, `null` values are treated as being larger than any other value. This means that with an ascending sort order, `null` values are sorted last, and with a descending sort order, `null` values are sorted first. You can change this by providing `NULLS FIRST` or `NULLS LAST`. + +## Limitations +- **Multivalued Columns**: When sorting on multivalued columns, the lowest value is used for ascending order and the highest value for descending order. +- **Null Values**: By default, null values are treated as larger than any other value. This can be changed using `NULLS FIRST` or `NULLS LAST`. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-split.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-split.txt index d18750ac146f6..14ff9ecb94bcd 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-split.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-split.txt @@ -1,8 +1,22 @@ -## SPLIT +# SPLIT -The `SPLIT` function splits a single-valued string into multiple strings based on a specified delimiter. +The SPLIT function is used to divide a single string into multiple strings. -### Examples +## Syntax + +`SPLIT(string, delim)` + +### Parameters + +#### string + +This is the string expression that you want to split. + +#### delim + +This is the delimiter used to split the string. Currently, only single byte delimiters are supported. + +## Examples ```esql ROW words="foo;bar;baz;qux;quux;corge" @@ -12,4 +26,4 @@ ROW words="foo;bar;baz;qux;quux;corge" ```esql ROW sentence="hello world;this is ES|QL" | EVAL words = SPLIT(sentence, " ") -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sqrt.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sqrt.txt index 4988c31564633..d1839b7d6d06a 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sqrt.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sqrt.txt @@ -1,8 +1,19 @@ -## SQRT +# SQRT -The `SQRT` function returns the square root of a number. The input can be any numeric value, and the return value is always a double. Square roots of negative numbers and infinities are null. +The SQRT function calculates the square root of a given number. + +## Syntax + +`SQRT(number)` + +### Parameters + +#### number + +This is a numeric expression. + +## Examples -### Examples ```esql ROW d = 100.0 @@ -13,4 +24,4 @@ ROW d = 100.0 FROM employees | KEEP first_name, last_name, height | EVAL sqrt_height = SQRT(height) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_centroid_agg.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_centroid_agg.txt index a58a2d6550e8a..b9baa82bfe5ae 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_centroid_agg.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_centroid_agg.txt @@ -1,8 +1,20 @@ -## ST_CENTROID_AGG +# ST_CENTROID_AGG -The `ST_CENTROID_AGG` function calculates the spatial centroid over a field with spatial point geometry type. +The ST_CENTROID_AGG function calculates the spatial centroid over a field with spatial point geometry type. -### Examples +## Syntax + +`ST_CENTROID_AGG(field)` + +### Parameters + +#### field + +The field parameter represents the column that contains the spatial point geometry data. + +## Examples + +Here is an example of how to use the ST_CENTROID_AGG function: ```esql FROM airports @@ -12,4 +24,4 @@ FROM airports ```esql FROM city_boundaries | STATS city_centroid = ST_CENTROID_AGG(boundary) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_contains.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_contains.txt index 8d1dc8da115fc..50f5608b22046 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_contains.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_contains.txt @@ -1,8 +1,22 @@ -## ST_CONTAINS +# ST_CONTAINS -Returns whether the first geometry contains the second geometry. This is the inverse of the `ST_WITHIN` function. +The ST_CONTAINS function determines if the first specified geometry encompasses the second one. This function is the inverse of the ST_WITHIN function. -### Examples +## Syntax + +`ST_CONTAINS(geomA, geomB)` + +### Parameters + +#### geomA + +This is an expression of type `geo_point`, `cartesian_point`, `geo_shape`, or `cartesian_shape`. + +#### geomB + +This is an expression of type `geo_point`, `cartesian_point`, `geo_shape`, or `cartesian_shape`. + +## Examples ```esql FROM airport_city_boundaries @@ -14,4 +28,8 @@ FROM airport_city_boundaries FROM regions | WHERE ST_CONTAINS(region_boundary, TO_GEOSHAPE("POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))")) | KEEP region_name, region_code, region_boundary -``` \ No newline at end of file +``` + +## Limitations + +It's important to note that the second parameter must have the same coordinate system as the first. Therefore, it's not possible to combine `geo_*` and `cartesian_*` parameters. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_disjoint.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_disjoint.txt index 7f22061024330..41433a4069f0c 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_disjoint.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_disjoint.txt @@ -1,8 +1,22 @@ -## ST_DISJOINT +# ST_DISJOINT -The `ST_DISJOINT` function returns whether two geometries or geometry columns are disjoint. This is the inverse of the `ST_INTERSECTS` function. In mathematical terms: `ST_Disjoint(A, B) ⇔ A ⋂ B = ∅`. +The ST_DISJOINT function checks if two geometries or geometry columns are disjoint, meaning they do not intersect. This function is the inverse of the ST_INTERSECTS function. In mathematical terms, if A and B are two geometries, ST_Disjoint(A, B) is true if and only if the intersection of A and B is empty. -### Examples +## Syntax + +`ST_DISJOINT(geomA, geomB)` + +### Parameters + +#### geomA + +This is an expression of type `geo_point`, `cartesian_point`, `geo_shape`, or `cartesian_shape`. + +#### geomB + +This is an expression of type `geo_point`, `cartesian_point`, `geo_shape`, or `cartesian_shape`. + +## Examples ```esql FROM airport_city_boundaries @@ -14,4 +28,8 @@ FROM airport_city_boundaries FROM airport_city_boundaries | WHERE ST_DISJOINT(city_boundary, TO_GEOSHAPE("POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))")) | KEEP abbrev, airport, region, city, city_location -``` \ No newline at end of file +``` + +## Limitations + +It's important to note that the second parameter must have the same coordinate system as the first. This means you cannot combine `geo_*` and `cartesian_*` parameters. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_distance.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_distance.txt index a1d3e05842c4a..5a007367dc0b8 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_distance.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_distance.txt @@ -1,8 +1,22 @@ -## ST_DISTANCE +# ST_DISTANCE -The `ST_DISTANCE` function computes the distance between two points. For cartesian geometries, this is the pythagorean distance in the same units as the original coordinates. For geographic geometries, this is the circular distance along the great circle in meters. +The ST_DISTANCE function calculates the distance between two points. -### Examples +## Syntax + +`ST_DISTANCE(geomA, geomB)` + +### Parameters + +#### geomA + +This is an expression of type `geo_point` or `cartesian_point`. + +#### geomB + +This is an expression of type `geo_point` or `cartesian_point`. + +## Examples ```esql FROM airports @@ -16,4 +30,8 @@ FROM airports | WHERE abbrev == "JFK" | EVAL distance = ST_DISTANCE(location, city_location) | KEEP abbrev, name, location, city_location, distance -``` \ No newline at end of file +``` + +## Limitations + +- It's important to note that the second parameter must have the same coordinate system as the first. Therefore, it's not possible to combine `geo_point` and `cartesian_point` parameters. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_intersects.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_intersects.txt index 46df07d8d9f67..63e2ff127d1a9 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_intersects.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_intersects.txt @@ -1,8 +1,22 @@ -## ST_INTERSECTS +# ST_INTERSECTS -The `ST_INTERSECTS` function returns true if two geometries intersect. They intersect if they have any point in common, including their interior points (points along lines or within polygons). This is the inverse of the `ST_DISJOINT` function. In mathematical terms: `ST_Intersects(A, B) ⇔ A ⋂ B ≠ ∅`. +The ST_INTERSECTS function checks if two geometries intersect. They intersect if they share any point, including points within their interiors (points along lines or within polygons). This function is the inverse of the ST_DISJOINT function. In mathematical terms, ST_Intersects(A, B) is true if the intersection of A and B is not empty. -### Examples +## Syntax + +`ST_INTERSECTS(geomA, geomB)` + +### Parameters + +#### geomA + +This is an expression of type `geo_point`, `cartesian_point`, `geo_shape`, or `cartesian_shape`. If `null`, the function returns `null`. + +#### geomB + +This is an expression of type `geo_point`, `cartesian_point`, `geo_shape`, or `cartesian_shape`. If `null`, the function returns `null`. The second parameter must also have the same coordinate system as the first. This means it is not possible to combine `geo_*` and `cartesian_*` parameters. + +## Examples ```esql FROM airports @@ -13,4 +27,4 @@ FROM airports FROM city_boundaries | WHERE ST_INTERSECTS(boundary, TO_GEOSHAPE("POLYGON((10 10, 20 10, 20 20, 10 20, 10 10))")) | KEEP city_name, boundary -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_within.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_within.txt index 24883a731e24b..20e61d6a234df 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_within.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_within.txt @@ -1,8 +1,22 @@ -## ST_WITHIN +# ST_WITHIN -The `ST_WITHIN` function returns whether the first geometry is within the second geometry. This is the inverse of the `ST_CONTAINS` function. +The ST_WITHIN function checks if the first geometry is located within the second geometry. -### Examples +## Syntax + +`ST_WITHIN(geomA, geomB)` + +### Parameters + +#### geomA + +This is an expression of type `geo_point`, `cartesian_point`, `geo_shape`, or `cartesian_shape`. If the value is `null`, the function will return `null`. + +#### geomB + +This is an expression of type `geo_point`, `cartesian_point`, `geo_shape`, or `cartesian_shape`. If the value is `null`, the function will return `null`. It's important to note that the second parameter must have the same coordinate system as the first. This means you cannot combine `geo_*` and `cartesian_*` parameters. + +## Examples ```esql FROM airport_city_boundaries @@ -14,4 +28,4 @@ FROM airport_city_boundaries FROM parks | WHERE ST_WITHIN(park_boundary, TO_GEOSHAPE("POLYGON((40.7128 -74.0060, 40.7128 -73.9352, 40.7306 -73.9352, 40.7306 -74.0060, 40.7128 -74.0060))")) | KEEP park_name, park_boundary -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_x.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_x.txt index 11b569d7db065..18e35874333fb 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_x.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_x.txt @@ -1,8 +1,20 @@ -## ST_X +# ST_X -The `ST_X` function extracts the x coordinate from the supplied point. If the point is of type `geo_point`, this is equivalent to extracting the longitude value. +The ST_X function extracts the `x` coordinate from a given point. -### Examples +## Syntax + +`ST_X(point)` + +### Parameters + +#### point + +This is an expression of type `geo_point` or `cartesian_point`. + +## Examples + +Here is an example of how to use the ST_X function: ```esql ROW point = TO_GEOPOINT("POINT(42.97109629958868 14.7552534006536)") @@ -12,4 +24,4 @@ ROW point = TO_GEOPOINT("POINT(42.97109629958868 14.7552534006536)") ```esql ROW point = TO_CARTESIANPOINT("POINT(100.0 200.0)") | EVAL x = ST_X(point), y = ST_Y(point) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_y.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_y.txt index be0b96539bf15..1e918c4a1913a 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_y.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-st_y.txt @@ -1,8 +1,19 @@ -## ST_Y +# ST_Y -The `ST_Y` function extracts the y coordinate from the supplied point. If the point is of type `geo_point`, this is equivalent to extracting the latitude value. +The ST_Y function extracts the `y` coordinate from a given point. + +## Syntax + +`ST_Y(point)` + +### Parameters + +#### point + +This is an expression of type `geo_point` or `cartesian_point`. + +## Examples -### Examples ```esql ROW point = TO_GEOPOINT("POINT(42.97109629958868 14.7552534006536)") @@ -12,4 +23,4 @@ ROW point = TO_GEOPOINT("POINT(42.97109629958868 14.7552534006536)") ```esql ROW point = TO_GEOPOINT("POINT(34.052235 -118.243683)") | EVAL latitude = ST_Y(point) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-starts_with.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-starts_with.txt index a293c13d1d706..31578d3786ee1 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-starts_with.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-starts_with.txt @@ -1,8 +1,24 @@ -## STARTS_WITH +# STARTS_WITH -The `STARTS_WITH` function returns a boolean that indicates whether a keyword string starts with another string. +The STARTS_WITH function returns a boolean value indicating whether a keyword string begins with a specified string. -### Examples +## Syntax + +`STARTS_WITH(str, prefix)` + +### Parameters + +#### str + +This is a string expression. + +#### prefix + +This is a string expression that will be checked if it is the starting sequence of the `str` parameter. + +## Examples + +The following example checks if the `last_name` of employees starts with the letter "B": ```esql FROM employees @@ -15,4 +31,4 @@ FROM employees | KEEP first_name, last_name | EVAL fn_S = STARTS_WITH(first_name, "A") | WHERE fn_S -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-stats.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-stats.txt index a85669b4b3fa1..795213778c87b 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-stats.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-stats.txt @@ -1,21 +1,55 @@ -## STATS +# STATS ... BY -The `STATS ... BY` processing command in ES|QL groups rows according to a common value and calculates one or more aggregated values over the grouped rows. This command is highly useful for performing statistical analysis and aggregations on datasets. It supports a variety of aggregation functions such as `AVG`, `COUNT`, `COUNT_DISTINCT`, `MAX`, `MEDIAN`, `MIN`, `SUM`, and more. +The `STATS ... BY` command groups rows based on a common value and calculates one or more aggregated values over these grouped rows. -### Use Cases -- **Statistical Analysis**: Calculate average, sum, count, and other statistical measures over grouped data. -- **Data Aggregation**: Aggregate data based on specific fields to derive meaningful insights. -- **Time-Series Analysis**: Group data by time intervals to analyze trends over time. +## Syntax -### Limitations -- **Performance**: `STATS` without any groups is much faster than adding a group. Grouping on a single expression is more optimized than grouping on multiple expressions. -- **Multivalue Fields**: If the grouping key is multivalued, the input row is included in all groups. -- **Technical Preview**: Some functions like `PERCENTILE`, `ST_CENTROID_AGG`, `VALUES`, and `WEIGHTED_AVG` are in technical preview and may change in future releases. +```esql +STATS [column1 =] expression1[, ..., [columnN =] expressionN] [BY grouping_expression1[, ..., grouping_expressionN]] +``` + +### Parameters + +#### columnX + +The name for the aggregated value in the output. If not provided, the name defaults to the corresponding expression (`expressionX`). + +#### expressionX + +An expression that computes an aggregated value. + +#### grouping_expressionX -### Examples +An expression that outputs the values to group by. If its name coincides with one of the computed columns, that column will be ignored. -#### Example 1: Grouping by a Single Column -Calculate the count of employees grouped by languages: +## Description + +The `STATS ... BY` command groups rows based on a common value and calculates one or more aggregated values over these grouped rows. +If `BY` is omitted, the output table contains exactly one row with the aggregations applied over the entire dataset. + +The following aggregation functions are supported: + +- `AVG` +- `COUNT` +- `COUNT_DISTINCT` +- `MAX` +- `MEDIAN` +- `MEDIAN_ABSOLUTE_DEVIATION` +- `MIN` +- `PERCENTILE` +- `ST_CENTROID_AGG` +- `SUM` +- `TOP` +- `VALUES` +- `WEIGHTED_AVG` + +> Note: `STATS` without any groups is significantly faster than adding a group. + +> Note: Grouping on a single expression is currently much more optimized than grouping on many expressions. In some tests, grouping on a single `keyword` column was found to be five times faster than grouping on two `keyword` columns. Do not attempt to work around this by combining the two columns together with a function like `CONCAT` and then grouping - this will not be faster. + +## Examples + +Calculate a statistic and group by the values of another column: ```esql FROM employees @@ -23,24 +57,27 @@ FROM employees | SORT languages ``` -#### Example 2: Aggregation Without Grouping -Calculate the average number of languages spoken by employees: +Omitting `BY` returns one row with the aggregations applied over the entire dataset: ```esql FROM employees | STATS avg_lang = AVG(languages) ``` -#### Example 3: Multiple Aggregations -Calculate both the average and maximum number of languages spoken by employees: +It’s possible to calculate multiple values: ```esql FROM employees | STATS avg_lang = AVG(languages), max_lang = MAX(languages) ``` -#### Example 4: Grouping by Multiple Values -Calculate the average salary grouped by the year of hire and language: +If the grouping key is multivalued then the input row is in all groups: + +```esql +ROW i=1, a=["a", "b"] | STATS MIN(i) BY a | SORT a ASC +``` + +It’s also possible to group by multiple values: ```esql FROM employees @@ -50,8 +87,20 @@ FROM employees | SORT hired, languages.long ``` -#### Example 5: Grouping by an Expression -Group employees by the first letter of their last name and count them: +If all grouping keys are multivalued then the input row is in all groups: + +```esql +ROW i=1, a=["a", "b"], b=[2, 3] | STATS MIN(i) BY a, b | SORT a ASC, b ASC +``` + +Both the aggregating functions and the grouping expressions accept other functions. This is useful for using `STATS...BY` on multivalue columns. + +```esql +FROM employees +| STATS avg_salary_change = ROUND(AVG(MV_AVG(salary_change)), 10) +``` + +An example of grouping by an expression is grouping employees on the first letter of their last name: ```esql FROM employees @@ -59,13 +108,26 @@ FROM employees | SORT `LEFT(last_name, 1)` ``` -#### Example 6: Using Multivalue Columns -Calculate the minimum value of a multivalue column: +Specifying the output column name is optional. If not specified, the new column name is equal to the expression. The following query returns a column named `AVG(salary)`: ```esql -ROW i=1, a=["a", "b"], b=[2, 3] -| STATS MIN(i) BY a, b -| SORT a ASC, b ASC +FROM employees +| STATS AVG(salary) ``` -These examples showcase the versatility and power of the `STATS ... BY` command in performing various types of data aggregations and statistical analyses. \ No newline at end of file +Because this name contains special characters, it needs to be quoted with backticks (`) when using it in subsequent commands: + +```esql +FROM employees +| STATS AVG(salary) +| EVAL avg_salary_rounded = ROUND(`AVG(salary)`) +``` + +## Notes + +- If multiple columns share the same name, all but the rightmost column with this name are ignored. + +### Limitations + +- **Performance**: `STATS` without any groups is much faster than adding a group. Grouping on a single expression is more optimized than grouping on multiple expressions. +- **Multivalue Fields**: If the grouping key is multivalued, the input row is included in all groups. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-substring.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-substring.txt index a03574e7d2cef..a47ec9546047a 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-substring.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-substring.txt @@ -1,20 +1,29 @@ -## SUBSTRING +# SUBSTRING -The `SUBSTRING` function returns a substring of a string, specified by a start position and an optional length. +The SUBSTRING function extracts a portion of a string, as specified by a starting position and an optional length. -### Syntax +## Syntax `SUBSTRING(string, start, [length])` ### Parameters -- `string`: String expression. If null, the function returns null. -- `start`: Start position. -- `length`: Length of the substring from the start position. Optional; if omitted, all positions after start are returned. +#### string -### Examples +The string expression from which to extract the substring. -This example returns the first three characters of every last name: +#### start + +The starting position for the substring extraction. + +#### length + +The length of the substring to be extracted from the starting position. +This parameter is optional. If it's omitted, the function will return all positions following the start position. + +## Examples + +The following example returns the first three characters of every last name: ```esql FROM employees @@ -30,10 +39,10 @@ FROM employees | EVAL ln_sub = SUBSTRING(last_name, -3, 3) ``` -If length is omitted, `SUBSTRING` returns the remainder of the string. This example returns all characters except for the first: +If the length parameter is omitted, the SUBSTRING function returns the remainder of the string. This example returns all characters except for the first: ```esql FROM employees | KEEP last_name | EVAL ln_sub = SUBSTRING(last_name, 2) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sum.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sum.txt index c893aeb160d00..9e782699db9ba 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sum.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-sum.txt @@ -1,15 +1,29 @@ -## SUM +# SUM -The `SUM` function calculates the sum of a numeric expression. +The SUM function calculates the total sum of a numeric expression. -### Examples +## Syntax + +`SUM(number)` + +### Parameters + +#### number + +The numeric expression that you want to calculate the sum of. + +## Examples + +Calculate the sum of a numeric field: ```esql FROM employees | STATS SUM(languages) ``` +The SUM function can be used with inline functions: + ```esql FROM employees | STATS total_salary_changes = SUM(MV_MAX(salary_change)) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-syntax.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-syntax.txt index e1e339239a713..8259b8d8d5546 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-syntax.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-syntax.txt @@ -1,44 +1,28 @@ -## Syntax +# ES|QL Syntax Guide -### Instructions +This guide provides an overview of the ES|QL syntax and examples of its usage. -Generate a description of ES|QL syntax. Be as complete as possible. -For timespan literals, generate at least five examples of full ES|QL queries, using a mix of commands and functions, using different intervals and units. -**Make sure you use timespan literals, such as `1 day` or `24h` or `7 weeks` in these examples**. -Combine ISO timestamps with time span literals and NOW(). -Make sure the example queries are using different combinations of syntax, commands, and functions for each. -When using DATE_TRUNC, make sure you DO NOT wrap the timespan in single or double quotes. -Do not use the Cast operator. +## Basic Syntax -### Content of file +An ES|QL query is composed of a source command followed by an optional series of processing commands, separated by a pipe character (`|`). For example: -### ES|QL Syntax Reference - -#### Basic Syntax - -An ES|QL query is composed of a source command followed by an optional series of processing commands, separated by a pipe character: `|`. For example: - -``` +```esql source-command | processing-command1 | processing-command2 ``` -The result of a query is the table produced by the final processing command. For an overview of all supported commands, functions, and operators, refer to Commands and Functions and operators. +The result of a query is the table produced by the final processing command. -For readability, this documentation puts each processing command on a new line. However, you can write an ES|QL query as a single line. The following query is identical to the previous one: +For readability, each processing command is typically written on a new line. However, an ES|QL query can also be written as a single line: -``` -source-command -| processing-command1 -| processing-command2 +```esql +source-command | processing-command1 | processing-command2 ``` -#### Identifiers +## Identifiers -Identifiers need to be quoted with backticks (```) if: -- They don’t start with a letter, `_` or `@` -- Any of the other characters is not a letter, number, or `_` +Identifiers in ES|QL need to be quoted with backticks (```) if they don’t start with a letter, `_` or `@`, or if any of the other characters is not a letter, number, or `_`. For example: @@ -47,7 +31,9 @@ FROM index | KEEP `1.field` ``` -When referencing a function alias that itself uses a quoted identifier, the backticks of the quoted identifier need to be escaped with another backtick. For example: +When referencing a function alias that itself uses a quoted identifier, the backticks of the quoted identifier need to be escaped with another backtick. + +For example: ```esql FROM index @@ -55,16 +41,15 @@ FROM index | EVAL my_count = `COUNT(``1.field``)` ``` -#### Literals +## Literals ES|QL currently supports numeric and string literals. -##### String Literals +### String Literals -A string literal is a sequence of unicode characters delimited by double quotes (`"`). +A string literal is a sequence of unicode characters delimited by double quotes (`"`). For example: ```esql -// Filter by a string value FROM index | WHERE first_name == "Georgi" ``` @@ -75,11 +60,13 @@ If the literal string itself contains quotes, these need to be escaped (`\\"`). ROW name = """Indiana "Indy" Jones""" ``` -The special characters CR, LF, and TAB can be provided with the usual escaping: `\r`, `\n`, `\t`, respectively. +The special characters CR, LF and TAB can be provided with the usual escaping: `\r`, `\n`, `\t`, respectively. + +### Numerical Literals -##### Numerical Literals +The numeric literals are accepted in decimal and in the scientific notation with the exponent marker (`e` or `E`), starting either with a digit, decimal point `.` or the negative sign `-`. -The numeric literals are accepted in decimal and in the scientific notation with the exponent marker (`e` or `E`), starting either with a digit, decimal point `.` or the negative sign `-`: +For example: - `1969` -- integer notation - `3.14` -- decimal notation @@ -88,36 +75,14 @@ The numeric literals are accepted in decimal and in the scientific notation with - `1.2e-3` -- scientific notation with decimal point - `-.1e2` -- scientific notation starting with the negative sign -The integer numeric literals are implicitly converted to the `integer`, `long` or the `double` type, whichever can first accommodate the literal’s value. The floating point literals are implicitly converted to the `double` type. To obtain constant values of different types, use one of the numeric conversion functions. - -#### Comments - -ES|QL uses C++ style comments: -- Double slash `//` for single line comments -- `/*` and `*/` for block comments +The integer numeric literals are implicitly converted to the `integer`, `long` or the `double` type, whichever can first accommodate the literal’s value. -```esql -// Query the employees index -FROM employees -| WHERE height > 2 -``` +## Timespan Literals -```esql -FROM /* Query the employees index */ employees -| WHERE height > 2 -``` - -```esql -FROM employees -/* Query the - * employees - * index */ -| WHERE height > 2 -``` +Datetime intervals and timespans can be expressed using timespan literals. Timespan literals are a combination of a number and a qualifier. -#### Timespan Literals +These qualifiers are supported: -Datetime intervals and timespans can be expressed using timespan literals. Timespan literals are a combination of a number and a qualifier. These qualifiers are supported: - `millisecond`/`milliseconds`/`ms` - `second`/`seconds`/`sec`/`s` - `minute`/`minutes`/`min` @@ -129,15 +94,18 @@ Datetime intervals and timespans can be expressed using timespan literals. Times - `year`/`years`/`yr`/`y` Timespan literals are not whitespace sensitive. These expressions are all valid: -- `1day` -- `1 day` -- `1 day` -#### Example Queries Using Timespan Literals +- 1day +- 1 day +- 1 day + +## Example Queries with Timespan Literals + +Here are some example queries that use timespan literals: 1. Retrieve logs from the last 24 hours and calculate the average response time: - ```esql +```esql FROM logs-* | WHERE @timestamp > NOW() - 24h | STATS avg_response_time = AVG(response_time) @@ -145,7 +113,7 @@ FROM logs-* 2. Get the count of events per day for the last 7 days: - ```esql +```esql FROM events | WHERE @timestamp > NOW() - 7 days | STATS daily_count = COUNT(*) BY day = DATE_TRUNC(1 day, @timestamp) @@ -154,7 +122,7 @@ FROM events 3. Find the maximum temperature recorded in the last month: - ```esql +```esql FROM weather_data | WHERE @timestamp > NOW() - 1 month | STATS max_temp = MAX(temperature) @@ -162,7 +130,7 @@ FROM weather_data 4. Calculate the total sales for each week in the last quarter: - ```esql +```esql FROM sales | WHERE @timestamp > NOW() - 1 quarter | STATS weekly_sales = SUM(sales_amount) BY week = DATE_TRUNC(1 week, @timestamp) @@ -171,11 +139,34 @@ FROM sales 5. Retrieve error logs from the last 15 minutes and group by error type: - ```esql +```esql FROM error_logs | WHERE @timestamp > NOW() - 15 minutes | STATS error_count = COUNT(*) BY error_type | SORT error_count DESC ``` -These examples demonstrate the use of timespan literals in combination with various ES|QL commands and functions to perform different types of data queries and transformations. +#### Comments + +ES|QL uses C++ style comments: +- Double slash `//` for single line comments +- `/*` and `*/` for block comments + +```esql +// Query the employees index +FROM employees +| WHERE height > 2 +``` + +```esql +FROM /* Query the employees index */ employees +| WHERE height > 2 +``` + +```esql +FROM employees +/* Query the + * employees + * index */ +| WHERE height > 2 +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tan.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tan.txt index 8541f193d89a4..56940c07ba0a4 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tan.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tan.txt @@ -1,15 +1,25 @@ -## TAN +# TAN -The `TAN` function returns the Tangent trigonometric function of an angle. +The TAN function calculates the tangent of a given angle. -### Examples +## Syntax + +`TAN(angle)` + +### Parameters + +#### angle + +The angle for which the tangent is to be calculated. The angle should be in radians. If the angle is `null`, the function will return `null`. + +## Examples ```esql ROW a=1.8 -| EVAL tan = TAN(a) +| EVAL tan=TAN(a) ``` ```esql ROW angle=0.5 | EVAL tangent = TAN(angle) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tanh.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tanh.txt index 45fc52fa501a7..311608f9afbac 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tanh.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tanh.txt @@ -1,8 +1,18 @@ -## TANH +# TANH -The `TANH` function returns the hyperbolic tangent of an angle, expressed in radians. If the input angle is null, the function returns null. +The TANH function calculates the hyperbolic tangent of a given angle. -### Examples +## Syntax + +`TANH(angle)` + +### Parameters + +#### angle + +This is the angle in radians for which you want to calculate the hyperbolic tangent. + +## Examples ```esql ROW a=1.8 @@ -12,4 +22,4 @@ ROW a=1.8 ```esql ROW angle=0.5 | EVAL hyperbolic_tangent = TANH(angle) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tau.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tau.txt index 149d1333b2a1a..c18de72c77c69 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tau.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-tau.txt @@ -1,8 +1,16 @@ -## TAU +# TAU -The `TAU` function returns the ratio of a circle’s circumference to its radius. +TAU function returns the mathematical constant τ (tau), which is the ratio of a circle's circumference to its radius. -### Examples +## Syntax + +`TAU()` + +### Parameters + +This function does not require any parameters. + +## Examples ```esql ROW TAU() @@ -12,4 +20,4 @@ ROW TAU() FROM sample_data | EVAL tau_value = TAU() | KEEP tau_value -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_boolean.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_boolean.txt index 9a243ba128fb9..2dee65a690118 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_boolean.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_boolean.txt @@ -1,8 +1,20 @@ -## TO_BOOLEAN +# TO_BOOLEAN -The `TO_BOOLEAN` function converts an input value to a boolean value. A string value of "true" will be case-insensitively converted to the Boolean `true`. For anything else, including the empty string, the function will return `false`. The numerical value of `0` will be converted to `false`, and anything else will be converted to `true`. +The TO_BOOLEAN function converts an input value into a boolean value. -### Examples +## Syntax + +`TO_BOOLEAN(field)` + +### Parameters + +#### field + +The input value. This can be a single or multi-valued column or an expression. + +## Examples + +The following example demonstrates the use of the TO_BOOLEAN function: ```esql ROW str = ["true", "TRuE", "false", "", "yes", "1"] @@ -12,4 +24,9 @@ ROW str = ["true", "TRuE", "false", "", "yes", "1"] ```esql ROW num = [0, 1, 2, -1] | EVAL bool = TO_BOOLEAN(num) -``` \ No newline at end of file +``` + +## Notes + +- A string value of `true` is case-insensitively converted to the boolean `true`. For any other value, including an empty string, the function returns `false`. +- A numerical value of `0` is converted to `false`, while any other numerical value is converted to `true`. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_cartesianpoint.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_cartesianpoint.txt index db56fd5fc67f4..edf1d2020882f 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_cartesianpoint.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_cartesianpoint.txt @@ -1,8 +1,18 @@ -## TO_CARTESIANPOINT +# TO_CARTESIANPOINT -Converts an input value to a `cartesian_point` value. A string will only be successfully converted if it respects the WKT Point format. +The TO_CARTESIANPOINT function converts an input value into a `cartesian_point` value. -### Examples +## Syntax + +`TO_CARTESIANPOINT(field)` + +### Parameters + +#### field + +This is the input value. It can be a single or multi-valued column or an expression. + +## Examples ```esql ROW wkt = ["POINT(4297.11 -1475.53)", "POINT(7580.93 2272.77)"] @@ -14,4 +24,4 @@ ROW wkt = ["POINT(4297.11 -1475.53)", "POINT(7580.93 2272.77)"] ROW wkt = ["POINT(1000.0 2000.0)", "POINT(3000.0 4000.0)"] | MV_EXPAND wkt | EVAL pt = TO_CARTESIANPOINT(wkt) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_cartesianshape.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_cartesianshape.txt index f32af0a6d4805..8fb5ad5be2579 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_cartesianshape.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_cartesianshape.txt @@ -1,8 +1,18 @@ -## TO_CARTESIANSHAPE +# TO_CARTESIANSHAPE -Converts an input value to a `cartesian_shape` value. A string will only be successfully converted if it respects the WKT format. +The TO_CARTESIANSHAPE function converts an input value into a `cartesian_shape` value. -### Examples +## Syntax + +`TO_CARTESIANSHAPE(field)` + +### Parameters + +#### field + +The input value. This can be a single or multi-valued column or an expression. + +## Examples ```esql ROW wkt = ["POINT(4297.11 -1475.53)", "POLYGON ((3339584.72 1118889.97, 4452779.63 4865942.27, 2226389.81 4865942.27, 1113194.90 2273030.92, 3339584.72 1118889.97))"] @@ -14,4 +24,9 @@ ROW wkt = ["POINT(4297.11 -1475.53)", "POLYGON ((3339584.72 1118889.97, 4452779. ROW wkt = ["POINT(1000.0 2000.0)", "POLYGON ((1000.0 2000.0, 2000.0 3000.0, 3000.0 4000.0, 1000.0 2000.0))"] | MV_EXPAND wkt | EVAL geom = TO_CARTESIANSHAPE(wkt) -``` \ No newline at end of file +``` + +## Notes + +- The input value can be a single or multi-valued column or an expression. +- The function will only successfully convert a string if it adheres to the WKT format. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_datetime.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_datetime.txt index 7e0cd1fc82c06..579765a4685f5 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_datetime.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_datetime.txt @@ -1,19 +1,35 @@ -## TO_DATETIME +# TO_DATETIME -Converts an input value to a date value. A string will only be successfully converted if it’s respecting the format `yyyy-MM-dd'T'HH:mm:ss.SSS'Z'`. To convert dates in other formats, use `DATE_PARSE`. +The TO_DATETIME function converts an input value into a date value. -### Examples +## Syntax + +`TO_DATETIME(field)` + +### Parameters + +#### field + +The input value to be converted. This can be a single or multi-valued column or an expression. + +## Examples + +The following example converts a string into a date value: ```esql ROW string = ["1953-09-02T00:00:00.000Z", "1964-06-02T00:00:00.000Z", "1964-06-02 00:00:00"] | EVAL datetime = TO_DATETIME(string) ``` -Note that in this example, the last value in the source multi-valued field has not been converted. The reason being that if the date format is not respected, the conversion will result in a null value. When this happens a Warning header is added to the response. The header will provide information on the source of the failure: "Line 1:112: evaluation of [TO_DATETIME(string)] failed, treating result as null. Only first 20 failures recorded." A following header will contain the failure reason and the offending value: "java.lang.IllegalArgumentException: failed to parse date field [1964-06-02 00:00:00] with format [yyyy-MM-dd'T'HH:mm:ss.SSS'Z']". +If the input parameter is of a numeric type, its value will be interpreted as milliseconds since the Unix epoch. For example: ```esql ROW int = [0, 1] | EVAL dt = TO_DATETIME(int) ``` -If the input parameter is of a numeric type, its value will be interpreted as milliseconds since the Unix epoch. \ No newline at end of file +## Notes + +- TO_DATETIME converts an input value into a date value. A string will only be successfully converted if it follows the format `yyyy-MM-dd'T'HH:mm:ss.SSS'Z'`. To convert dates in other formats, use the `DATE_PARSE` function. + +- When converting from nanosecond resolution to millisecond resolution with this function, the nanosecond date is truncated, not rounded. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_degrees.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_degrees.txt index 287e526f143e5..a6c75fb627f73 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_degrees.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_degrees.txt @@ -1,8 +1,18 @@ -## TO_DEGREES +# TO_DEGREES -Converts a number in radians to degrees. +The TO_DEGREES function converts a numerical value from radians to degrees. -### Examples +## Syntax + +`TO_DEGREES(number)` + +### Parameters + +#### number + +This is the input value. It can be a single or multi-valued column or an expression. + +## Examples ```esql ROW rad = [1.57, 3.14, 4.71] @@ -12,4 +22,4 @@ ROW rad = [1.57, 3.14, 4.71] ```esql ROW angle_in_radians = 1.0 | EVAL angle_in_degrees = TO_DEGREES(angle_in_radians) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_double.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_double.txt index c835ee9531281..2a802fbc1c6a0 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_double.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_double.txt @@ -1,14 +1,25 @@ -## TO_DOUBLE +# TO_DOUBLE -Converts an input value to a double value. If the input parameter is of a date type, its value will be interpreted as milliseconds since the Unix epoch, converted to double. Boolean true will be converted to double 1.0, false to 0.0. +The TO_DOUBLE function converts an input value into a double value. -### Examples +## Syntax + +`TO_DOUBLE(field)` + +### Parameters + +#### field + +The input value. This can be a single or multi-valued column or an expression. + +## Examples ```esql ROW str1 = "5.20128E11", str2 = "foo" | EVAL dbl = TO_DOUBLE("520128000000"), dbl1 = TO_DOUBLE(str1), dbl2 = TO_DOUBLE(str2) ``` -Note that in this example, the last conversion of the string isn’t possible. When this happens, the result is a null value. In this case, a Warning header is added to the response. The header will provide information on the source of the failure: -"Line 1:115: evaluation of [TO_DOUBLE(str2)] failed, treating result as null. Only first 20 failures recorded." A following header will contain the failure reason and the offending value: -"java.lang.NumberFormatException: For input string: "foo"" \ No newline at end of file +## Notes + +- If the input parameter is of a date type, its value will be interpreted as milliseconds since the Unix epoch and converted to a double. +- A boolean value of true will be converted to a double value of 1.0, and false will be converted to 0.0. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_geopoint.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_geopoint.txt index 27cc2b7569742..f5f57af2a1ca0 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_geopoint.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_geopoint.txt @@ -1,8 +1,18 @@ -## TO_GEOPOINT +# TO_GEOPOINT -Converts an input value to a `geo_point` value. A string will only be successfully converted if it respects the WKT Point format. +The TO_GEOPOINT function converts an input value into a `geo_point` value. -### Examples +## Syntax + +`TO_GEOPOINT(field)` + +### Parameters + +#### field + +This is the input value. It can be a single or multi-valued column or an expression. + +## Examples ```esql ROW wkt = "POINT(42.97109630194 14.7552534413725)" @@ -12,4 +22,4 @@ ROW wkt = "POINT(42.97109630194 14.7552534413725)" ```esql ROW wkt = "POINT(34.052235 -118.243683)" | EVAL pt = TO_GEOPOINT(wkt) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_geoshape.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_geoshape.txt index 9160e081f6477..47f4baa3a8df1 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_geoshape.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_geoshape.txt @@ -1,8 +1,18 @@ -## TO_GEOSHAPE +# TO_GEOSHAPE -Converts an input value to a `geo_shape` value. A string will only be successfully converted if it respects the WKT format. +The TO_GEOSHAPE function converts an input value into a `geo_shape` value. -### Examples +## Syntax + +`TO_GEOSHAPE(field)` + +### Parameters + +#### field + +This is the input value. It can be a single or multi-valued column or an expression. + +## Examples ```esql ROW wkt = "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))" @@ -12,4 +22,4 @@ ROW wkt = "POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))" ```esql ROW wkt = "LINESTRING (30 10, 10 30, 40 40)" | EVAL geom = TO_GEOSHAPE(wkt) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_integer.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_integer.txt index 3944c64ee004b..9a4098ff61fa3 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_integer.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_integer.txt @@ -1,12 +1,28 @@ -## TO_INTEGER +# TO_INTEGER -Converts an input value to an integer value. If the input parameter is of a date type, its value will be interpreted as milliseconds since the Unix epoch, converted to integer. Boolean true will be converted to integer 1, false to 0. +The TO_INTEGER function converts an input value into an integer. -### Examples +## Syntax + +`TO_INTEGER(field)` + +### Parameters + +#### field + +The input value. This can be a single or multi-valued column or an expression. + +## Description + +The TO_INTEGER function converts an input value into an integer. + +## Examples ```esql ROW long = [5013792, 2147483647, 501379200000] | EVAL int = TO_INTEGER(long) ``` -Note that in this example, the last value of the multi-valued field cannot be converted as an integer. When this happens, the result is a null value. In this case, a Warning header is added to the response. The header will provide information on the source of the failure: "Line 1:61: evaluation of [TO_INTEGER(long)] failed, treating result as null. Only first 20 failures recorded." A following header will contain the failure reason and the offending value: "org.elasticsearch.xpack.esql.core.InvalidArgumentException: [501379200000] out of [integer] range" \ No newline at end of file +## Notes + +- If the input parameter is of a date type, its value is interpreted as milliseconds since the Unix epoch and converted to an integer. A boolean value of true is converted to integer 1, and false is converted to 0. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_ip.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_ip.txt index af3d8b754d88e..3bffd3a4e7d0f 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_ip.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_ip.txt @@ -1,8 +1,18 @@ -## TO_IP +# TO_IP -The `TO_IP` function converts an input string to an IP value. +The TO_IP function converts an input string into an IP value. -### Examples +## Syntax + +`TO_IP(field)` + +### Parameters + +#### field + +This is the input value. It can be a single or multi-valued column or an expression. + +## Examples ```esql ROW str1 = "1.1.1.1", str2 = "foo" @@ -10,12 +20,9 @@ ROW str1 = "1.1.1.1", str2 = "foo" | WHERE CIDR_MATCH(ip1, "1.0.0.0/8") ``` -Note that in this example, the last conversion of the string isn’t possible. When this happens, the result is a null value. In this case, a Warning header is added to the response. The header will provide information on the source of the failure: "Line 1:68: evaluation of [TO_IP(str2)] failed, treating result as null. Only first 20 failures recorded." A following header will contain the failure reason and the offending value: "java.lang.IllegalArgumentException: 'foo' is not an IP string literal." - ```esql ROW ip_str = "192.168.1.1" | EVAL ip = TO_IP(ip_str) | KEEP ip ``` -In this example, the string "192.168.1.1" is successfully converted to an IP value and kept in the result set. \ No newline at end of file diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_long.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_long.txt index b5fd5788be666..ec844c50461f5 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_long.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_long.txt @@ -1,17 +1,29 @@ -## TO_LONG +# TO_LONG -Converts an input value to a long value. If the input parameter is of a date type, its value will be interpreted as milliseconds since the Unix epoch, converted to long. Boolean true will be converted to long 1, false to 0. +The TO_LONG function converts an input value into a long value. -### Examples +## Syntax + +`TO_LONG(field)` + +### Parameters + +#### field + +The input value. This can be a single or multi-valued column or an expression. + +## Examples ```esql ROW str1 = "2147483648", str2 = "2147483648.2", str3 = "foo" | EVAL long1 = TO_LONG(str1), long2 = TO_LONG(str2), long3 = TO_LONG(str3) ``` -Note that in this example, the last conversion of the string isn’t possible. When this happens, the result is a null value. In this case, a Warning header is added to the response. The header will provide information on the source of the failure: "Line 1:113: evaluation of [TO_LONG(str3)] failed, treating result as null. Only first 20 failures recorded." A following header will contain the failure reason and the offending value: "java.lang.NumberFormatException: For input string: "foo"" - ```esql ROW str1 = "1234567890", str2 = "9876543210" | EVAL long1 = TO_LONG(str1), long2 = TO_LONG(str2) -``` \ No newline at end of file +``` + +## Notes + +- If the input parameter is of a date type, its value is interpreted as milliseconds since the Unix epoch and converted to a long value. A boolean value of true is converted to a long value of 1, and false is converted to 0. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_lower.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_lower.txt index 26be9d76088df..9bc7d3caeab4a 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_lower.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_lower.txt @@ -1,8 +1,18 @@ -## TO_LOWER +# TO_LOWER -The `TO_LOWER` function returns a new string representing the input string converted to lower case. +The TO_LOWER function converts the input string to lowercase. -### Examples +## Syntax + +`TO_LOWER(str)` + +### Parameters + +#### str + +The string expression that you want to convert to lowercase. + +## Examples ```esql ROW message = "Some Text" @@ -14,4 +24,4 @@ FROM employees | KEEP first_name, last_name | EVAL first_name_lower = TO_LOWER(first_name) | EVAL last_name_lower = TO_LOWER(last_name) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_radians.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_radians.txt index d0c90d3739998..6af4d409fe70d 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_radians.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_radians.txt @@ -1,8 +1,18 @@ -## TO_RADIANS +# TO_RADIANS -Converts a number in degrees to radians. +The TO_RADIANS function converts a numerical value from degrees to radians. -### Examples +## Syntax + +`TO_RADIANS(number)` + +### Parameters + +#### number + +This is the input value. It can be a single or multi-valued column or an expression. + +## Examples ```esql ROW deg = [90.0, 180.0, 270.0] @@ -12,4 +22,4 @@ ROW deg = [90.0, 180.0, 270.0] ```esql ROW angle_deg = 45.0 | EVAL angle_rad = TO_RADIANS(angle_deg) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_string.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_string.txt index b2ee6a7a7f106..9fa0a489741fe 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_string.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_string.txt @@ -1,14 +1,28 @@ -## TO_STRING +# TO_STRING -Converts an input value into a string. +The TO_STRING function converts an input value into a string. -### Examples +## Syntax + +`TO_STRING(field)` + +### Parameters + +#### field + +This is the input value. It can be a single or multi-valued column or an expression. + +## Examples + +Here is an example of how to use the TO_STRING function: ```esql ROW a=10 | EVAL j = TO_STRING(a) ``` +The TO_STRING function also works well on multi-valued fields: + ```esql ROW a=[10, 9, 8] | EVAL j = TO_STRING(a) diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_unsigned_long.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_unsigned_long.txt index 7702b6f8da228..5922a3cb741bd 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_unsigned_long.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_unsigned_long.txt @@ -1,20 +1,31 @@ -## TO_UNSIGNED_LONG +# TO_UNSIGNED_LONG -Converts an input value to an unsigned long value. If the input parameter is of a date type, its value will be interpreted as milliseconds since the Unix epoch, converted to unsigned long. Boolean true will be converted to unsigned long 1, false to 0. +The TO_UNSIGNED_LONG function converts an input value into an unsigned long value. -### Examples +## Syntax + +`TO_UNSIGNED_LONG(field)` + +### Parameters + +#### field + +The input value. This can be a single or multi-valued column or an expression. + +## Examples + +The following example demonstrates the use of the TO_UNSIGNED_LONG function: ```esql ROW str1 = "2147483648", str2 = "2147483648.2", str3 = "foo" | EVAL long1 = TO_UNSIGNED_LONG(str1), long2 = TO_ULONG(str2), long3 = TO_UL(str3) ``` -Note that in this example, the last conversion of the string isn’t possible. When this happens, the result is a null value. In this case, a Warning header is added to the response. The header will provide information on the source of the failure: -"Line 1:133: evaluation of [TO_UL(str3)] failed, treating result as null. Only first 20 failures recorded." -A following header will contain the failure reason and the offending value: -"java.lang.NumberFormatException: Character f is neither a decimal digit number, decimal point, nor "e" notation exponential mark." - ```esql ROW date1 = TO_DATETIME("2023-12-02T11:00:00.000Z"), date2 = TO_DATETIME("2023-12-02T11:00:00.001Z") | EVAL long_date1 = TO_UNSIGNED_LONG(date1), long_date2 = TO_UNSIGNED_LONG(date2) -``` \ No newline at end of file +``` + +## Notes + +If the input parameter is of a date type, its value will be interpreted as milliseconds since the Unix epoch and then converted to an unsigned long. A boolean value of true will be converted to an unsigned long value of 1, and false will be converted to 0. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_upper.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_upper.txt index d563e9efa59b4..b4783943c4d98 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_upper.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_upper.txt @@ -1,8 +1,18 @@ -## TO_UPPER +# TO_UPPER -The `TO_UPPER` function returns a new string representing the input string converted to upper case. +The TO_UPPER function converts the input string to uppercase. -### Examples +## Syntax + +`TO_UPPER(str)` + +### Parameters + +#### str + +The string expression that you want to convert to uppercase. + +## Examples ```esql ROW message = "Some Text" @@ -14,4 +24,4 @@ FROM employees | KEEP first_name, last_name | EVAL first_name_upper = TO_UPPER(first_name) | EVAL last_name_upper = TO_UPPER(last_name) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_version.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_version.txt index 2fb20b0686723..447a1752622a1 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_version.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-to_version.txt @@ -1,8 +1,18 @@ -## TO_VERSION +# TO_VERSION -Converts an input string to a version value. +The TO_VERSION function converts an input string into a version value. -### Examples +## Syntax + +`TO_VERSION(field)` + +### Parameters + +#### field + +The input value to be converted. This can be a single or multi-valued column or an expression. + +## Examples ```esql ROW v = TO_VERSION("1.2.3") @@ -11,4 +21,4 @@ ROW v = TO_VERSION("1.2.3") ```esql ROW version_string = "2.3.4" | EVAL version = TO_VERSION(version_string) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-top.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-top.txt index 6b18788f4b6ac..b22fb7c9b54d1 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-top.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-top.txt @@ -1,25 +1,37 @@ -## TOP +# TOP -The `TOP` function collects the top values for a specified field. It includes repeated values and allows you to specify the maximum number of values to collect and the order in which to sort them (either ascending or descending). +The TOP function collects the top values for a specified field. -### Syntax +## Syntax `TOP(field, limit, order)` ### Parameters -- **field**: The field to collect the top values for. -- **limit**: The maximum number of values to collect. -- **order**: The order to calculate the top values. Either `asc` or `desc`. +#### field -### Examples +The field for which the top values are to be collected. + +#### limit + +The maximum number of values to be collected. + +#### order + +The order in which the top values are calculated. It can be either `asc` (ascending) or `desc` (descending). + +## Examples + +Collect the top 3 salaries from the employees data: ```esql FROM employees | STATS top_salaries = TOP(salary, 3, "desc"), top_salary = MAX(salary) ``` +Collect the top 5 products in ascending order: + ```esql FROM sales | STATS top_products = TOP(product_id, 5, "asc"), max_sales = MAX(sales_amount) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-trim.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-trim.txt index bec5cce253909..ad4aa621a009a 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-trim.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-trim.txt @@ -1,8 +1,18 @@ -## TRIM +# TRIM -Removes leading and trailing whitespaces from a string. +The TRIM function removes leading and trailing whitespaces from a string. -### Examples +## Syntax + +`TRIM(string)` + +### Parameters + +#### string + +This is the string expression that you want to trim. + +## Examples ```esql ROW message = " some text ", color = " red " @@ -14,4 +24,4 @@ ROW message = " some text ", color = " red " ROW text = " example text ", label = " label " | EVAL text = TRIM(text) | EVAL label = TRIM(label) -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-values.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-values.txt index a4acd2c397104..1ea45c3642e0a 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-values.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-values.txt @@ -1,10 +1,24 @@ -## VALUES +# VALUES -`VALUES` returns all values in a group as a multivalued field. The order of the returned values isn’t guaranteed. If you need the values returned in order, use `MV_SORT`. +The VALUES function returns all values in a group as a multivalued field. -**Note:** Do not use `VALUES` in production environments. This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. +## Syntax -### Examples +`VALUES (field)` + +### Parameters + +#### field + +The field for which all values are to be returned. + +## Description + +The VALUES function is used to return all values in a group as a multivalued field. It's important to note that the order of the returned values is not guaranteed. If you need the values returned in a specific order, you should use the `MV_SORT` function. + +## Examples + +The following example demonstrates how to use the VALUES function: ```esql FROM employees @@ -13,4 +27,7 @@ FROM employees | SORT first_letter ``` -This can use a significant amount of memory and ES|QL doesn’t yet grow aggregations beyond memory. So this aggregation will work until it is used to collect more values than can fit into memory. Once it collects too many values it will fail the query with a Circuit Breaker Error. \ No newline at end of file +## Limitations + +- This functionality is in technical preview and may be changed or removed in a future release +- The VALUES function can consume a significant amount of memory. ES|QL does not currently support growing aggregations beyond memory. Therefore, if the function collects more values than can fit into memory, it will fail the query with a Circuit Breaker Error. diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-weighted_avg.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-weighted_avg.txt index 9030159ff728c..611edc73cb983 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-weighted_avg.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-weighted_avg.txt @@ -1,8 +1,22 @@ -## WEIGHTED_AVG +# WEIGHTED_AVG -The `WEIGHTED_AVG` function calculates the weighted average of a numeric expression. +The WEIGHTED_AVG function calculates the weighted average of a numeric expression. -### Examples +## Syntax + +`WEIGHTED_AVG(number, weight)` + +### Parameters + +#### number + +A numeric value that you want to calculate the weighted average for. + +#### weight + +A numeric value that represents the weight of the corresponding number. + +## Examples ```esql FROM employees @@ -18,4 +32,4 @@ FROM sales | EVAL weighted_sales = ROUND(weighted_sales, 2) | KEEP weighted_sales, region | SORT region -``` \ No newline at end of file +``` diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-where.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-where.txt index 7a772aed34bb3..b9b70ebad625e 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-where.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/esql_docs/esql-where.txt @@ -1,18 +1,30 @@ -## WHERE +# WHERE -The `WHERE` processing command produces a table that contains all the rows from the input table for which the provided condition evaluates to true. This command is essential for filtering data based on specific criteria, making it highly useful for narrowing down datasets to relevant records. It supports various functions and operators, including boolean expressions, date math, string patterns, and NULL comparisons. +The WHERE command filters the rows in a table based on a specified condition, returning only those rows where the condition evaluates to `true`. -### Use Cases -- Filtering records based on boolean conditions. -- Retrieving data within a specific time range using date math. -- Filtering data based on string patterns using wildcards or regular expressions. -- Performing NULL comparisons. -- Testing whether a field or expression equals an element in a list of literals, fields, or expressions. +## Syntax -### Limitations -- The `WHERE` command is subject to the limitations of ES|QL, such as the maximum number of rows returned (10,000) and the types of fields supported. +`WHERE expression` + +### Parameters + +#### expression + +A boolean expression that defines the condition for filtering the rows. + +## Notes + +WHERE supports the following types of functions: +- Mathematical functions +- String functions +- Date-time functions +- Type conversation functions +- Conditional functions and expressions +- Multi-value functions -### Examples +Aggregation functions are WHERE supported for EVAL. + +## Examples #### Example 1: Filtering Based on Boolean Condition ```esql @@ -20,7 +32,9 @@ FROM employees | KEEP first_name, last_name, still_hired | WHERE still_hired == true ``` + If `still_hired` is a boolean field, this can be simplified to: + ```esql FROM employees | KEEP first_name, last_name, still_hired @@ -48,6 +62,7 @@ FROM employees | SORT first_name | LIMIT 3 ``` + ```esql FROM employees | WHERE is_rehired IS NOT NULL @@ -74,4 +89,5 @@ ROW a = 1, b = 4, c = 3 | WHERE c-a IN (3, b / 2, a) ``` -For a complete list of all functions and operators, refer to the Functions overview and Operators documentation. \ No newline at end of file +### Limitations +- The `WHERE` command is subject to the maximum number of rows limitation (10,000). diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/index.ts b/x-pack/plugins/inference/server/tasks/nl_to_esql/index.ts index 2d6fe4ca7dac3..2fcc204a9f47a 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/index.ts +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/index.ts @@ -6,10 +6,9 @@ */ import type { Logger } from '@kbn/logging'; -import { isEmpty, mapValues, pick } from 'lodash'; +import { isEmpty, has } from 'lodash'; import { Observable, from, map, merge, of, switchMap } from 'rxjs'; -import { v4 } from 'uuid'; -import { ToolSchema, isChatCompletionMessageEvent } from '../../../common'; +import { ToolSchema, generateFakeToolCallId, isChatCompletionMessageEvent } from '../../../common'; import { ChatCompletionChunkEvent, ChatCompletionMessageEvent, @@ -87,7 +86,21 @@ export function naturalLanguageToEsql({ 'OPERATORS', ].map((keyword) => keyword.toUpperCase()); - const requestedDocumentation = mapValues(pick(esqlDocs, keywords), ({ data }) => data); + const requestedDocumentation = keywords.reduce>( + (documentation, keyword) => { + if (has(esqlDocs, keyword)) { + documentation[keyword] = esqlDocs[keyword].data; + } else { + documentation[keyword] = ` + ## ${keyword} + + There is no ${keyword} function or command in ES|QL. Do NOT try to use it. + `; + } + return documentation; + }, + {} + ); const fakeRequestDocsToolCall = { function: { @@ -97,7 +110,7 @@ export function naturalLanguageToEsql({ functions, }, }, - toolCallId: v4().substring(0, 6), + toolCallId: generateFakeToolCallId(), }; return merge( @@ -113,6 +126,7 @@ export function naturalLanguageToEsql({ keywords, requestedDocumentation, }, + content: '', }), client .chatComplete({ diff --git a/x-pack/plugins/inference/server/tasks/nl_to_esql/system_message.txt b/x-pack/plugins/inference/server/tasks/nl_to_esql/system_message.txt index b5d333296c696..2efa08a6288c0 100644 --- a/x-pack/plugins/inference/server/tasks/nl_to_esql/system_message.txt +++ b/x-pack/plugins/inference/server/tasks/nl_to_esql/system_message.txt @@ -1,88 +1,67 @@ -# System instructions - You are a helpful assistant for generating and executing ES|QL queries. -Your goal is to help the user construct and possibly execute an ES|QL -query for their data. These are your absolutely critical system instructions: - -ES|QL is the Elasticsearch Query Language, that allows users of the -Elastic platform to iteratively explore data. An ES|QL query consists -of a series of commands, separated by pipes. Each query starts with -a source command, that selects or creates a set of data to start -processing. This source command is then followed by one or more -processing commands, which can transform the data returned by the -previous command. +Your goal is to help the user construct an ES|QL query for their data. -Make sure you write a query using ONLY commands specified in this -conversation and present in the documentation. +VERY IMPORTANT: When writing ES|QL queries, make sure to ONLY use commands, functions +and operators listed in the current documentation. # Limitations -ES|QL currently does not support pagination. +- ES|QL currently does not support pagination. +- A query will never return more than 10000 rows. # Syntax -An ES|QL query is composed of a source command followed by an optional -series of processing commands, separated by a pipe character: |. For -example: +An ES|QL query is composed of a source command followed by a series +of processing commands, separated by a pipe character: |. + +For example: | | -Binary operators: ==, !=, <, <=, >, >=. -Logical operators are supported: AND, OR, NOT -Predicates: IS NULL, IS NOT NULL -Timestamp literal syntax: NOW() - 15 days, 24 hours, 1 week - ## Source commands -Source commands select a data source. There are three source commands: -- FROM: selects an index -- ROW: creates data from the command -- SHOW: returns information about the deployment +Source commands select a data source. + +There are three source commands: +- FROM: Selects one or multiple indices, data streams or aliases to use as source. +- ROW: Produces a row with one or more columns with values that you specify. +- SHOW: returns information about the deployment. ## Processing commands ES|QL processing commands change an input table by adding, removing, or -changing rows and columns. The following commands are available: +changing rows and columns. + +The following processing commands are available: -- DISSECT: extracts structured data out of a string, using a dissect -pattern. +- DISSECT: extracts structured data out of a string, using a dissect pattern - DROP: drops one or more columns - ENRICH: adds data from existing indices as new columns -- EVAL: adds a new column with calculated values. Supported functions for - EVAL are: - - Mathematical functions - - String functions - - Date-time functions - - Type conversation functions - - Conditional functions and expressions - - Multi-value functions -Aggregation functions are not supported for EVAL. +- EVAL: adds a new column with calculated values, using various type of functions - GROK: extracts structured data out of a string, using a grok pattern - KEEP: keeps one or more columns, drop the ones that are not kept - only the columns in the KEEP command can be used after a KEEP command -- LIMIT: returns the first n number of rows. The maximum value for this -is 10000. +- LIMIT: returns the first n number of rows. The maximum value for this is 10000 - MV_EXPAND: expands multi-value columns into a single row per value - RENAME: renames a column - STATS ... BY: groups rows according to a common value and calculates one or more aggregated values over the grouped rows. STATS supports aggregation function and can group using grouping functions. - SORT: sorts the row in a table by a column. Expressions are not supported. - If SORT is used right after a KEEP command, make sure it only uses column names in KEEP, - or move the SORT before the KEEP (e.g. not correct: KEEP date | SORT @timestamp, correct: SORT @timestamp | KEEP date) -- WHERE: produces a table that contains all the rows from the input table - for which the provided condition returns true. WHERE supports the same - functions as EVAL. +- WHERE: Filters rows based on a boolean condition. WHERE supports the same functions as EVAL. ## Functions and operators ### Grouping functions +The STATS ... BY command supports these grouping functions: + BUCKET: Creates groups of values out of a datetime or numeric input. ### Aggregation functions +The STATS ... BY command supports these aggregation functions: + AVG COUNT COUNT_DISTINCT @@ -97,6 +76,24 @@ TOP VALUES WEIGHTED_AVG +### Conditional functions and expressions + +Conditional functions return one of their arguments by evaluating in an if-else manner + +CASE +COALESCE +GREATEST +LEAST + +### Date-time functions + +DATE_DIFF +DATE_EXTRACT +DATE_FORMAT +DATE_PARSE +DATE_TRUNC +NOW + ### Mathematical functions ABS @@ -124,27 +121,24 @@ TAU ### String functions CONCAT +ENDS_WITH +FROM_BASE64 LEFT LENGTH +LOCATE LTRIM +REPEAT REPLACE RIGHT RTRIM SPLIT +STARTS_WITH SUBSTRING +TO_BASE64 TO_LOWER TO_UPPER TRIM -### Date-time functions - -DATE_DIFF -DATE_EXTRACT -DATE_FORMAT -DATE_PARSE -DATE_TRUNC -NOW - ### Type conversion functions TO_BOOLEAN @@ -163,16 +157,14 @@ TO_STRING TO_UNSIGNED_LONG TO_VERSION +### IP Functions -### Conditional functions and expressions - -CASE -COALESCE -GREATEST -LEAST +CIDR_MATCH +IP_PREFIX ### Multivalue functions +MV_APPEND MV_AVG MV_CONCAT MV_COUNT @@ -182,36 +174,37 @@ MV_LAST MV_MAX MV_MEDIAN MV_MIN +NV_SORT +MV_SLIDE MV_SUM +MV_ZIP ### Operators -Binary operators -Unary operators -Logical operators -IS NULL and IS NOT NULL predicates -CIDR_MATCH -ENDS_WITH +Binary operators: ==, !=, <, <=, >, >=, +, -, *, /, % +Logical operators: AND, OR, NOT +Predicates: IS NULL, IS NOT NULL +Unary operators: - + IN -LIKE -RLIKE -STARTS_WITH +LIKE: filter data based on string patterns using wildcards +RLIKE: filter data based on string patterns using regular expressions # Usage examples -Here are some examples of queries: +Here are some examples of ES|QL queries: ```esql FROM employees - | WHERE country == "NL" AND gender == "M" - | STATS COUNT(*) +| WHERE country == "NL" AND gender == "M" +| STATS COUNT(*) ``` ```esql FROM employees - | EVAL trunk_worked_seconds = avg_worked_seconds / 100000000 * 100000000 - | STATS c = count(languages.long) BY languages.long, trunk_worked_seconds - | SORT c desc, languages.long, trunk_worked_seconds +| EVAL trunk_worked_seconds = avg_worked_seconds / 100000000 * 100000000 +| STATS c = count(languages.long) BY languages.long, trunk_worked_seconds +| SORT c desc, languages.long, trunk_worked_seconds ``` *Extracting structured data from logs using DISSECT* @@ -246,11 +239,6 @@ FROM employees | SORT b ``` -**Creating inline data using ROW** -```esql -ROW a = 1, b = "two", c = null -``` - ```esql FROM employees | EVAL is_recent_hire = CASE(hire_date <= "2023-01-01T00:00:00Z", 1, 0) diff --git a/x-pack/plugins/inference/tsconfig.json b/x-pack/plugins/inference/tsconfig.json index 34c393d375839..cc81eec1da96c 100644 --- a/x-pack/plugins/inference/tsconfig.json +++ b/x-pack/plugins/inference/tsconfig.json @@ -18,22 +18,23 @@ ".storybook/**/*.js" ], "kbn_references": [ - "@kbn/core", "@kbn/i18n", - "@kbn/logging", - "@kbn/core-http-server", - "@kbn/actions-plugin", - "@kbn/config-schema", - "@kbn/esql-validation-autocomplete", + "@kbn/sse-utils", "@kbn/esql-ast", - "@kbn/dev-cli-runner", + "@kbn/esql-validation-autocomplete", + "@kbn/core", + "@kbn/logging", "@kbn/babel-register", + "@kbn/dev-cli-runner", "@kbn/expect", "@kbn/tooling-log", + "@kbn/repo-info", + "@kbn/logging-mocks", + "@kbn/core-http-server", + "@kbn/actions-plugin", + "@kbn/config-schema", "@kbn/es-types", "@kbn/field-types", "@kbn/expressions-plugin", - "@kbn/logging-mocks", - "@kbn/repo-info" ] } diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/common_fields/processor_type_field.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/common_fields/processor_type_field.tsx index 7044e695c4370..db90fb1dba8f9 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/common_fields/processor_type_field.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/common_fields/processor_type_field.tsx @@ -109,13 +109,13 @@ export const ProcessorTypeField: FunctionComponent = ({ initialType }) => config={typeConfig} defaultValue={initialType} path="type"> {(typeField) => { let selectedOptions: ProcessorTypeAndLabel[]; - let description: string | ReactNode = ''; + let description: ReactNode | ((esDocUrl: string) => ReactNode) = ''; if (typeField.value?.length) { const type = typeField.value; const processorDescriptor = getProcessorDescriptor(type); if (processorDescriptor) { - description = processorDescriptor.typeDescription || ''; + description = processorDescriptor.typeDescription ?? ''; selectedOptions = [{ label: processorDescriptor.label, value: type }]; } else { // If there is no label for this processor type, just use the type as the label diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/grok.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/grok.tsx index d01ae887a89da..ae56d3b30a62d 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/grok.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/processor_form/processors/grok.tsx @@ -129,7 +129,11 @@ export const Grok: FunctionComponent = () => { return ( { return ( { - const { euiTheme } = useEuiTheme(); - return css` - /* compensate for EuiCard children margin-block-start */ - margin-block-start: calc(${euiTheme.size.s} * -2); - `; -}; - export const IntegrationAssistantCard = React.memo(() => { const { canExecuteConnectors } = useAuthorization(); const navigate = useNavigate(); - const assistantCardCss = useAssistantCardCss(); return ( - - + + @@ -63,9 +38,22 @@ export const IntegrationAssistantCard = React.memo(() => { justifyContent="flexStart" > - -

    {i18n.ASSISTANT_TITLE}

    -
    + + + +

    {i18n.ASSISTANT_TITLE}

    +
    +
    + + + +
    @@ -84,7 +72,7 @@ export const IntegrationAssistantCard = React.memo(() => { )}
    -
    + ); }); IntegrationAssistantCard.displayName = 'IntegrationAssistantCard'; diff --git a/x-pack/plugins/integration_assistant/scripts/draw_graphs_script.ts b/x-pack/plugins/integration_assistant/scripts/draw_graphs_script.ts index d7ac7478dcc66..12a37f71b184a 100644 --- a/x-pack/plugins/integration_assistant/scripts/draw_graphs_script.ts +++ b/x-pack/plugins/integration_assistant/scripts/draw_graphs_script.ts @@ -19,6 +19,7 @@ import { getCategorizationGraph } from '../server/graphs/categorization/graph'; import { getEcsGraph, getEcsSubGraph } from '../server/graphs/ecs/graph'; import { getLogFormatDetectionGraph } from '../server/graphs/log_type_detection/graph'; import { getRelatedGraph } from '../server/graphs/related/graph'; +import { getKVGraph } from '../server/graphs/kv/graph'; // Some mock elements just to get the graph to compile const model = new FakeLLM({ @@ -50,9 +51,11 @@ export async function drawGraphs() { const categorizationGraph = (await getCategorizationGraph({ client, model })).getGraph(); const ecsSubGraph = (await getEcsSubGraph({ model })).getGraph(); const ecsGraph = (await getEcsGraph({ model })).getGraph(); + const kvGraph = (await getKVGraph({ client, model })).getGraph(); drawGraph(relatedGraph, 'related_graph'); drawGraph(logFormatDetectionGraph, 'log_detection_graph'); drawGraph(categorizationGraph, 'categorization_graph'); drawGraph(ecsSubGraph, 'ecs_subgraph'); drawGraph(ecsGraph, 'ecs_graph'); + drawGraph(kvGraph, 'kv_graph'); } diff --git a/x-pack/plugins/integration_assistant/server/graphs/kv/constants.ts b/x-pack/plugins/integration_assistant/server/graphs/kv/constants.ts index 6ddb6974a5b9e..92cc55841bb98 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/kv/constants.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/kv/constants.ts @@ -20,6 +20,11 @@ export const KV_HEADER_EXAMPLE_ANSWER = { grok_pattern: '%{WORD:key1}:%{WORD:value1};%{WORD:key2}:%{WORD:value2}:%{GREEDYDATA:message}', }; +export const KV_HEADER_ERROR_EXAMPLE_ANSWER = { + grok_pattern: + '%{TIMESTAMP:timestamp}:%{WORD:value1};%{WORD:key2}:%{WORD:value2}:%{GREEDYDATA:message}', +}; + export const onFailure = { append: { field: 'error.message', diff --git a/x-pack/plugins/integration_assistant/server/graphs/kv/error.ts b/x-pack/plugins/integration_assistant/server/graphs/kv/error.ts index 303c60d21be79..b6d64ee4f615d 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/kv/error.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/kv/error.ts @@ -8,8 +8,8 @@ import { JsonOutputParser } from '@langchain/core/output_parsers'; import type { KVState } from '../../types'; import type { HandleKVNodeParams } from './types'; -import { KV_ERROR_PROMPT } from './prompts'; -import { COMMON_ERRORS, KV_EXAMPLE_ANSWER } from './constants'; +import { KV_ERROR_PROMPT, KV_HEADER_ERROR_PROMPT } from './prompts'; +import { COMMON_ERRORS, KV_EXAMPLE_ANSWER, KV_HEADER_ERROR_EXAMPLE_ANSWER } from './constants'; import { createKVProcessor } from '../../util/processors'; import { KVProcessor } from '../../processor_types'; @@ -36,3 +36,23 @@ export async function handleKVError({ lastExecutedChain: 'kv_error', }; } + +export async function handleHeaderError({ + state, + model, +}: HandleKVNodeParams): Promise> { + const outputParser = new JsonOutputParser(); + const kvHeaderErrorGraph = KV_HEADER_ERROR_PROMPT.pipe(model).pipe(outputParser); + const currentPattern = state.grokPattern; + + const pattern = await kvHeaderErrorGraph.invoke({ + current_pattern: JSON.stringify(currentPattern, null, 2), + errors: JSON.stringify(state.errors, null, 2), + ex_answer: JSON.stringify(KV_HEADER_ERROR_EXAMPLE_ANSWER, null, 2), + }); + + return { + grokPattern: pattern.grok_pattern, + lastExecutedChain: 'kv_header_error', + }; +} diff --git a/x-pack/plugins/integration_assistant/server/graphs/kv/graph.ts b/x-pack/plugins/integration_assistant/server/graphs/kv/graph.ts index 07f829c51f689..6f7b43ba40f22 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/kv/graph.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/kv/graph.ts @@ -12,8 +12,8 @@ import type { KVState } from '../../types'; import { handleKV } from './kv'; import type { KVGraphParams, KVBaseNodeParams } from './types'; import { handleHeader } from './header'; -import { handleKVError } from './error'; -import { handleKVValidate } from './validate'; +import { handleHeaderError, handleKVError } from './error'; +import { handleHeaderValidate, handleKVValidate } from './validate'; const graphState: StateGraphArgs['channels'] = { lastExecutedChain: { @@ -56,6 +56,10 @@ const graphState: StateGraphArgs['channels'] = { value: (x: ESProcessorItem, y?: ESProcessorItem) => y ?? x, default: () => ({ kv: {} }), }, + grokPattern: { + value: (x: string, y?: string) => y ?? x, + default: () => '', + }, additionalProcessors: { value: (x: object[], y?: object[]) => y ?? x, default: () => [], @@ -95,6 +99,13 @@ function kvRouter({ state }: KVBaseNodeParams): string { return 'handleKVError'; } +function kvHeaderRouter({ state }: KVBaseNodeParams): string { + if (Object.keys(state.errors).length === 0) { + return 'handleKV'; + } + return 'handleHeaderError'; +} + export async function getKVGraph({ model, client }: KVGraphParams) { const workflow = new StateGraph({ channels: graphState, @@ -103,14 +114,23 @@ export async function getKVGraph({ model, client }: KVGraphParams) { .addNode('modelOutput', (state: KVState) => modelOutput({ state })) .addNode('handleHeader', (state: KVState) => handleHeader({ state, model, client })) .addNode('handleKVError', (state: KVState) => handleKVError({ state, model, client })) + .addNode('handleHeaderError', (state: KVState) => handleHeaderError({ state, model, client })) .addNode('handleKV', (state: KVState) => handleKV({ state, model, client })) .addNode('handleKVValidate', (state: KVState) => handleKVValidate({ state, model, client })) + .addNode('handleHeaderValidate', (state: KVState) => + handleHeaderValidate({ state, model, client }) + ) .addEdge(START, 'modelInput') .addConditionalEdges('modelInput', (state: KVState) => headerRouter({ state }), { header: 'handleHeader', noHeader: 'handleKV', }) - .addEdge('handleHeader', 'handleKV') + .addEdge('handleHeader', 'handleHeaderValidate') + .addConditionalEdges('handleHeaderValidate', (state: KVState) => kvHeaderRouter({ state }), { + handleHeaderError: 'handleHeaderError', + handleKV: 'handleKV', + }) + .addEdge('handleHeaderError', 'handleHeaderValidate') .addEdge('handleKVError', 'handleKVValidate') .addEdge('handleKV', 'handleKVValidate') .addConditionalEdges('handleKVValidate', (state: KVState) => kvRouter({ state }), { diff --git a/x-pack/plugins/integration_assistant/server/graphs/kv/header.test.ts b/x-pack/plugins/integration_assistant/server/graphs/kv/header.test.ts index 2c4300aefb15a..7991484024713 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/kv/header.test.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/kv/header.test.ts @@ -40,7 +40,9 @@ describe('Testing kv header', () => { } as unknown as IScopedClusterClient; it('handleHeader()', async () => { const response = await handleHeader({ state, model, client }); - expect(response.kvLogMessages).toStrictEqual(['dummy=data']); + expect(response.grokPattern).toStrictEqual( + '<%{NUMBER:priority}>%{NUMBER:version} %{GREEDYDATA:message}' + ); expect(response.lastExecutedChain).toBe('kv_header'); }); }); diff --git a/x-pack/plugins/integration_assistant/server/graphs/kv/header.ts b/x-pack/plugins/integration_assistant/server/graphs/kv/header.ts index 2ffba636639a2..473eae1516112 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/kv/header.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/kv/header.ts @@ -9,14 +9,7 @@ import { JsonOutputParser } from '@langchain/core/output_parsers'; import type { KVState } from '../../types'; import type { HandleKVNodeParams } from './types'; import { KV_HEADER_PROMPT } from './prompts'; -import { KV_HEADER_EXAMPLE_ANSWER, onFailure } from './constants'; -import { createGrokProcessor } from '../../util/processors'; -import { testPipeline } from '../../util'; - -interface GrokResult { - [key: string]: unknown; - message: string; -} +import { KV_HEADER_EXAMPLE_ANSWER } from './constants'; export async function handleHeader({ state, @@ -31,22 +24,8 @@ export async function handleHeader({ ex_answer: JSON.stringify(KV_HEADER_EXAMPLE_ANSWER, null, 2), }); - const grokProcessors = createGrokProcessor(pattern.grok_pattern); - const pipeline = { processors: grokProcessors, on_failure: [onFailure] }; - - const { pipelineResults } = (await testPipeline(state.logSamples, pipeline, client)) as { - pipelineResults: GrokResult[]; - errors: object[]; - }; - - const additionalProcessors = state.additionalProcessors; - additionalProcessors.push(grokProcessors[0]); - - const kvLogMessages: string[] = pipelineResults.map((entry) => entry.message); - return { - kvLogMessages, - additionalProcessors, + grokPattern: pattern.grok_pattern, lastExecutedChain: 'kv_header', }; } diff --git a/x-pack/plugins/integration_assistant/server/graphs/kv/kv.ts b/x-pack/plugins/integration_assistant/server/graphs/kv/kv.ts index 2f81d11839243..46820778e5a7d 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/kv/kv.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/kv/kv.ts @@ -27,7 +27,7 @@ export async function handleKV({ const kvMainGraph = KV_MAIN_PROMPT.pipe(model).pipe(new JsonOutputParser()); // Pick logSamples if there was no header detected. - const samples = state.kvLogMessages.length > 0 ? state.kvLogMessages : state.logSamples; + const samples = state.header ? state.kvLogMessages : state.logSamples; const kvInput = (await kvMainGraph.invoke({ samples: samples[0], diff --git a/x-pack/plugins/integration_assistant/server/graphs/kv/prompts.ts b/x-pack/plugins/integration_assistant/server/graphs/kv/prompts.ts index e44f164adf75c..0fd7f1262c251 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/kv/prompts.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/kv/prompts.ts @@ -38,6 +38,7 @@ export const KV_MAIN_PROMPT = ChatPromptTemplate.fromMessages([ - Do not create any other processors. - Do not add any prefix to the processor. - Do not use the special characters like \`\s\` or \`\\s+\` in the \`field_split\` or \`value_split\` regular expressions. + - Always use single backslash (\\) for escaping special characters in \`field_split\` or \`value_split\` regular expressions. - Do not add brackets (), <>, [] as well as single or double quotes in \`trim_value\`. - Make sure to trim whitespaces in \`trim_key\`. - Do not respond with anything except the processor as a JSON object enclosed with 3 backticks (\`), see example response below. Use strict JSON response format. @@ -91,6 +92,45 @@ You then have to create a grok pattern using the regex pattern. ['ai', 'Please find the JSON object below:'], ]); +export const KV_HEADER_ERROR_PROMPT = ChatPromptTemplate.fromMessages([ + [ + 'system', + `You are an expert in Syslogs and identifying the headers and structured body in syslog messages. Here is some context for you to reference for your task, read it carefully as you will get questions about it later: + + +{current_pattern} + +`, + ], + [ + 'human', + `Please go through each error below, carefully review the provided current grok pattern, and resolve the most likely cause to the supplied error by returning an updated version of the current_pattern. + + +{errors} + + + You ALWAYS follow these guidelines when writing your response: + + - Identify any mismatches, incorrect syntax, or logical errors in the pattern. + - If the message part contains any unstructured data , make sure to add this in grok pattern. + - Do not parse the message part in the regex. Just the header part should be in regex nad grok_pattern. + - Make sure to map the remaining message part to \'message\' in grok pattern. + - Do not respond with anything except the processor as a JSON object enclosed with 3 backticks (\`), see example response above. Use strict JSON response format. + + + You are required to provide the output in the following example response format: + + + A: Please find the JSON object below: + \`\`\`json + {ex_answer} + \`\`\` + `, + ], + ['ai', 'Please find the JSON object below:'], +]); + export const KV_ERROR_PROMPT = ChatPromptTemplate.fromMessages([ [ 'system', @@ -126,6 +166,7 @@ Follow these steps to help resolve the current ingest pipeline issues: You ALWAYS follow these guidelines when writing your response: - Do not use the special characters like \`\s\` or \`\\s+\` in the \`field_split\` or \`value_split\` regular expressions. +- Always use single backslash (\\) for escaping characters in \`field_split\` or \`value_split\` regular expressions. - Do not add brackets (), <>, [] as well as single or double quotes in \`trim_value\`. - Do not add multiple delimeters in the \`value_split\` regular expression. - Make sure to trim whitespaces in \`trim_key\`. diff --git a/x-pack/plugins/integration_assistant/server/graphs/kv/validate.ts b/x-pack/plugins/integration_assistant/server/graphs/kv/validate.ts index adb60ae6ed955..0bca2ac3fd5e4 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/kv/validate.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/kv/validate.ts @@ -11,11 +11,17 @@ import type { KVState } from '../../types'; import type { HandleKVNodeParams } from './types'; import { testPipeline } from '../../util'; import { onFailure } from './constants'; +import { createGrokProcessor } from '../../util/processors'; interface KVResult { [packageName: string]: { [dataStreamName: string]: unknown }; } +interface GrokResult { + [key: string]: unknown; + message: string; +} + export async function handleKVValidate({ state, client, @@ -25,7 +31,7 @@ export async function handleKVValidate({ const dataStreamName = state.dataStreamName; // Pick logSamples if there was no header detected. - const samples = state.kvLogMessages.length > 0 ? state.kvLogMessages : state.logSamples; + const samples = state.header ? state.kvLogMessages : state.logSamples; const { pipelineResults: kvOutputSamples, errors } = (await createJSONInput( kvProcessor, @@ -54,6 +60,35 @@ export async function handleKVValidate({ }; } +export async function handleHeaderValidate({ + state, + client, +}: HandleKVNodeParams): Promise> { + const grokPattern = state.grokPattern; + const grokProcessor = createGrokProcessor(grokPattern); + const pipeline = { processors: grokProcessor, on_failure: [onFailure] }; + + const { pipelineResults, errors } = (await testPipeline(state.logSamples, pipeline, client)) as { + pipelineResults: GrokResult[]; + errors: object[]; + }; + + if (errors.length > 0) { + return { errors, lastExecutedChain: 'kv_header_validate' }; + } + + const kvLogMessages: string[] = pipelineResults.map((entry) => entry.message); + const additionalProcessors = state.additionalProcessors; + additionalProcessors.push(grokProcessor[0]); + + return { + kvLogMessages, + additionalProcessors, + errors: [], + lastExecutedChain: 'kv_header_validate', + }; +} + async function createJSONInput( kvProcessor: ESProcessorItem, formattedSamples: string[], diff --git a/x-pack/plugins/integration_assistant/server/graphs/log_type_detection/prompts.ts b/x-pack/plugins/integration_assistant/server/graphs/log_type_detection/prompts.ts index 7bbc01d6cc10a..2ed547de00132 100644 --- a/x-pack/plugins/integration_assistant/server/graphs/log_type_detection/prompts.ts +++ b/x-pack/plugins/integration_assistant/server/graphs/log_type_detection/prompts.ts @@ -22,6 +22,7 @@ Here is some context for you to reference for your task, read it carefully as yo `Looking at the log samples , our goal is to identify the syslog type based on the guidelines below. - Go through each log sample and identify the log format type. +- If the samples have a timestamp , loglevel in the beginning information then set "header: true". - If the samples have a syslog header then set "header: true" , else set "header: false". If you are unable to determine the syslog header presence then set "header: false". - If the syslog samples have structured body then classify it as "log_type: structured". - If the syslog samples have unstructured body then classify it as "log_type: unstructured". diff --git a/x-pack/plugins/integration_assistant/server/types.ts b/x-pack/plugins/integration_assistant/server/types.ts index b657ae8f0f110..0fb68b4e04572 100644 --- a/x-pack/plugins/integration_assistant/server/types.ts +++ b/x-pack/plugins/integration_assistant/server/types.ts @@ -111,6 +111,7 @@ export interface KVState { packageName: string; dataStreamName: string; kvProcessor: ESProcessorItem; + grokPattern: string; logSamples: string[]; kvLogMessages: string[]; jsonSamples: string[]; diff --git a/x-pack/plugins/integration_assistant/server/util/processors.ts b/x-pack/plugins/integration_assistant/server/util/processors.ts index dc0c862282bc7..12200f9d32db9 100644 --- a/x-pack/plugins/integration_assistant/server/util/processors.ts +++ b/x-pack/plugins/integration_assistant/server/util/processors.ts @@ -61,8 +61,8 @@ export function createGrokProcessor(grokPattern: string): ESProcessorItem { return grokProcessor; } -// The kv graph returns a simplified grok processor for header -// This function takes in the grok pattern string and creates the grok processor +// The kv graph returns a simplified kv processor for structured body +// This function takes in the kvInput string and creates the kv processor export function createKVProcessor(kvInput: KVProcessor, state: KVState): ESProcessorItem { const templatesPath = joinPath(__dirname, '../templates/processors'); const env = new Environment(new FileSystemLoader(templatesPath), { diff --git a/x-pack/plugins/kubernetes_security/public/components/tree_view_container/breadcrumb/__snapshots__/index.test.tsx.snap b/x-pack/plugins/kubernetes_security/public/components/tree_view_container/breadcrumb/__snapshots__/index.test.tsx.snap index 98b6f1dd203cf..00c776a2a132a 100644 --- a/x-pack/plugins/kubernetes_security/public/components/tree_view_container/breadcrumb/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/kubernetes_security/public/components/tree_view_container/breadcrumb/__snapshots__/index.test.tsx.snap @@ -1,1133 +1,461 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Tree view Breadcrumb component When Breadcrumb is mounted renders Breadcrumb button content correctly 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    +
    +
    -
    -
    - - - + + + - - + + + - -
    -
    -
    -
    - , - "container":
    -
    -
    -
    + + + - - - - - - - - - - - - - - - - + + - -
    + + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`Tree view Breadcrumb component When Breadcrumb is mounted should display cluster icon button when no cluster name is provided 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    +
    +
    -
    -
    - - - + + + - - + + + - -
    -
    -
    -
    - , - "container":
    -
    -
    -
    + + + - - - - - - - - - - - - - - - - + + - -
    + + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`Tree view Breadcrumb component When Breadcrumb is mounted should render breadcrumb icons 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    +
    +
    -
    -
    - - - + + + - - + + + - - + + + - -
    -
    -
    -
    - , - "container":
    -
    -
    -
    + + + - - - - - - - - - - - - - - - - - - - - + + - -
    + + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; exports[`Tree view Breadcrumb component When Breadcrumb is mounted should render last breadcrumb content only 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    +
    +
    +
    -
    -
    - - - + + + - -
    -
    -
    -
    - , - "container":
    -
    -
    -
    + + + - - - - - - - - - - - - + + - -
    + + +
    -
    , - "debug": [Function], - "findAllByAltText": [Function], - "findAllByDisplayValue": [Function], - "findAllByLabelText": [Function], - "findAllByPlaceholderText": [Function], - "findAllByRole": [Function], - "findAllByTestId": [Function], - "findAllByText": [Function], - "findAllByTitle": [Function], - "findByAltText": [Function], - "findByDisplayValue": [Function], - "findByLabelText": [Function], - "findByPlaceholderText": [Function], - "findByRole": [Function], - "findByTestId": [Function], - "findByText": [Function], - "findByTitle": [Function], - "getAllByAltText": [Function], - "getAllByDisplayValue": [Function], - "getAllByLabelText": [Function], - "getAllByPlaceholderText": [Function], - "getAllByRole": [Function], - "getAllByTestId": [Function], - "getAllByText": [Function], - "getAllByTitle": [Function], - "getByAltText": [Function], - "getByDisplayValue": [Function], - "getByLabelText": [Function], - "getByPlaceholderText": [Function], - "getByRole": [Function], - "getByTestId": [Function], - "getByText": [Function], - "getByTitle": [Function], - "queryAllByAltText": [Function], - "queryAllByDisplayValue": [Function], - "queryAllByLabelText": [Function], - "queryAllByPlaceholderText": [Function], - "queryAllByRole": [Function], - "queryAllByTestId": [Function], - "queryAllByText": [Function], - "queryAllByTitle": [Function], - "queryByAltText": [Function], - "queryByDisplayValue": [Function], - "queryByLabelText": [Function], - "queryByPlaceholderText": [Function], - "queryByRole": [Function], - "queryByTestId": [Function], - "queryByText": [Function], - "queryByTitle": [Function], - "rerender": [Function], - "unmount": [Function], -} +
    +
    `; diff --git a/x-pack/plugins/kubernetes_security/public/components/tree_view_container/breadcrumb/index.test.tsx b/x-pack/plugins/kubernetes_security/public/components/tree_view_container/breadcrumb/index.test.tsx index 4ac0471c2a1a6..c377f21080ed1 100644 --- a/x-pack/plugins/kubernetes_security/public/components/tree_view_container/breadcrumb/index.test.tsx +++ b/x-pack/plugins/kubernetes_security/public/components/tree_view_container/breadcrumb/index.test.tsx @@ -44,7 +44,7 @@ describe('Tree view Breadcrumb component', () => { expect(renderResult.queryByText(MOCK_TREE_SELECTION.node!)).toBeFalsy(); expect(renderResult.queryByText(MOCK_TREE_SELECTION.pod!)).toBeNull(); expect(renderResult.queryByText(MOCK_TREE_SELECTION.containerImage!)).toBeVisible(); - expect(renderResult).toMatchSnapshot(); + expect(renderResult.container).toMatchSnapshot(); }); it('should render breadcrumb icons', async () => { @@ -60,7 +60,7 @@ describe('Tree view Breadcrumb component', () => { expect( renderResult.queryByTestId('kubernetesSecurityBreadcrumbIcon-containerImage') ).toBeVisible(); - expect(renderResult).toMatchSnapshot(); + expect(renderResult.container).toMatchSnapshot(); }); it('returns null when no selected collection', async () => { renderResult = mockedContext.render(); @@ -84,7 +84,7 @@ describe('Tree view Breadcrumb component', () => { ).toBeVisible(); expect(renderResult.queryByText(MOCK_TREE_SELECTION.clusterId!)).toBeNull(); expect(renderResult.queryByText(MOCK_TREE_SELECTION.containerImage!)).toBeVisible(); - expect(renderResult).toMatchSnapshot(); + expect(renderResult.container).toMatchSnapshot(); }); it('should return null when no cluster in selection', async () => { @@ -132,7 +132,7 @@ describe('Tree view Breadcrumb component', () => { expect(renderResult.queryByText(MOCK_TREE_SELECTION.node!)).toBeNull(); expect(renderResult.queryByText(MOCK_TREE_SELECTION.pod!)).toBeNull(); expect(renderResult.queryByText(MOCK_TREE_SELECTION.containerImage!)).toBeVisible(); - expect(renderResult).toMatchSnapshot(); + expect(renderResult.container).toMatchSnapshot(); }); }); }); diff --git a/x-pack/plugins/lens/public/app_plugin/get_application_user_messages.test.tsx b/x-pack/plugins/lens/public/app_plugin/get_application_user_messages.test.tsx index 40ce233c8d489..4345ae6795a36 100644 --- a/x-pack/plugins/lens/public/app_plugin/get_application_user_messages.test.tsx +++ b/x-pack/plugins/lens/public/app_plugin/get_application_user_messages.test.tsx @@ -170,7 +170,7 @@ describe('application-level user messages', () => { getApplicationUserMessages({ ...props, ...propsOverrides, - })[0].longMessage + })[0].longMessage as React.ReactNode } ); diff --git a/x-pack/plugins/lens/public/datasources/form_based/form_based.test.ts b/x-pack/plugins/lens/public/datasources/form_based/form_based.test.ts index 94a85962e28b7..784ee32f28b4f 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/form_based.test.ts +++ b/x-pack/plugins/lens/public/datasources/form_based/form_based.test.ts @@ -3430,7 +3430,7 @@ describe('IndexPattern Data Source', () => { return onlyWarnings.map(({ longMessage }) => isFragment(longMessage) ? (longMessage as ReactElement).props.children[0].props.id - : (longMessage as ReactElement).props.id + : (longMessage as unknown as ReactElement).props.id ); }; diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/filters/filters.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/filters/filters.tsx index e514e9d6c08d4..9b2a88f657f07 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/filters/filters.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/filters/filters.tsx @@ -276,7 +276,7 @@ export const FilterList = ({ defaultMessage: 'Click to edit', })} > - {filter.label || filter.input.query || defaultLabel} + {filter.label || (filter.input.query as string) || defaultLabel} } /> diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile_ranks.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile_ranks.tsx index a7d8896ea050b..da4c3f4d77d37 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile_ranks.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/percentile_ranks.tsx @@ -219,7 +219,7 @@ export const percentileRanksOperation: OperationDefinition< ); const inputValueIsValid = isValidNumber(inputValue, isInline); - const handleInputChange: EuiFieldNumberProps['onChange'] = useCallback( + const handleInputChange = useCallback>( (e) => { handleInputChangeWithoutValidation(e.currentTarget.value); }, diff --git a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/terms/terms.test.tsx b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/terms/terms.test.tsx index 141906c712076..3cc6da91d8755 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/terms/terms.test.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/operations/definitions/terms/terms.test.tsx @@ -2284,7 +2284,7 @@ describe('terms', () => { expect(select.prop('value')).toEqual('alphabetical'); - expect(select.prop('options')!.map(({ value }) => value)).toEqual([ + expect(select.prop('options')!.map((option) => option.value)).toEqual([ 'column$$$col2', 'alphabetical', 'rare', @@ -2311,7 +2311,7 @@ describe('terms', () => { expect(select.prop('value')).toEqual('alphabetical'); - expect(select.prop('options')!.map(({ value }) => value)).toEqual([ + expect(select.prop('options')!.map((option) => option.value)).toEqual([ 'column$$$col2', 'alphabetical', 'custom', @@ -2372,7 +2372,7 @@ describe('terms', () => { const selection = instance.find(EuiButtonGroup); expect(selection.prop('idSelected')).toContain('asc'); - expect(selection.prop('options').map(({ value }) => value)).toEqual(['asc', 'desc']); + expect(selection.prop('options').map((option) => option.value)).toEqual(['asc', 'desc']); }); it('should update state with the order direction value', () => { diff --git a/x-pack/plugins/lens/public/datasources/form_based/utils.test.tsx b/x-pack/plugins/lens/public/datasources/form_based/utils.test.tsx index d44b392448a72..b1f57635590ec 100644 --- a/x-pack/plugins/lens/public/datasources/form_based/utils.test.tsx +++ b/x-pack/plugins/lens/public/datasources/form_based/utils.test.tsx @@ -124,7 +124,7 @@ describe('indexpattern_datasource utils', () => { expect({ ...warningMessages[0], longMessage: '' }).toMatchSnapshot(); - render({warningMessages[0].longMessage}); + render({warningMessages[0].longMessage as React.ReactNode}); expect(screen.getByTestId('lnsPrecisionWarningEnableAccuracy')).toBeInTheDocument(); await userEvent.click(screen.getByTestId('lnsPrecisionWarningEnableAccuracy')); @@ -148,7 +148,9 @@ describe('indexpattern_datasource utils', () => { expect({ ...warningMessages[0], longMessage: '' }).toMatchSnapshot(); - const { container } = render({warningMessages[0].longMessage}); + const { container } = render( + {warningMessages[0].longMessage as React.ReactNode} + ); expect(container).toHaveTextContent( 'might be an approximation. For more precise results, try increasing the number of Top Values or using Filters instead.' ); @@ -187,7 +189,7 @@ describe('indexpattern_datasource utils', () => { expect(warnings).toHaveLength(1); expect({ ...warnings[0], longMessage: '' }).toMatchSnapshot(); - render({warnings[0].longMessage}); + render({warnings[0].longMessage as React.ReactNode}); await userEvent.click(screen.getByText('Rank by rarity')); const stateSetter = setState.mock.calls[0][0]; const newState = stateSetter(state); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx index 2847af1ca4375..342d275b45e39 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx @@ -569,7 +569,8 @@ export function LayerPanel(props: LayerPanelProps) { }} message={{ severity: messages[0]?.severity, - content: messages[0]?.shortMessage || messages[0]?.longMessage, + content: (messages[0]?.shortMessage || + messages[0]?.longMessage) as React.ReactNode, }} > {layerDatasource ? ( diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/editor_frame.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/editor_frame.tsx index d5173998dc462..5020d1837470f 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/editor_frame.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/editor_frame.tsx @@ -128,7 +128,9 @@ export function EditorFrame(props: EditorFrameProps) { bannerMessages={ bannerMessages.length ? ( - longMessage)} /> + longMessage as React.ReactNode)} + /> ) : undefined } diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_errors.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_errors.tsx index 1c921f0c732f7..949ae6648c183 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_errors.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/workspace_panel/workspace_errors.tsx @@ -56,7 +56,7 @@ export function WorkspaceErrors(props: Props) { {activeError.longMessage ? ( <> - {activeError.longMessage} + {activeError.longMessage as React.ReactNode} ) : null}
    diff --git a/x-pack/plugins/lens/public/embeddable/embeddable.tsx b/x-pack/plugins/lens/public/embeddable/embeddable.tsx index 7baf35c4eb140..6c758abb81cff 100644 --- a/x-pack/plugins/lens/public/embeddable/embeddable.tsx +++ b/x-pack/plugins/lens/public/embeddable/embeddable.tsx @@ -260,7 +260,7 @@ function VisualizationErrorPanel({ errors, canEdit }: { errors: UserMessage[]; c <> {errors.length ? ( <> -

    {errors[0].longMessage}

    +

    {errors[0].longMessage as React.ReactNode}

    {showMore && !canFixInLens ? (

      {messageGroup.map(({ longMessage }, i) => ( - {longMessage} + {longMessage as React.ReactNode} ))}
    diff --git a/x-pack/plugins/lens/public/mocks/expression_renderer_mock.tsx b/x-pack/plugins/lens/public/mocks/expression_renderer_mock.tsx index 842d6ccbb713f..6411887f513bf 100644 --- a/x-pack/plugins/lens/public/mocks/expression_renderer_mock.tsx +++ b/x-pack/plugins/lens/public/mocks/expression_renderer_mock.tsx @@ -13,6 +13,8 @@ export function createExpressionRendererMock(): jest.Mock< [ReactExpressionRendererProps] > { return jest.fn(({ expression }) => ( - {expression || 'Expression renderer mock'} + + {(expression as string) || 'Expression renderer mock'} + )); } diff --git a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/filter_editor/filter_editor.tsx b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/filter_editor/filter_editor.tsx index 64d7d81b5edd9..ab2230f70e614 100644 --- a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/filter_editor/filter_editor.tsx +++ b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/filter_editor/filter_editor.tsx @@ -178,7 +178,7 @@ export class FilterEditor extends Component { return ( - {query.query} + {query.query as string} ); diff --git a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.tsx b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.tsx index 163f3c8000473..db33587a61c64 100644 --- a/x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.tsx +++ b/x-pack/plugins/maps/public/connected_components/edit_layer_panel/join_editor/resources/where_expression.tsx @@ -72,7 +72,7 @@ export class WhereExpression extends Component { } )} uppercase={false} - value={expressionValue} + value={expressionValue as string} data-test-subj="mapJoinWhereExpressionButton" /> } diff --git a/x-pack/plugins/maps/server/plugin.ts b/x-pack/plugins/maps/server/plugin.ts index 2366731c3826e..1b98310f798e4 100644 --- a/x-pack/plugins/maps/server/plugin.ts +++ b/x-pack/plugins/maps/server/plugin.ts @@ -18,6 +18,7 @@ import { HomeServerPluginSetup } from '@kbn/home-plugin/server'; import { DataViewPersistableStateService } from '@kbn/data-views-plugin/common'; import type { EMSSettings } from '@kbn/maps-ems-plugin/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { CONTENT_ID, LATEST_VERSION } from '../common/content_management'; import { getEcommerceSavedObjects } from './sample_data/ecommerce_saved_objects'; import { getFlightsSavedObjects } from './sample_data/flights_saved_objects'; @@ -175,6 +176,7 @@ export class MapsPlugin implements Plugin { }), order: 400, category: DEFAULT_APP_CATEGORIES.kibana, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [APP_ID, 'kibana'], catalogue: [APP_ID], privileges: { diff --git a/x-pack/plugins/ml/common/constants/locator.ts b/x-pack/plugins/ml/common/constants/locator.ts index 166cfcb263f4e..67b290bf34fcc 100644 --- a/x-pack/plugins/ml/common/constants/locator.ts +++ b/x-pack/plugins/ml/common/constants/locator.ts @@ -22,6 +22,7 @@ export const ML_PAGES = { MEMORY_USAGE: 'memory_usage', DATA_FRAME_ANALYTICS_EXPLORATION: 'data_frame_analytics/exploration', DATA_FRAME_ANALYTICS_MAP: 'data_frame_analytics/map', + SUPPLIED_CONFIGURATIONS: 'supplied_configurations', /** * Page: Data Visualizer */ diff --git a/x-pack/plugins/ml/common/types/locator.ts b/x-pack/plugins/ml/common/types/locator.ts index dd9997f7b59f2..3cc198bb3b3f2 100644 --- a/x-pack/plugins/ml/common/types/locator.ts +++ b/x-pack/plugins/ml/common/types/locator.ts @@ -72,7 +72,8 @@ export type MlGenericUrlState = MLPageState< | typeof ML_PAGES.AIOPS_LOG_RATE_ANALYSIS | typeof ML_PAGES.AIOPS_LOG_RATE_ANALYSIS_INDEX_SELECT | typeof ML_PAGES.AIOPS_CHANGE_POINT_DETECTION_INDEX_SELECT - | typeof ML_PAGES.AIOPS_CHANGE_POINT_DETECTION, + | typeof ML_PAGES.AIOPS_CHANGE_POINT_DETECTION + | typeof ML_PAGES.SUPPLIED_CONFIGURATIONS, MlGenericUrlPageState | undefined >; export interface AnomalyDetectionQueryState { diff --git a/x-pack/plugins/ml/common/types/modules.ts b/x-pack/plugins/ml/common/types/modules.ts index 7f3f426c30d96..e15e2c9938abf 100644 --- a/x-pack/plugins/ml/common/types/modules.ts +++ b/x-pack/plugins/ml/common/types/modules.ts @@ -67,6 +67,13 @@ export interface RecognizeResult { logo: Logo; } +export interface RecognizeModuleResultDataView { + id: string; + title: string; + name: string | undefined; +} +export type RecognizeModuleResult = RecognizeModuleResultDataView[]; + export interface FileBasedModule extends Omit { jobs: Array<{ file: string; id: string }>; datafeeds: Array<{ file: string; job_id: string; id: string }>; diff --git a/x-pack/plugins/ml/public/alerting/jobs_health_rule/anomaly_detection_jobs_health_rule_trigger.tsx b/x-pack/plugins/ml/public/alerting/jobs_health_rule/anomaly_detection_jobs_health_rule_trigger.tsx index 54d25e9fcb30b..2b51db2859714 100644 --- a/x-pack/plugins/ml/public/alerting/jobs_health_rule/anomaly_detection_jobs_health_rule_trigger.tsx +++ b/x-pack/plugins/ml/public/alerting/jobs_health_rule/anomaly_detection_jobs_health_rule_trigger.tsx @@ -106,7 +106,7 @@ const AnomalyDetectionJobsHealthRuleTrigger: FC = ({ = ({ {typeof icon === 'string' ? ( ) : ( - icon + (icon as React.ReactNode) )} diff --git a/x-pack/plugins/ml/public/application/components/ml_page/side_nav.tsx b/x-pack/plugins/ml/public/application/components/ml_page/side_nav.tsx index 23007da440161..fac21b54e43a8 100644 --- a/x-pack/plugins/ml/public/application/components/ml_page/side_nav.tsx +++ b/x-pack/plugins/ml/public/application/components/ml_page/side_nav.tsx @@ -152,6 +152,18 @@ export function useSideNavItems(activeRoute: MlRoute | undefined) { testSubj: 'mlMainTab settings', highlightNestedRoutes: true, }, + { + id: 'supplied_cofigurations', + name: i18n.translate( + 'xpack.ml.navMenu.anomalyDetection.suppliedConfigurationsLinkText', + { + defaultMessage: 'Supplied Configurations', + } + ), + disabled: disableLinks, + pathId: ML_PAGES.SUPPLIED_CONFIGURATIONS, + testSubj: 'mlMainTab suppliedConfigurations', + }, ], }, { diff --git a/x-pack/plugins/ml/public/application/contexts/ml/serverless_context.tsx b/x-pack/plugins/ml/public/application/contexts/ml/serverless_context.tsx index 0d27a636cbbdb..a6a29b3288803 100644 --- a/x-pack/plugins/ml/public/application/contexts/ml/serverless_context.tsx +++ b/x-pack/plugins/ml/public/application/contexts/ml/serverless_context.tsx @@ -10,6 +10,7 @@ import React, { createContext, useContext, useMemo } from 'react'; import type { ExperimentalFeatures, MlFeatures } from '../../../../common/constants/app'; export interface EnabledFeatures { + showLogsSuppliedConfigurationsInfo: boolean; showContextualInsights: boolean; showNodeInfo: boolean; showMLNavMenu: boolean; @@ -20,6 +21,7 @@ export interface EnabledFeatures { showRuleFormV2: boolean; } export const EnabledFeaturesContext = createContext({ + showLogsSuppliedConfigurationsInfo: true, showContextualInsights: true, showNodeInfo: true, showMLNavMenu: true, @@ -45,6 +47,7 @@ export const EnabledFeaturesContextProvider: FC> = ({ experimentalFeatures, }) => { const features: EnabledFeatures = { + showLogsSuppliedConfigurationsInfo: !isServerless, showContextualInsights: isServerless, showNodeInfo: !isServerless, showMLNavMenu, diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx index f664db9800de0..c65f9b83f8595 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx @@ -24,6 +24,7 @@ import { isPopulatedObject } from '@kbn/ml-is-populated-object'; import { addExcludeFrozenToQuery } from '@kbn/ml-query-utils'; import { TIME_FORMAT } from '@kbn/ml-date-utils'; import { type RuntimeMappings } from '@kbn/ml-runtime-field-utils'; +import type { Module } from '../../../../../common/types/modules'; import { useDataSource } from '../../../contexts/ml'; import { useMlKibana, useMlLocator } from '../../../contexts/kibana'; import type { @@ -108,7 +109,7 @@ export const Page: FC = ({ moduleId, existingGroupIds }) => { */ const loadModule = useCallback(async () => { try { - const response = await getDataRecognizerModule({ moduleId }); + const response = (await getDataRecognizerModule({ moduleId })) as Module; setJobs(response.jobs); setKibanaObjects(response.kibana); diff --git a/x-pack/plugins/ml/public/application/routing/breadcrumbs.ts b/x-pack/plugins/ml/public/application/routing/breadcrumbs.ts index a584e62d26160..1792b4cbfefa2 100644 --- a/x-pack/plugins/ml/public/application/routing/breadcrumbs.ts +++ b/x-pack/plugins/ml/public/application/routing/breadcrumbs.ts @@ -50,6 +50,14 @@ export const TRAINED_MODELS: ChromeBreadcrumb = Object.freeze({ deepLinkId: 'ml:modelManagement', }); +export const SUPPLIED_CONFIGURATIONS: ChromeBreadcrumb = Object.freeze({ + text: i18n.translate('xpack.ml.suppliedConfigurationsLabel', { + defaultMessage: 'Supplied configurations', + }), + href: '/supplied_configurations', + deepLinkId: 'ml:suppliedConfigurations', +}); + export const DATA_VISUALIZER_BREADCRUMB: ChromeBreadcrumb = Object.freeze({ text: i18n.translate('xpack.ml.datavisualizerBreadcrumbLabel', { defaultMessage: 'Data Visualizer', @@ -153,6 +161,7 @@ const breadcrumbs = { CREATE_JOB_BREADCRUMB, CALENDAR_MANAGEMENT_BREADCRUMB, FILTER_LISTS_BREADCRUMB, + SUPPLIED_CONFIGURATIONS, }; type Breadcrumb = keyof typeof breadcrumbs; diff --git a/x-pack/plugins/ml/public/application/routing/routes/index.ts b/x-pack/plugins/ml/public/application/routing/routes/index.ts index 58c103b03f11c..6d3a16e1af0b5 100644 --- a/x-pack/plugins/ml/public/application/routing/routes/index.ts +++ b/x-pack/plugins/ml/public/application/routing/routes/index.ts @@ -17,3 +17,4 @@ export * from './explorer'; export * from './trained_models'; export * from './notifications'; export * from './memory_usage'; +export * from './supplied_configurations'; diff --git a/x-pack/test/threat_intelligence_cypress/services.ts b/x-pack/plugins/ml/public/application/routing/routes/supplied_configurations/index.ts similarity index 82% rename from x-pack/test/threat_intelligence_cypress/services.ts rename to x-pack/plugins/ml/public/application/routing/routes/supplied_configurations/index.ts index 272cf7eb8da4e..0ed91cb5022b2 100644 --- a/x-pack/test/threat_intelligence_cypress/services.ts +++ b/x-pack/plugins/ml/public/application/routing/routes/supplied_configurations/index.ts @@ -5,4 +5,4 @@ * 2.0. */ -export * from '@kbn/test-suites-src/common/services'; +export * from './supplied_configurations_view'; diff --git a/x-pack/plugins/ml/public/application/routing/routes/supplied_configurations/supplied_configurations_view.tsx b/x-pack/plugins/ml/public/application/routing/routes/supplied_configurations/supplied_configurations_view.tsx new file mode 100644 index 0000000000000..4709603de2d6c --- /dev/null +++ b/x-pack/plugins/ml/public/application/routing/routes/supplied_configurations/supplied_configurations_view.tsx @@ -0,0 +1,86 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FC } from 'react'; +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { i18n } from '@kbn/i18n'; +import { EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import { dynamic } from '@kbn/shared-ux-utility'; +import { ML_PAGES } from '../../../../locator'; +import type { NavigateToPath } from '../../../contexts/kibana'; +import type { MlRoute } from '../../router'; +import { createPath, PageLoader } from '../../router'; +import { useRouteResolver } from '../../use_resolver'; +import { basicResolvers } from '../../resolvers'; +import { getBreadcrumbWithUrlForApp } from '../../breadcrumbs'; +import { MlPageHeader } from '../../../components/page_header'; + +const SuppliedConfigurations = dynamic(async () => ({ + default: (await import('../../../supplied_configurations/supplied_configurations')) + .SuppliedConfigurations, +})); + +export const suppliedConfigurationsRouteFactory = ( + navigateToPath: NavigateToPath, + basePath: string +): MlRoute => ({ + id: 'supplied_configurations', + path: createPath(ML_PAGES.SUPPLIED_CONFIGURATIONS), + title: i18n.translate('xpack.ml.suppliedConfigurations.suppliedConfigurations.docTitle', { + defaultMessage: 'Supplied configurations', + }), + render: () => , + breadcrumbs: [ + getBreadcrumbWithUrlForApp('ML_BREADCRUMB', navigateToPath, basePath), + getBreadcrumbWithUrlForApp('ANOMALY_DETECTION_BREADCRUMB', navigateToPath, basePath), + { + text: i18n.translate( + 'xpack.ml.suppliedConfigurationsBreadcrumbs.suppliedConfigurationsLabel', + { + defaultMessage: 'Supplied configurations', + } + ), + }, + ], + enableDatePicker: false, + 'data-test-subj': 'mlPageSuppliedConfigurations', +}); + +const PageWrapper: FC = () => { + const { context } = useRouteResolver('full', ['canGetJobs'], basicResolvers()); + + return ( + + + + + + + + + + + + + + + + ); +}; diff --git a/x-pack/plugins/ml/public/application/services/dashboard_service.test.ts b/x-pack/plugins/ml/public/application/services/dashboard_service.test.ts index af8fa110c708b..e3ff58510374d 100644 --- a/x-pack/plugins/ml/public/application/services/dashboard_service.test.ts +++ b/x-pack/plugins/ml/public/application/services/dashboard_service.test.ts @@ -35,8 +35,8 @@ describe('DashboardService', () => { }); expect(resp).toEqual([]); }); - test('should generate edit url to the dashboard', () => { - dashboardService.getDashboardEditUrl('test-id'); + test('should generate url to the dashboard', () => { + dashboardService.getDashboardUrl('test-id'); expect(dashboard.locator?.getUrl).toHaveBeenCalledWith({ dashboardId: 'test-id', useHash: false, diff --git a/x-pack/plugins/ml/public/application/services/dashboard_service.ts b/x-pack/plugins/ml/public/application/services/dashboard_service.ts index d13f87b64bec2..ffa6f6a5d3ede 100644 --- a/x-pack/plugins/ml/public/application/services/dashboard_service.ts +++ b/x-pack/plugins/ml/public/application/services/dashboard_service.ts @@ -27,9 +27,18 @@ export function dashboardServiceProvider(dashboardService: DashboardStart) { return responses.hits; }, /** - * Generates dashboard url with edit mode + * Fetch dashboards by id */ - async getDashboardEditUrl(dashboardId: string) { + async fetchDashboardsById(ids: string[]) { + const findDashboardsService = await dashboardService.findDashboardsService(); + const responses = await findDashboardsService.findByIds(ids); + const existingDashboards = responses.filter(({ status }) => status === 'success'); + return existingDashboards; + }, + /** + * Generates dashboard url + */ + async getDashboardUrl(dashboardId: string, viewMode: ViewMode = ViewMode.EDIT) { return await dashboardService.locator?.getUrl({ dashboardId, viewMode: ViewMode.EDIT, diff --git a/x-pack/plugins/ml/public/application/services/ml_api_service/index.ts b/x-pack/plugins/ml/public/application/services/ml_api_service/index.ts index 4939149b96417..a89e3d8100ffb 100644 --- a/x-pack/plugins/ml/public/application/services/ml_api_service/index.ts +++ b/x-pack/plugins/ml/public/application/services/ml_api_service/index.ts @@ -19,6 +19,7 @@ import type { MlNodeCount, } from '../../../../common/types/ml_server_info'; import type { MlCapabilitiesResponse } from '../../../../common/types/capabilities'; +import type { RecognizeModuleResult } from '../../../../common/types/modules'; import type { Calendar, CalendarId, UpdateCalendar } from '../../../../common/types/calendars'; import type { BucketSpanEstimatorData } from '../../../../common/types/job_service'; import type { @@ -439,6 +440,15 @@ export function mlApiProvider(httpService: HttpService) { }); }, + recognizeModule({ moduleId, size }: { moduleId: string; size?: number }) { + return httpService.http({ + path: `${ML_INTERNAL_BASE_PATH}/modules/recognize_by_module/${moduleId}`, + method: 'GET', + version: '1', + query: { size }, + }); + }, + listDataRecognizerModules(filter?: string[]) { return httpService.http({ path: `${ML_INTERNAL_BASE_PATH}/modules/get_module`, @@ -448,9 +458,10 @@ export function mlApiProvider(httpService: HttpService) { }); }, - getDataRecognizerModule({ moduleId, filter }: { moduleId: string; filter?: string[] }) { - return httpService.http({ - path: `${ML_INTERNAL_BASE_PATH}/modules/get_module/${moduleId}`, + getDataRecognizerModule(params?: { moduleId: string; filter?: string[] }) { + const { moduleId, filter } = params || {}; + return httpService.http({ + path: `${ML_INTERNAL_BASE_PATH}/modules/get_module/${moduleId ?? ''}`, method: 'GET', version: '1', query: { filter: filter?.join(',') }, diff --git a/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations.tsx b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations.tsx new file mode 100644 index 0000000000000..d8aaf678e372d --- /dev/null +++ b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations.tsx @@ -0,0 +1,148 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback, useMemo, useState } from 'react'; +import type { SearchFilterConfig, FieldValueOptionType } from '@elastic/eui'; +import { EuiCard, EuiIcon, EuiFlexGrid, EuiFlexItem, EuiSearchBar, EuiSpacer } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import useMountedState from 'react-use/lib/useMountedState'; +import useMount from 'react-use/lib/useMount'; +import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import { useMlKibana } from '../contexts/kibana'; +import type { Module } from '../../../common/types/modules'; +import { LoadingIndicator } from '../components/loading_indicator'; +import { filterModules } from './utils'; +import { SuppliedConfigurationsFlyout } from './supplied_configurations_flyout'; + +export function isLogoObject(arg: unknown): arg is { icon: string } { + return isPopulatedObject(arg) && Object.hasOwn(arg, 'icon'); +} + +export const SuppliedConfigurations = () => { + const { + services: { + mlServices: { + mlApi: { getDataRecognizerModule }, + }, + }, + } = useMlKibana(); + + const [modules, setModules] = useState([]); + const [isLoading, setIsLoading] = useState(false); + const [query, setQuery] = useState(EuiSearchBar.Query.MATCH_ALL); + const [isFlyoutVisible, setIsFlyoutVisible] = useState(false); + const [selectedModuleId, setSelectedModuleId] = useState(); + + const closeFlyout = () => setIsFlyoutVisible(false); + const isMounted = useMountedState(); + + /** + * Loads recognizer module configuration. + */ + const loadModules = useCallback(async () => { + setIsLoading(true); + try { + const modulesReponse = (await getDataRecognizerModule()) as Module[]; + if (isMounted()) { + setModules(modulesReponse); + } + } catch (e) { + // eslint-disable-next-line no-console + console.error(e); + } + setIsLoading(false); + }, [getDataRecognizerModule, isMounted]); + + useMount(loadModules); + + const filters: SearchFilterConfig[] = useMemo(() => { + const options: FieldValueOptionType[] = []; + const tags = new Set(modules.map((module) => module.tags).flat()); + tags.forEach((tag) => { + if (tag === undefined) return; + options.push({ + value: tag, + view: tag, + }); + }); + + return [ + { + type: 'field_value_selection', + field: 'tags', + name: 'Tags', + filterWith: 'includes', + multiSelect: 'or', + options, + }, + ]; + }, [modules]); + + const schema = { + strict: true, + fields: { + tags: { + type: 'string', + }, + }, + }; + + const filteredModules = useMemo(() => { + const clauses = query?.ast?.clauses ?? []; + return clauses.length > 0 ? filterModules(modules, clauses) : modules; + }, [query, modules]); + + const onChange = useCallback(({ query: onChangeQuery }) => setQuery(onChangeQuery), [setQuery]); + + if (isLoading === true) return ; + + return ( + <> + + + + {filteredModules.map(({ description, id, logo, title }) => { + return ( + + : null} + title={title} + description={description} + onClick={() => { + setIsFlyoutVisible(true); + setSelectedModuleId(id); + }} + /> + + ); + })} + + {isFlyoutVisible && selectedModuleId ? ( + id === selectedModuleId) as Module} + onClose={closeFlyout} + /> + ) : null} + + ); +}; diff --git a/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/data_views_table.tsx b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/data_views_table.tsx new file mode 100644 index 0000000000000..53aa7d468e480 --- /dev/null +++ b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/data_views_table.tsx @@ -0,0 +1,128 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FC } from 'react'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import React, { useCallback } from 'react'; +import type { EuiTableFieldDataColumnType, EuiTableActionsColumnType } from '@elastic/eui'; +import { EuiButtonEmpty, EuiInMemoryTable } from '@elastic/eui'; + +import { useMlKibana, useMlLocator } from '../../contexts/kibana'; +import { ML_PAGES } from '../../../../common/constants/locator'; +import type { + RecognizeModuleResult, + RecognizeModuleResultDataView, +} from '../../../../common/types/modules'; + +interface Props { + matchingDataViews: RecognizeModuleResult; + moduleId: string; + jobsLength: number; +} + +export const DataViewsTable: FC = ({ matchingDataViews, moduleId, jobsLength }) => { + const { + services: { + application: { navigateToUrl }, + }, + } = useMlKibana(); + const mlLocator = useMlLocator()!; + + const getUrl = useCallback( + async (id: string) => { + return await mlLocator.getUrl({ + page: ML_PAGES.ANOMALY_DETECTION_CREATE_JOB_RECOGNIZER, + pageState: { + id: moduleId, + index: id, + }, + }); + }, + [mlLocator, moduleId] + ); + + const columns: Array< + | EuiTableFieldDataColumnType + | EuiTableActionsColumnType + > = [ + { + field: 'title', + name: i18n.translate( + 'xpack.ml.anomalyDetection.suppliedConfigurationsFlyout.dataViewMatches.dataViewTitleColumnName', + { + defaultMessage: 'Title', + } + ), + sortable: true, + truncateText: true, + }, + { + field: 'name', + name: i18n.translate( + 'xpack.ml.anomalyDetection.suppliedConfigurationsFlyout.dataViewMatches.dataViewNameColumnName', + { + defaultMessage: 'Name', + } + ), + sortable: true, + truncateText: true, + }, + { + name: i18n.translate( + 'xpack.ml.anomalyDetection.suppliedConfigurationsFlyout.dataViewMatches.actionsColumnName', + { + defaultMessage: 'Actions', + } + ), + actions: [ + { + render: (dataViewInfo: RecognizeModuleResultDataView) => { + return ( + { + const url = await getUrl(dataViewInfo.id); + navigateToUrl(url); + }} + > + + + ); + }, + 'data-test-subj': 'mlSuppliedConfigurationsFlyoutActionCreate', + }, + ], + 'data-test-subj': 'mlSuppliedConfigurationsFlyoutColumnActions', + }, + ]; + + const sorting = { + sort: { + field: 'title', + direction: 'desc' as const, + }, + }; + + return ( + ({ + 'data-test-subj': `mlSuppliedConfigurationsDataViewsTableRow row-${item.id}`, + })} + pagination={true} + sorting={sorting} + /> + ); +}; diff --git a/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/flyout.tsx b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/flyout.tsx new file mode 100644 index 0000000000000..70085512de9ef --- /dev/null +++ b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/flyout.tsx @@ -0,0 +1,145 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FC } from 'react'; +import React, { useMemo, useState } from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { + EuiFlexGroup, + EuiFlexItem, + EuiFlyout, + EuiFlyoutBody, + EuiFlyoutHeader, + EuiIcon, + EuiSpacer, + EuiTab, + EuiTabs, + EuiTitle, +} from '@elastic/eui'; +import { useEuiTheme } from '@elastic/eui'; +import { isPopulatedObject } from '@kbn/ml-is-populated-object'; +import type { Module } from '../../../../common/types/modules'; +import { isLogoObject } from '../supplied_configurations'; +import { OverviewTabContent } from './overview_tab_content'; +import { JobsTabContent } from './jobs_tab_content'; +import { KibanaTabContent } from './kibana_tab_content'; + +interface Props { + module: Module; + onClose: () => void; +} + +export const TAB_IDS = { + OVERVIEW: 'overview', + JOBS: 'jobs', + KIBANA: 'kibana', +} as const; +export type TabIdType = (typeof TAB_IDS)[keyof typeof TAB_IDS]; + +export const KIBANA_ASSETS = { + VISUALIZATION: 'visualization', + DASHBOARD: 'dashboard', + SEARCH: 'search', +} as const; +export type KibanaAssetType = (typeof KIBANA_ASSETS)[keyof typeof KIBANA_ASSETS]; + +export const SuppliedConfigurationsFlyout: FC = ({ module, onClose }) => { + const [selectedTabId, setSelectedTabId] = useState(TAB_IDS.OVERVIEW); + const [selectedKibanaSubTab, setSelectedKibanaSubTab] = useState(); + const { euiTheme } = useEuiTheme(); + + const tabs = useMemo( + () => [ + { + id: TAB_IDS.OVERVIEW, + name: ( + + ), + content: ( + + ), + }, + { + id: TAB_IDS.JOBS, + name: ( + + ), + content: , + }, + ...(isPopulatedObject(module.kibana ?? {}) + ? [ + { + id: TAB_IDS.KIBANA, + name: ( + + ), + content: ( + + ), + }, + ] + : []), + ], + [module, selectedKibanaSubTab] + ); + + const renderTabs = useMemo( + () => + tabs.map((tab) => ( + setSelectedTabId(tab.id)} + isSelected={tab.id === selectedTabId} + key={tab.id} + data-test-subj={`mlSuppliedConfigurationsFlyoutTab ${tab.id}`} + > + {tab.name} + + )), + [tabs, selectedTabId] + ); + + return ( + + + + + {isLogoObject(module.logo) ? : null} + + + +

    {module.title}

    +
    +
    +
    + + + {renderTabs} + +
    + {tabs.find((tab) => tab.id === selectedTabId)?.content} +
    + ); +}; diff --git a/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/index.ts b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/index.ts new file mode 100644 index 0000000000000..f377cc6895989 --- /dev/null +++ b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { SuppliedConfigurationsFlyout } from './flyout'; diff --git a/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/jobs_tab_content.tsx b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/jobs_tab_content.tsx new file mode 100644 index 0000000000000..586fe1b6497cb --- /dev/null +++ b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/jobs_tab_content.tsx @@ -0,0 +1,79 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useMemo } from 'react'; +import type { FC } from 'react'; +import React from 'react'; +import { + EuiAccordion, + EuiCodeBlock, + EuiFlexGroup, + EuiFlexItem, + EuiSpacer, + EuiText, +} from '@elastic/eui'; +import { useEuiTheme } from '@elastic/eui'; +import type { Module, ModuleJob, ModuleDatafeed } from '../../../../common/types/modules'; + +interface Props { + module: Module; +} + +export const JobsTabContent: FC = ({ module }) => { + const { euiTheme } = useEuiTheme(); + const jobConfigsWithDatafeeds = useMemo( + () => + module.datafeeds.map(({ job_id: jobId, config }) => { + const job = module.jobs.find((j) => j.id === jobId)!; + return { + ...job, + config: { ...job.config, datafeed_config: config }, + } as ModuleJob & { datafeed_config: ModuleDatafeed['config'] }; + }), + [module] + ); + + return ( + <> + {jobConfigsWithDatafeeds.map((job) => { + return ( + <> + + {job.id} + + } + css={{ padding: `0 ${euiTheme.size.m}` }} + > + + + + +

    {job.config.description}

    +
    +
    + + + {JSON.stringify(job.config, null, 2)} + + +
    +
    + + + ); + })} + + ); +}; diff --git a/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/kibana_tab_content.tsx b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/kibana_tab_content.tsx new file mode 100644 index 0000000000000..715ebf0bd75df --- /dev/null +++ b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/kibana_tab_content.tsx @@ -0,0 +1,180 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FC } from 'react'; +import React, { useEffect, useState } from 'react'; +import { + EuiAccordion, + EuiFlexGroup, + EuiFlexItem, + EuiHorizontalRule, + EuiLink, + EuiNotificationBadge, + EuiSpacer, + EuiSplitPanel, + EuiText, +} from '@elastic/eui'; +import { useEuiTheme } from '@elastic/eui'; +import { asyncForEach } from '@kbn/std'; +import { ViewMode } from '@kbn/embeddable-plugin/public'; +import type { Module } from '../../../../common/types/modules'; +import { useDashboardService } from '../../services/dashboard_service'; +import { useMlKibana } from '../../contexts/kibana'; +import { LABELS, type LabelId } from './overview_tab_content'; +import type { KibanaAssetType } from './flyout'; + +interface Props { + module: Module; + selectedKibanaSubTab?: KibanaAssetType; +} + +export const KibanaTabContent: FC = ({ module, selectedKibanaSubTab }) => { + const [kibanaAssetUrls, setKibanaAssetUrls] = useState>({}); + const dashboardService = useDashboardService(); + const { + services: { application, share }, + } = useMlKibana(); + const { euiTheme } = useEuiTheme(); + + useEffect( + function setUpUrls() { + const dashboards = module.kibana?.dashboard ?? []; + const dashboardIds = dashboards.map(({ id }) => id); + const savedSearchIds = (module.kibana?.search ?? []).map(({ id }) => id); + const visualizationIds = (module.kibana?.visualization ?? []).map(({ id }) => id); + const allUrls: Record = {}; + + async function getUrls() { + if (dashboards.length > 0) { + const result = await dashboardService.fetchDashboardsById(dashboardIds); + + await asyncForEach(result, async ({ id }) => { + const url = await dashboardService.getDashboardUrl(id, ViewMode.VIEW); + if (url) { + allUrls[id] = url; + } + }); + } + + if (savedSearchIds.length > 0) { + const discoverLocator = share.url.locators.get('DISCOVER_APP_LOCATOR'); + if (discoverLocator) { + savedSearchIds.forEach((id) => { + const url = discoverLocator.getRedirectUrl({ + savedSearchId: id, + }); + if (url) { + allUrls[id] = url; + } + }); + } + } + + if (visualizationIds.length > 0) { + visualizationIds.forEach((id) => { + const url = application.getUrlForApp('visualize#', { + path: `edit/${id}`, + }); + if (url) { + allUrls[id] = url; + } + }); + } + + if (Object.keys(allUrls).length > 0) { + setKibanaAssetUrls(allUrls); + } + } + getUrls(); + }, + [ + dashboardService, + module.kibana?.dashboard, + share?.url.locators, + module.kibana?.discover, + module.kibana?.search, + module.kibana?.visualization, + application, + ] + ); + + return ( + <> + {Object.entries(module.kibana ?? {}).map(([assetId, asset]) => { + return ( + <> + + + +

    {LABELS[assetId as LabelId]}

    +
    +
    + + +

    {module.kibana[assetId]!.length}

    +
    +
    + + } + css={{ padding: `0 ${euiTheme.size.m}` }} + > + + + {(asset ?? []).map(({ config, id, title }) => { + return ( + <> + + +

    + {kibanaAssetUrls && kibanaAssetUrls[id] ? ( + + {title} + + ) : ( + title + )} +

    +
    + {config.description && ( + <> + + +

    {config.description}

    +
    + + )} +
    + + + ); + })} +
    +
    + + + ); + })} + + ); +}; diff --git a/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/overview_tab_content.tsx b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/overview_tab_content.tsx new file mode 100644 index 0000000000000..c918cbaf25b24 --- /dev/null +++ b/x-pack/plugins/ml/public/application/supplied_configurations/supplied_configurations_flyout/overview_tab_content.tsx @@ -0,0 +1,344 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { FC } from 'react'; +import React, { useState } from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { + EuiButton, + EuiButtonEmpty, + EuiCodeBlock, + EuiDescriptionList, + EuiDescriptionListTitle, + EuiDescriptionListDescription, + EuiEmptyPrompt, + EuiFlexGroup, + EuiFlexItem, + EuiLink, + EuiNotificationBadge, + EuiSpacer, + EuiText, + EuiTitle, + EuiToolTip, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { useEuiTheme } from '@elastic/eui'; +import { + usePermissionCheck, + createPermissionFailureMessage, +} from '../../capabilities/check_capabilities'; +import type { Module, RecognizeModuleResult } from '../../../../common/types/modules'; +import { useEnabledFeatures } from '../../contexts/ml/serverless_context'; +import { useMlKibana } from '../../contexts/kibana'; +import type { TabIdType, KibanaAssetType } from './flyout'; +import { TAB_IDS } from './flyout'; +import { DataViewsTable } from './data_views_table'; +import { isLogoObject } from '../supplied_configurations'; + +export const LABELS = { + dashboard: ( + + ), + jobs: ( + + ), + search: ( + + ), + visualization: ( + + ), +}; + +export type LabelId = keyof typeof LABELS; + +const ListDescriptionItem = ({ + label, + onClick, + value, +}: { + label?: LabelId; + value: number | string; + onClick?: () => void; +}) => ( + <> + + {label ? ( + + {LABELS[label]} + + ) : ( + '' + )} + {label ? ' ' : ''} + + {value} + + + {label ? null : } + +); + +interface Props { + module: Module; + setSelectedTabId: (tabId: TabIdType) => void; + setSelectedKibanaSubTab: (kibanaSubTab: KibanaAssetType) => void; +} + +export const OverviewTabContent: FC = ({ + module, + setSelectedTabId, + setSelectedKibanaSubTab, +}) => { + const [runningDataRecognizer, setRunningDataRecognizer] = useState(false); + const [recognizerWasRun, setRecognizerWasRun] = useState(false); + const [matchingDataViews, setMatchingDataViews] = useState([]); + const { + services: { + docLinks, + mlServices: { + mlApi: { recognizeModule }, + }, + }, + } = useMlKibana(); + const { euiTheme } = useEuiTheme(); + const logsConfigsUrl = docLinks.links.ml.logsAnomalyDetectionConfigs; + const metricsConfigsUrl = docLinks.links.ml.metricsAnomalyDetectionConfigs; + const canCreateJob = usePermissionCheck('canCreateJob'); + const { showLogsSuppliedConfigurationsInfo } = useEnabledFeatures(); + + const runDataRecongizer = async () => { + setRunningDataRecognizer(true); + const result = await recognizeModule({ moduleId: module.id }); + + setMatchingDataViews(result); + setRunningDataRecognizer(false); + setRecognizerWasRun(true); + }; + + const runRecognizerButton = ( + + + + + + ); + + return ( + + {/* DESCRIPTION */} + + +

    {module.description}

    +
    +
    + + {/* MAIN CONTENT */} + + + {/* COLUMN WITH ASSETS, TYPE, TAGS */} + + + + + + + setSelectedTabId(TAB_IDS.JOBS)} + /> + {module.kibana + ? Object.keys(module.kibana).map((kibanaAsset) => { + return ( + { + setSelectedKibanaSubTab(kibanaAsset as KibanaAssetType); + setSelectedTabId(TAB_IDS.KIBANA); + }} + value={(module.kibana && module.kibana[kibanaAsset]?.length) ?? 0} + /> + ); + }) + : null} + + + + + + + + {module.tags?.length ? ( + module.tags.map((tag) => ) + ) : ( + + )} + + + + + + + {module.type} + + + + {/* COLUMN WITH QUERY */} + + {module.query !== undefined ? ( + + + + + + + + + + {JSON.stringify(module.query, null, 2)} + + + + + + {module.query !== undefined ? ( + + + + + + + + + {canCreateJob === false ? ( + + {runRecognizerButton} + + ) : ( + runRecognizerButton + )} + + + + ) : null} + {recognizerWasRun ? ( + + + + ) : null} + + ) : ( + + + + } + body={ + showLogsSuppliedConfigurationsInfo === true ? ( +

    + +

    + ) : undefined + } + footer={ + <> + +

    + +

    +
    + + + + + } + /> + )} +
    +
    +
    +
    + ); +}; diff --git a/x-pack/plugins/ml/public/application/supplied_configurations/utils.ts b/x-pack/plugins/ml/public/application/supplied_configurations/utils.ts new file mode 100644 index 0000000000000..f7d443a4e8f9d --- /dev/null +++ b/x-pack/plugins/ml/public/application/supplied_configurations/utils.ts @@ -0,0 +1,79 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Clause, Value } from '@elastic/eui/src/components/search_bar/query/ast'; +import type { Module } from '../../../common/types/modules'; +import { stringMatch } from '../util/string_utils'; + +export function filterModules(items: Module[], clauses: Clause[]) { + if (clauses.length === 0) { + return items; + } + // keep count of the number of matches we make as we're looping over the clauses + // we only want to return items which match all clauses, i.e. each search term is ANDed + const matches = items.reduce>((p, module) => { + p[module.id] = { + module, + count: 0, + }; + return p; + }, {}); + + clauses.forEach((c) => { + // the search term could be negated with a minus, e.g. -bananas + const bool = c.match === 'must'; + let matchingItems: Module[] = []; + + if (c.type === 'term') { + // filter term based clauses, e.g. bananas + // match on id, description, title + // if the term has been negated, AND the matches + if (bool === true) { + matchingItems = items.filter( + (item) => + stringMatch(item.id, c.value) === bool || + stringMatch(item.description, c.value) === bool || + stringMatch(item.title, c.value) === bool + ); + } else { + matchingItems = items.filter( + (item) => + stringMatch(item.id, c.value) === bool && + stringMatch(item.description, c.value) === bool && + stringMatch(item.title, c.value) === bool + ); + } + } else { + // filter other clauses, i.e. the tags filter + if (c.type === 'field') { + if (Array.isArray(c.value)) { + // Module tags is an array of string(s) e.g. c.value => ['observability', 'logs', 'security'] + matchingItems = items.filter((item) => + (c.value as Value[]).some((filterValue) => + Array.isArray(item[c.field as keyof Module]) + ? item[c.field as keyof Module]?.includes(filterValue) + : item[c.field as keyof Module] === filterValue + ) + ); + } else { + matchingItems = items.filter( + (item) => item[c.field as keyof Pick] === c.value + ); + } + } + } + + matchingItems.forEach((j) => matches[j.id].count++); + }); + + // loop through the matches and return only those items which have match all the clauses + const filtered = Object.values(matches) + .filter((m) => (m && m.count) >= clauses.length) + .map((m) => m.module); + + return filtered; +} diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/series_controls/series_controls.tsx b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/series_controls/series_controls.tsx index 4c6d2356f3e6c..f75346f3295ed 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/components/series_controls/series_controls.tsx +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/components/series_controls/series_controls.tsx @@ -240,7 +240,7 @@ export const SeriesControls: FC> = ({ appStateHandler(APP_STATE_ACTION.SET_ENTITIES, resultEntities); }; - const detectorIndexChangeHandler: EuiSelectProps['onChange'] = useCallback( + const detectorIndexChangeHandler = useCallback>( (e) => { const id = e.target.value; if (id !== undefined) { diff --git a/x-pack/plugins/ml/public/locator/formatters/anomaly_detection.ts b/x-pack/plugins/ml/public/locator/formatters/anomaly_detection.ts index 82a7ea26f6890..939dc470f1d18 100644 --- a/x-pack/plugins/ml/public/locator/formatters/anomaly_detection.ts +++ b/x-pack/plugins/ml/public/locator/formatters/anomaly_detection.ts @@ -93,6 +93,13 @@ export function formatAnomalyDetectionCreateJobSelectIndex( ); } +export function formatSuppliedConfigurationsManagementUrl( + appBasePath: string, + pageState: MlGenericUrlState['pageState'] +): string { + return formatGenericMlUrl(appBasePath, ML_PAGES.SUPPLIED_CONFIGURATIONS, pageState); +} + /** * Creates URL to the Anomaly Explorer page */ diff --git a/x-pack/plugins/ml/public/locator/ml_locator.ts b/x-pack/plugins/ml/public/locator/ml_locator.ts index 441910af728b9..d86fd10e7dc87 100644 --- a/x-pack/plugins/ml/public/locator/ml_locator.ts +++ b/x-pack/plugins/ml/public/locator/ml_locator.ts @@ -19,6 +19,7 @@ import { formatAnomalyDetectionCreateJobSelectIndex, formatAnomalyDetectionCreateJobSelectType, formatAnomalyDetectionJobManagementUrl, + formatSuppliedConfigurationsManagementUrl, formatExplorerUrl, formatSingleMetricViewerUrl, formatDataFrameAnalyticsCreateJobUrl, @@ -46,6 +47,9 @@ export class MlLocatorDefinition implements LocatorDefinition { case ML_PAGES.ANOMALY_DETECTION_JOBS_MANAGE: path = formatAnomalyDetectionJobManagementUrl('', params.pageState); break; + case ML_PAGES.SUPPLIED_CONFIGURATIONS: + path = formatSuppliedConfigurationsManagementUrl('', params.pageState); + break; case ML_PAGES.ANOMALY_EXPLORER: path = formatExplorerUrl('', params.pageState); break; diff --git a/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts b/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts index f1e2cdcf96c9b..784c8a87dcc6f 100644 --- a/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts +++ b/x-pack/plugins/ml/public/register_helper/register_search_links/search_deep_links.ts @@ -55,6 +55,13 @@ function createDeepLinks( }), path: `/${ML_PAGES.SINGLE_METRIC_VIEWER}`, }, + { + id: 'suppliedConfigurations', + title: i18n.translate('xpack.ml.deepLink.suppliedConfigurations', { + defaultMessage: 'Supplied configurations', + }), + path: `/${ML_PAGES.SUPPLIED_CONFIGURATIONS}`, + }, ], }; }, diff --git a/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts b/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts index d54976a37ecd1..e585d73a9d894 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts +++ b/x-pack/plugins/ml/server/models/data_recognizer/data_recognizer.ts @@ -13,7 +13,6 @@ import type { IScopedClusterClient, SavedObjectsClientContract, } from '@kbn/core/server'; - import moment from 'moment'; import { merge, intersection } from 'lodash'; import type { DataViewsService } from '@kbn/data-views-plugin/common'; @@ -23,6 +22,7 @@ import type { CompatibleModule } from '../../../common/constants/app'; import type { AnalysisLimits } from '../../../common/types/anomaly_detection_jobs'; import { getAuthorizationHeader } from '../../lib/request_authorization'; import type { MlClient } from '../../lib/ml_client'; +import type { RecognizeModuleResultDataView } from '../../../common/types/modules'; import { ML_MODULE_SAVED_OBJECT_TYPE } from '../../../common/types/saved_objects'; import type { KibanaObjects, @@ -247,6 +247,72 @@ export class DataRecognizer { return configs.find((i) => i.module.id === id); } + // called externally by an endpoint + public async findIndexMatches( + moduleId: string, + size: number = 15 + ): Promise { + const config = await this._findConfig(moduleId); + if (config?.module.query === undefined) { + return []; + } + + try { + const idsWithTitle = await this._dataViewsService.getIdsWithTitle(); + // create temp objects with a function for running the query + const tempObjs = idsWithTitle.map(({ id, title, name }) => { + return { + id, + title, + name, + func: async () => + this._client.asCurrentUser.search( + { + index: title, // title is index pattern we can search by e.g. "filebeat-*" + size: 0, + body: { + query: config?.module.query, + }, + }, + { maxRetries: 0 } + ), + }; + }); + + // run all the queries in parallel + const response = await Promise.all( + tempObjs.map(async ({ id, name, title, func }) => { + try { + const resp = await func(); + const totalHits = + typeof resp.hits.total === 'number' ? resp.hits.total : resp.hits?.total?.value ?? 0; + return { id, name, title, totalHits }; + } catch (error) { + mlLog.warn( + `Data recognizer error running search for query defined in module ${config.module.id}. ${error}` + ); + return { id, name, title, totalHits: 0 }; + } + }) + ); + + return response + .reduce((acc, { id, title, name, totalHits }) => { + if (totalHits > 0) { + acc.push({ id, title, name }); + } + return acc; + }, []) + .slice(0, size); + } catch (error) { + mlLog.warn( + `Data recognizer error fetching and matching data views for query in ${config.module.id}. ${error}` + ); + } + + return []; + } + // called externally by an endpoint public async findMatches( indexPattern: string, @@ -268,25 +334,12 @@ export class DataRecognizer { } if (match === true) { - let logo: Logo = null; - if (moduleConfig.logo) { - logo = moduleConfig.logo; - } else if (moduleConfig.logoFile) { - try { - const logoFile = await this._readFile( - `${this._modulesDir}/${i.dirName}/${moduleConfig.logoFile}` - ); - logo = JSON.parse(logoFile); - } catch (e) { - logo = null; - } - } results.push({ id: moduleConfig.id, title: moduleConfig.title, query: moduleConfig.query, description: moduleConfig.description, - logo, + logo: await this._loadLogoFile(moduleConfig, i.dirName), }); } }) @@ -297,6 +350,30 @@ export class DataRecognizer { return results; } + private async _loadLogoFile( + moduleConfig: FileBasedModule | Module, + dirName: string | null | undefined + ) { + let logo: Logo = null; + + if (moduleConfig.logo) { + logo = moduleConfig.logo; + } else if (moduleConfig.logoFile) { + try { + const logoFileString = await this._readFile( + `${this._modulesDir}/${dirName}/${moduleConfig.logoFile}` + ); + logo = JSON.parse(logoFileString); + } catch (error) { + mlLog.warn( + `Data recognizer error loading logo file ${moduleConfig.logoFile} for module ${moduleConfig.id}. ${error}` + ); + } + } + + return logo; + } + private async _searchForFields(moduleConfig: FileBasedModule | Module, indexPattern: string) { if (moduleConfig.query === undefined) { return false; @@ -418,6 +495,9 @@ export class DataRecognizer { datafeeds.push(...(await Promise.all(tempDatafeed)).filter(isDefined)); } + + module.logo = await this._loadLogoFile(module, dirName); + // load all of the kibana saved objects if (module.kibana !== undefined) { const kKeys = Object.keys(module.kibana) as Array; diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/manifest.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/manifest.json index 161f8916fd6cc..feb11a423bd43 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/manifest.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metricbeat_system_ecs/manifest.json @@ -2,7 +2,7 @@ "id": "metricbeat_system_ecs", "title": "Metricbeat System", "description": "Detect anomalies in Metricbeat System data (ECS)", - "type": "Metricbeat data.", + "type": "Infrastructure", "logoFile": "logo.json", "defaultIndexPattern": "metricbeat-*", "query": { diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/manifest.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/manifest.json index 1c31a416e888f..ca05401f3296f 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/manifest.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_hosts/manifest.json @@ -2,7 +2,7 @@ "id": "metrics_ui_hosts", "title": "Metrics Hosts", "description": "Detect anomalous memory and network behavior on hosts.", - "type": "Metricbeat Data", + "type": "Infrastructure", "logoFile": "logo.json", "jobs": [ { diff --git a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/manifest.json b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/manifest.json index 062670cf9fe6b..ff31b4a0b92e8 100644 --- a/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/manifest.json +++ b/x-pack/plugins/ml/server/models/data_recognizer/modules/metrics_ui_k8s/manifest.json @@ -2,7 +2,7 @@ "id": "metrics_ui_k8s", "title": "Metrics Kubernetes", "description": "Detect anomalous memory and network behavior on Kubernetes pods.", - "type": "Metricbeat Data", + "type": "Infrastructure", "logoFile": "logo.json", "jobs": [ { diff --git a/x-pack/plugins/ml/server/plugin.ts b/x-pack/plugins/ml/server/plugin.ts index ac3fc8caea569..2a36e94f2f2e7 100644 --- a/x-pack/plugins/ml/server/plugin.ts +++ b/x-pack/plugins/ml/server/plugin.ts @@ -25,6 +25,7 @@ import type { SpacesPluginSetup } from '@kbn/spaces-plugin/server'; import type { FieldFormatsStart } from '@kbn/field-formats-plugin/server'; import type { HomeServerPluginSetup } from '@kbn/home-plugin/server'; import type { CasesServerSetup } from '@kbn/cases-plugin/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import type { PluginsSetup, PluginsStart, RouteInitialization } from './types'; import type { MlCapabilities } from '../common/types/capabilities'; import { notificationsRoutes } from './routes/notifications'; @@ -129,6 +130,7 @@ export class MlServerPlugin }), order: 500, category: DEFAULT_APP_CATEGORIES.kibana, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [PLUGIN_ID, 'kibana'], catalogue: [PLUGIN_ID, `${PLUGIN_ID}_file_data_visualizer`], privilegesTooltip: i18n.translate('xpack.ml.featureRegistry.privilegesTooltip', { diff --git a/x-pack/plugins/ml/server/routes/modules.ts b/x-pack/plugins/ml/server/routes/modules.ts index b9f25170ee8b5..a4eefdf08cf66 100644 --- a/x-pack/plugins/ml/server/routes/modules.ts +++ b/x-pack/plugins/ml/server/routes/modules.ts @@ -14,6 +14,7 @@ import { moduleIdParamSchema, moduleFilterSchema, optionalModuleIdParamSchema, + optionalSizeQuerySchema, recognizeModulesSchema, setupModuleBodySchema, recognizeModulesSchemaResponse, @@ -91,6 +92,62 @@ export function dataRecognizer( ) ); + router.versioned + .get({ + path: `${ML_INTERNAL_BASE_PATH}/modules/recognize_by_module/{moduleId}`, + access: 'internal', + options: { + tags: ['access:ml:canCreateJob'], + }, + summary: 'Recognize module', + description: + 'By supplying a module id, discover if any of the data views contain data that is a match for that module.', + }) + .addVersion( + { + version: '1', + validate: { + request: { + params: moduleIdParamSchema, + query: optionalSizeQuerySchema, + }, + }, + }, + routeGuard.fullLicenseAPIGuard( + async ({ + client, + mlClient, + request, + response, + context, + mlSavedObjectService, + getDataViewsService, + }) => { + try { + const { moduleId } = request.params; + const { size } = request.query; + const soClient = (await context.core).savedObjects.client; + const dataViewsService = await getDataViewsService(); + + const dr = dataRecognizerFactory( + client, + mlClient, + soClient, + dataViewsService, + mlSavedObjectService, + request, + compatibleModuleType + ); + const results = await dr.findIndexMatches(moduleId, size); + + return response.ok({ body: results }); + } catch (e) { + return response.customError(wrapError(e)); + } + } + ) + ); + router.versioned .get({ path: `${ML_INTERNAL_BASE_PATH}/modules/get_module/{moduleId?}`, diff --git a/x-pack/plugins/ml/server/routes/schemas/modules.ts b/x-pack/plugins/ml/server/routes/schemas/modules.ts index 8cb6bfdc96fd8..fcd2f92d68ed9 100644 --- a/x-pack/plugins/ml/server/routes/schemas/modules.ts +++ b/x-pack/plugins/ml/server/routes/schemas/modules.ts @@ -107,6 +107,10 @@ export const moduleIdParamSchema = schema.object({ moduleId: schema.string({ meta: { description: 'ID of the module' } }), }); +export const optionalSizeQuerySchema = schema.object({ + size: schema.maybe(schema.number({ meta: { description: 'How many results to return' } })), +}); + export const recognizeModulesSchema = schema.object({ indexPatternTitle: schema.string({ meta: { diff --git a/x-pack/plugins/monitoring/public/components/license/index.tsx b/x-pack/plugins/monitoring/public/components/license/index.tsx index 581d48dab7f5e..e0675290eb9a9 100644 --- a/x-pack/plugins/monitoring/public/components/license/index.tsx +++ b/x-pack/plugins/monitoring/public/components/license/index.tsx @@ -79,7 +79,7 @@ class LicenseStatus extends React.PureComponent { id="xpack.monitoring.expiredLicenseStatusDescription" defaultMessage="Your license expired on {expiryDate}" values={{ - expiryDate: {expiryDate}, + expiryDate: {expiryDate as string}, }} /> @@ -101,7 +101,7 @@ class LicenseStatus extends React.PureComponent { id="xpack.monitoring.activeLicenseStatusDescription" defaultMessage="Your license will expire on {expiryDate}" values={{ - expiryDate: {expiryDate}, + expiryDate: {expiryDate as string}, }} /> diff --git a/x-pack/plugins/monitoring/server/plugin.ts b/x-pack/plugins/monitoring/server/plugin.ts index 5219c3441b13e..72063805b3383 100644 --- a/x-pack/plugins/monitoring/server/plugin.ts +++ b/x-pack/plugins/monitoring/server/plugin.ts @@ -23,6 +23,7 @@ import { import { get } from 'lodash'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; import { RouteMethod } from '@kbn/core/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { KIBANA_MONITORING_LOGGING_TAG, KIBANA_STATS_TYPE_MONITORING, @@ -272,6 +273,7 @@ export class MonitoringPlugin defaultMessage: 'Stack Monitoring', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['monitoring', 'kibana'], catalogue: ['monitoring'], privileges: null, diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_dependencies.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_dependencies.png new file mode 100644 index 0000000000000..63377ac85431f Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_dependencies.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_errors.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_errors.png new file mode 100644 index 0000000000000..0cfea1c544a02 Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_errors.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_infrastructure.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_infrastructure.png new file mode 100644 index 0000000000000..1a8f2cabbc0c1 Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_infrastructure.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_metrics.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_metrics.png new file mode 100644 index 0000000000000..799e41821effb Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_metrics.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_overview.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_overview.png new file mode 100644 index 0000000000000..7f24ebaefb8c6 Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_overview.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_service_map.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_service_map.png new file mode 100644 index 0000000000000..19ec7072b227c Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_service_map.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_transactions.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_transactions.png new file mode 100644 index 0000000000000..97de4c3a20ec9 Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/dark/service_tab_empty_state_transactions.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_dependencies.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_dependencies.png new file mode 100644 index 0000000000000..1cf18b76670bf Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_dependencies.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_errors.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_errors.png new file mode 100644 index 0000000000000..df9a1c61cb6fe Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_errors.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_infrastructure.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_infrastructure.png new file mode 100644 index 0000000000000..287862fd9c30f Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_infrastructure.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_metrics.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_metrics.png new file mode 100644 index 0000000000000..7455f5a532a1e Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_metrics.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_overview.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_overview.png new file mode 100644 index 0000000000000..2fd6807b209e8 Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_overview.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_service_map.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_service_map.png new file mode 100644 index 0000000000000..ae899d735988b Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_service_map.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_transactions.png b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_transactions.png new file mode 100644 index 0000000000000..bb3183a5584e8 Binary files /dev/null and b/x-pack/plugins/observability_solution/apm/public/assets/service_tab_empty_state/light/service_tab_empty_state_transactions.png differ diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/entities/charts/log_rate_chart.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/entities/charts/log_rate_chart.tsx index 413fad8cdf3d3..b27d73004d489 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/entities/charts/log_rate_chart.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/entities/charts/log_rate_chart.tsx @@ -121,11 +121,7 @@ export function LogRateChart({ height }: { height: number }) {
    - + diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/error_group_overview/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/error_group_overview/index.tsx index 5024bfad1fc99..486af9c64310e 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/error_group_overview/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/error_group_overview/index.tsx @@ -15,9 +15,12 @@ import { useErrorGroupDistributionFetcher } from '../../../hooks/use_error_group import { FailedTransactionRateChart } from '../../shared/charts/failed_transaction_rate_chart'; import { ErrorDistribution } from '../error_group_details/distribution'; import { ErrorGroupList } from './error_group_list'; +import { isLogsOnlySignal } from '../../../utils/get_signal_type'; +import { ServiceTabEmptyState } from '../service_tab_empty_state'; export function ErrorGroupOverview() { const { serviceName } = useApmServiceContext(); + const { serviceEntitySummary } = useApmServiceContext(); const { query: { environment, kuery, comparisonEnabled }, @@ -30,6 +33,13 @@ export function ErrorGroupOverview() { kuery, }); + const hasLogsOnlySignal = + serviceEntitySummary?.dataStreamTypes && isLogsOnlySignal(serviceEntitySummary.dataStreamTypes); + + if (hasLogsOnlySignal) { + return ; + } + return ( diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/infra_overview/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/infra_overview/index.tsx index 2b7f55d0ba690..a7db6bdd09a80 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/infra_overview/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/infra_overview/index.tsx @@ -6,9 +6,21 @@ */ import { EuiPanel } from '@elastic/eui'; import React from 'react'; +import { useApmServiceContext } from '../../../context/apm_service/use_apm_service_context'; +import { isLogsOnlySignal } from '../../../utils/get_signal_type'; import { InfraTabs } from './infra_tabs'; +import { ServiceTabEmptyState } from '../service_tab_empty_state'; export function InfraOverview() { + const { serviceEntitySummary } = useApmServiceContext(); + + const hasLogsOnlySignal = + serviceEntitySummary?.dataStreamTypes && isLogsOnlySignal(serviceEntitySummary.dataStreamTypes); + + if (hasLogsOnlySignal) { + return ; + } + return ( diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/metrics/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/metrics/index.tsx index b3eaa74ff1d80..e89bffeaf5b5d 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/metrics/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/metrics/index.tsx @@ -18,11 +18,22 @@ import { JvmMetricsOverview } from './jvm_metrics_overview'; import { JsonMetricsDashboard } from './static_dashboard'; import { hasDashboardFile } from './static_dashboard/helper'; import { useAdHocApmDataView } from '../../../hooks/use_adhoc_apm_data_view'; +import { isLogsOnlySignal } from '../../../utils/get_signal_type'; +import { ServiceTabEmptyState } from '../service_tab_empty_state'; export function Metrics() { const { agentName, runtimeName, serverlessType } = useApmServiceContext(); const isAWSLambda = isAWSLambdaAgentName(serverlessType); const { dataView } = useAdHocApmDataView(); + const { serviceEntitySummary } = useApmServiceContext(); + + const hasLogsOnlySignal = + serviceEntitySummary?.dataStreamTypes && isLogsOnlySignal(serviceEntitySummary.dataStreamTypes); + + if (hasLogsOnlySignal) { + return ; + } + if (isAWSLambda) { return ; } diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_dependencies/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_dependencies/index.tsx index 30df2be2188fa..7aa010c276fcd 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_dependencies/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_dependencies/index.tsx @@ -9,11 +9,23 @@ import { EuiTitle } from '@elastic/eui'; import { EuiPanel } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React from 'react'; +import { isLogsOnlySignal } from '../../../utils/get_signal_type'; import { ChartPointerEventContextProvider } from '../../../context/chart_pointer_event/chart_pointer_event_context'; import { ServiceOverviewDependenciesTable } from '../service_overview/service_overview_dependencies_table'; import { ServiceDependenciesBreakdownChart } from './service_dependencies_breakdown_chart'; +import { useApmServiceContext } from '../../../context/apm_service/use_apm_service_context'; +import { ServiceTabEmptyState } from '../service_tab_empty_state'; export function ServiceDependencies() { + const { serviceEntitySummary } = useApmServiceContext(); + + const hasLogsOnlySignal = + serviceEntitySummary?.dataStreamTypes && isLogsOnlySignal(serviceEntitySummary.dataStreamTypes); + + if (hasLogsOnlySignal) { + return ; + } + return ( <> diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/get_service_columns.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/get_service_columns.tsx index 3cfa4223cefdb..ec6385b37dee3 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/get_service_columns.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_inventory/multi_signal_inventory/table/get_service_columns.tsx @@ -36,10 +36,9 @@ import { NotAvailableApmMetrics } from '../../../../shared/not_available_popover import { TruncateWithTooltip } from '../../../../shared/truncate_with_tooltip'; import { ServiceInventoryFieldName } from './multi_signal_services_table'; import { EntityDataStreamType } from '../../../../../../common/entities/types'; -import { isApmSignal, isLogsSignal } from '../../../../../utils/get_signal_type'; +import { isApmSignal } from '../../../../../utils/get_signal_type'; import { ColumnHeader } from './column_header'; import { APIReturnType } from '../../../../../services/rest/create_call_apm_api'; -import { NotAvailableLogsMetrics } from '../../../../shared/not_available_popover/not_available_log_metrics'; type ServicesDetailedStatisticsAPIResponse = APIReturnType<'POST /internal/apm/entities/services/detailed_statistics'>; @@ -204,10 +203,6 @@ export function getServiceColumns({ dataType: 'number', align: RIGHT_ALIGNMENT, render: (_, { metrics, serviceName, dataStreamTypes, hasLogMetrics }) => { - if (isLogsSignal(dataStreamTypes) && !hasLogMetrics) { - return ; - } - const { currentPeriodColor } = getTimeSeriesColor(ChartType.LOG_RATE); return ( { - if (isLogsSignal(dataStreamTypes) && !hasLogMetrics) { - return ; - } - const { currentPeriodColor } = getTimeSeriesColor(ChartType.LOG_ERROR_RATE); return ( diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_map/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_map/index.tsx index 14c5167128725..4536406a21bd5 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_map/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_map/index.tsx @@ -29,6 +29,9 @@ import { useApmParams, useAnyOfApmParams } from '../../../hooks/use_apm_params'; import { Environment } from '../../../../common/environment_rt'; import { useTimeRange } from '../../../hooks/use_time_range'; import { DisabledPrompt } from './disabled_prompt'; +import { useApmServiceContext } from '../../../context/apm_service/use_apm_service_context'; +import { isLogsOnlySignal } from '../../../utils/get_signal_type'; +import { ServiceTabEmptyState } from '../service_tab_empty_state'; function PromptContainer({ children }: { children: ReactNode }) { return ( @@ -76,6 +79,14 @@ export function ServiceMapServiceDetail() { '/mobile-services/{serviceName}/service-map' ); const { start, end } = useTimeRange({ rangeFrom, rangeTo }); + const { serviceEntitySummary } = useApmServiceContext(); + + const hasLogsOnlySignal = + serviceEntitySummary?.dataStreamTypes && isLogsOnlySignal(serviceEntitySummary.dataStreamTypes); + + if (hasLogsOnlySignal) { + return ; + } return ; } diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/index.tsx index e04f90b81798d..e406eba65f678 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/index.tsx @@ -14,9 +14,12 @@ import { ChartPointerEventContextProvider } from '../../../context/chart_pointer import { useEntityManagerEnablementContext } from '../../../context/entity_manager_context/use_entity_manager_enablement_context'; import { useApmParams } from '../../../hooks/use_apm_params'; import { useTimeRange } from '../../../hooks/use_time_range'; -import { isApmSignal, isLogsSignal } from '../../../utils/get_signal_type'; +import { isApmSignal, isLogsSignal, isLogsOnlySignal } from '../../../utils/get_signal_type'; import { ApmOverview } from './apm_overview'; import { LogsOverview } from './logs_overview'; +import { ServiceTabEmptyState } from '../service_tab_empty_state'; +import { useLocalStorage } from '../../../hooks/use_local_storage'; +import { SearchBar } from '../../shared/search_bar/search_bar'; import { FETCH_STATUS } from '../../../hooks/use_fetcher'; /** * The height a chart should be if it's next to a table with 5 rows and a title. @@ -49,11 +52,19 @@ export function ServiceOverview() { const { start, end } = useTimeRange({ rangeFrom, rangeTo }); + const [dismissedLogsOnlyEmptyState, setDismissedLogsOnlyEmptyState] = useLocalStorage( + `apm.dismissedLogsOnlyEmptyState.overview`, + false + ); + const hasSignal = serviceEntitySummary?.dataStreamTypes && serviceEntitySummary?.dataStreamTypes?.length > 0; const hasLogsSignal = hasSignal && isLogsSignal(serviceEntitySummary.dataStreamTypes); + const hasLogsOnlySignal = hasSignal && isLogsOnlySignal(serviceEntitySummary.dataStreamTypes); + + // Shows APM overview when entity has APM signal or when Entity centric is not enabled const hasApmSignal = hasSignal && isApmSignal(serviceEntitySummary.dataStreamTypes); // Shows APM overview when entity has APM signal or when Entity centric is not enabled or when entity has no signal @@ -69,23 +80,36 @@ export function ServiceOverview() { } return ( - - - - {showApmOverview ? : null} - {/* Only shows Logs overview when entity has Logs signal */} - {hasLogsSignal ? ( - - - - ) : null} - - - + <> + + + + + {showApmOverview ? : null} + {/* Only shows Logs overview when entity has Logs signal */} + {hasLogsSignal ? ( + <> + {hasLogsOnlySignal && !dismissedLogsOnlyEmptyState && ( + + setDismissedLogsOnlyEmptyState(true)} + /> + + )} + + + + + ) : null} + + + + ); } diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/logs_overview/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/logs_overview/index.tsx index 163b5aa11898a..b51a95e3ccabc 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/logs_overview/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/logs_overview/index.tsx @@ -5,44 +5,21 @@ * 2.0. */ -import { EuiFlexGroup, EuiFlexItem, EuiSpacer } from '@elastic/eui'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React from 'react'; -import { useLocalStorage } from '../../../../hooks/use_local_storage'; -import { AddAPMCallOut } from '../../entities/logs/add_apm_callout'; import { LogRateChart } from '../../entities/charts/log_rate_chart'; import { LogErrorRateChart } from '../../entities/charts/log_error_rate_chart'; import { chartHeight } from '..'; -interface Props { - hasApmSignal?: boolean; -} - -export function LogsOverview({ hasApmSignal }: Props) { - const [isLogsApmCalloutEnabled, setIsLogsApmCalloutEnabled] = useLocalStorage( - 'apm.isLogsApmCalloutEnabled', - true - ); - +export function LogsOverview() { return ( - <> - {!hasApmSignal && isLogsApmCalloutEnabled ? ( - <> - { - setIsLogsApmCalloutEnabled(false); - }} - /> - - - ) : null} - - - - - - - - - + + + + + + + + ); } diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/service_overview.stories.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/service_overview.stories.tsx index bd04f82396b1c..6bbad7a95e114 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/service_overview.stories.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/service_overview.stories.tsx @@ -42,6 +42,7 @@ const stories: Meta<{}> = { transactionType, transactionTypeStatus, serviceEntitySummary, + transactionTypes: ['type'], } as unknown as APMServiceContextValue; return ( diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/service_overview.test.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/service_overview.test.tsx index 35a5e48307147..98cdc1e65c3a2 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/service_overview.test.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_overview/service_overview.test.tsx @@ -9,10 +9,28 @@ import { composeStories } from '@storybook/testing-react'; import { render, screen } from '@testing-library/react'; import React from 'react'; import * as stories from './service_overview.stories'; +import * as useAdHocApmDataView from '../../../hooks/use_adhoc_apm_data_view'; const { Example } = composeStories(stories); describe('ServiceOverview', () => { + let useAdHocApmDataViewSpy: jest.SpyInstance; + + beforeAll(() => { + useAdHocApmDataViewSpy = jest.spyOn(useAdHocApmDataView, 'useAdHocApmDataView'); + + useAdHocApmDataViewSpy.mockImplementation(() => { + return { + dataView: { + id: 'foo-1', + }, + }; + }); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); it('renders', async () => { render(); diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/constants.ts b/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/constants.ts new file mode 100644 index 0000000000000..8165ad991cfe2 --- /dev/null +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/constants.ts @@ -0,0 +1,95 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export type EmptyStateKey = + | 'serviceOverview' + | 'serviceDependencies' + | 'infraOverview' + | 'serviceMap' + | 'transactionOverview' + | 'metrics' + | 'errorGroupOverview'; + +interface EmptyStateContent { + title: string; + content: string; + imgName?: string; +} + +export const emptyStateDefinitions: Record = { + serviceOverview: { + title: i18n.translate('xpack.apm.serviceTabEmptyState.overviewTitle', { + defaultMessage: 'Detect and resolve issues faster with deep visibility into your application', + }), + content: i18n.translate('xpack.apm.serviceTabEmptyState.overviewContent', { + defaultMessage: + 'Understanding your application performance, relationships and dependencies by instrumenting with APM.', + }), + }, + serviceDependencies: { + title: i18n.translate('xpack.apm.serviceTabEmptyState.dependenciesTitle', { + defaultMessage: 'Understand the dependencies for your service', + }), + content: i18n.translate('xpack.apm.serviceTabEmptyState.dependenciesContent', { + defaultMessage: + 'See your services dependencies on both internal and third-party services by instrumenting with APM.', + }), + imgName: 'service_tab_empty_state_dependencies.png', + }, + infraOverview: { + title: i18n.translate('xpack.apm.serviceTabEmptyState.infrastructureTitle', { + defaultMessage: 'Understand what your service is running on', + }), + content: i18n.translate('xpack.apm.serviceTabEmptyState.infrastructureContent', { + defaultMessage: + 'Troubleshoot service problems by seeing the infrastructure your service is running on.', + }), + imgName: 'service_tab_empty_state_infrastructure.png', + }, + serviceMap: { + title: i18n.translate('xpack.apm.serviceTabEmptyState.serviceMapTitle', { + defaultMessage: 'Visualise the dependencies between your services', + }), + content: i18n.translate('xpack.apm.serviceTabEmptyState.serviceMapContent', { + defaultMessage: + 'See your services dependencies at a glance to help identify dependencies that may be affecting your service.', + }), + imgName: 'service_tab_empty_state_service_map.png', + }, + transactionOverview: { + title: i18n.translate('xpack.apm.serviceTabEmptyState.transactionsTitle', { + defaultMessage: 'Troubleshoot latency, throughput and errors', + }), + content: i18n.translate('xpack.apm.serviceTabEmptyState.transactionsContent', { + defaultMessage: + "Troubleshoot your service's performance by analysing latency, throughput and errors down to the specific transaction.", + }), + imgName: 'service_tab_empty_state_transactions.png', + }, + metrics: { + title: i18n.translate('xpack.apm.serviceTabEmptyState.metricsTitle', { + defaultMessage: 'View core metrics for your application', + }), + content: i18n.translate('xpack.apm.serviceTabEmptyState.metricsContent', { + defaultMessage: + 'View metric trends for the instances of your service to identify performance bottlenecks that could be affecting your users.', + }), + imgName: 'service_tab_empty_state_metrics.png', + }, + errorGroupOverview: { + title: i18n.translate('xpack.apm.serviceTabEmptyState.errorGroupOverviewTitle', { + defaultMessage: 'Identify transaction errors with your applications', + }), + content: i18n.translate('xpack.apm.serviceTabEmptyState.errorGroupOverviewContent', { + defaultMessage: + 'Analyse errors down to the specific transaction to pin-point specific errors within your service.', + }), + imgName: 'service_tab_empty_state_errors.png', + }, +}; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/index.tsx new file mode 100644 index 0000000000000..8f4f86e2b92ed --- /dev/null +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/index.tsx @@ -0,0 +1,138 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { + EuiButton, + EuiButtonIcon, + EuiFlexGroup, + EuiFlexItem, + EuiImage, + EuiLink, + EuiPanel, + EuiSpacer, + EuiText, + EuiTitle, + useEuiTheme, +} from '@elastic/eui'; +import React from 'react'; +import { i18n } from '@kbn/i18n'; +import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; +import { useKibanaUrl } from '../../../hooks/use_kibana_url'; +import { AddApmData } from '../../shared/add_data_buttons/buttons'; +import { emptyStateDefinitions, EmptyStateKey } from './constants'; + +export interface ServiceTabEmptyStateProps { + id: EmptyStateKey; + onDissmiss?: () => void; +} + +const tryItNowButton = { + label: i18n.translate('xpack.apm.serviceTabEmptyState.tryItNowButtonLabel', { + defaultMessage: 'Try it now in our demo cluster', + }), + href: 'https://ela.st/demo-apm-try-it', +}; + +const learnMoreLink = { + label: i18n.translate('xpack.apm.serviceTabEmptyState.learnMoreLinkLabel', { + defaultMessage: 'Learn more', + }), + href: 'https://www.elastic.co/observability/application-performance-monitoring', +}; + +const baseImgFolder = '/plugins/apm/assets/service_tab_empty_state'; + +export function ServiceTabEmptyState({ id, onDissmiss }: ServiceTabEmptyStateProps) { + const { euiTheme } = useEuiTheme(); + const { core } = useApmPluginContext(); + + const imgFolder = `${baseImgFolder}/${ + core.uiSettings.get('theme:darkMode') === 'enabled' ? 'dark' : 'light' + }`; + const imgName = emptyStateDefinitions[id].imgName; + const imgSrc = useKibanaUrl( + `${imgFolder}/${imgName ? imgName : 'service_tab_empty_state_overview.png'}` + ); + + return ( + <> + + + + +

    {emptyStateDefinitions[id].title}

    +
    + + {emptyStateDefinitions[id].content} + + + + + + + + {tryItNowButton.label} + + + + + {learnMoreLink.label} + + + +
    + {!emptyStateDefinitions[id].imgName && ( + + + + )} + + {onDissmiss && ( + + )} +
    +
    + {emptyStateDefinitions[id].imgName && ( + <> + + + + )} + + ); +} diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/service_tab_empty_state.stories.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/service_tab_empty_state.stories.tsx new file mode 100644 index 0000000000000..1e85abd2a5b62 --- /dev/null +++ b/x-pack/plugins/observability_solution/apm/public/components/app/service_tab_empty_state/service_tab_empty_state.stories.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { ComponentProps, ComponentType } from 'react'; +import { ServiceTabEmptyState } from '.'; +import { MockApmPluginStorybook } from '../../../context/apm_plugin/mock_apm_plugin_storybook'; + +export default { + title: 'APP/ServiceTabEmptyState', + component: ServiceTabEmptyState, + decorators: [ + (Story: ComponentType) => ( + + + + ), + ], +}; + +export function Default({ id }: ComponentProps) { + return ; +} + +Default.args = { + id: 'infraOverview', +} as ComponentProps; diff --git a/x-pack/plugins/observability_solution/apm/public/components/app/transaction_overview/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/app/transaction_overview/index.tsx index 1ff58538b293a..84da9489964c6 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/app/transaction_overview/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/app/transaction_overview/index.tsx @@ -19,6 +19,8 @@ import { TransactionCharts } from '../../shared/charts/transaction_charts'; import { replace } from '../../shared/links/url_helpers'; import { SloCallout } from '../../shared/slo_callout'; import { TransactionsTable } from '../../shared/transactions_table'; +import { isLogsOnlySignal } from '../../../utils/get_signal_type'; +import { ServiceTabEmptyState } from '../service_tab_empty_state'; export function TransactionOverview() { const { @@ -60,6 +62,15 @@ export function TransactionOverview() { }); }, [setScreenContext, serviceName, transactionType]); + const { serviceEntitySummary } = useApmServiceContext(); + + const hasLogsOnlySignal = + serviceEntitySummary?.dataStreamTypes && isLogsOnlySignal(serviceEntitySummary.dataStreamTypes); + + if (hasLogsOnlySignal) { + return ; + } + return ( <> {!sloCalloutDismissed && ( diff --git a/x-pack/plugins/observability_solution/apm/public/components/routing/service_detail/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/routing/service_detail/index.tsx index ea5a94a47ccd0..d746e0464fd40 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/routing/service_detail/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/routing/service_detail/index.tsx @@ -155,8 +155,7 @@ export const serviceDetailRoute = { defaultMessage: 'Overview', }), searchBarOptions: { - showTransactionTypeSelector: true, - showTimeComparison: true, + hidden: true, }, }), params: t.partial({ diff --git a/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_main_template.tsx b/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_main_template.tsx index dd18607c48011..fca4f3809edb5 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_main_template.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_main_template.tsx @@ -53,7 +53,6 @@ export function ApmMainTemplate({ showServiceGroupSaveButton = false, showServiceGroupsNav = false, showEnablementCallout = false, - environmentFilterInTemplate = true, selectedNavButton, ...pageTemplateProps }: { diff --git a/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_service_template/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_service_template/index.tsx index 6c2fdaea96687..0e095694cd538 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_service_template/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/routing/templates/apm_service_template/index.tsx @@ -8,6 +8,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiLoadingLogo, EuiSpacer, EuiTitle } from '@elastic/eui'; import React from 'react'; import { useHistory, useLocation } from 'react-router-dom'; +import { isLogsOnlySignal } from '../../../../utils/get_signal_type'; import { isMobileAgentName } from '../../../../../common/agent_name'; import { ApmServiceContextProvider } from '../../../../context/apm_service/apm_service_context'; import { useApmServiceContext } from '../../../../context/apm_service/use_apm_service_context'; @@ -54,7 +55,7 @@ function TemplateWithContext({ title, children, selectedTab, searchBarOptions }: const tabs = useTabs({ selectedTab }); - const { agentName, serviceAgentStatus } = useApmServiceContext(); + const { agentName, serviceAgentStatus, serviceEntitySummary } = useApmServiceContext(); const isPendingServiceAgent = !agentName && isPending(serviceAgentStatus); @@ -75,6 +76,9 @@ function TemplateWithContext({ title, children, selectedTab, searchBarOptions }: }); } + const hasLogsOnlySignal = + serviceEntitySummary?.dataStreamTypes && isLogsOnlySignal(serviceEntitySummary.dataStreamTypes); + return ( ) : ( <> - + {!hasLogsOnlySignal && } {children} diff --git a/x-pack/plugins/observability_solution/apm/public/components/shared/add_data_buttons/buttons.tsx b/x-pack/plugins/observability_solution/apm/public/components/shared/add_data_buttons/buttons.tsx index db2cb9d41237b..e3fc828b24803 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/shared/add_data_buttons/buttons.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/shared/add_data_buttons/buttons.tsx @@ -8,7 +8,7 @@ // Disabling it for now until the EUI team fixes it /* eslint-disable @elastic/eui/href-or-on-click */ -import { EuiButton } from '@elastic/eui'; +import { EuiButton, EuiButtonSize } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import React from 'react'; import { useApmPluginContext } from '../../../context/apm_plugin/use_apm_plugin_context'; @@ -34,22 +34,24 @@ export const collectServiceLogs = { link: '/app/observabilityOnboarding/customLogs/?category=logs', }; -export function AddApmData({ - onClick, - ...props -}: { +interface AddApmDataProps { onClick?: () => void; 'data-test-subj': string; -}) { + fill?: boolean; + size?: EuiButtonSize; +} + +export function AddApmData({ fill = false, size = 's', ...props }: AddApmDataProps) { const { core } = useApmPluginContext(); const { basePath } = core.http; return ( {addApmData.name} diff --git a/x-pack/plugins/observability_solution/apm/public/components/shared/charts/helper/get_metrics_formulas.tsx b/x-pack/plugins/observability_solution/apm/public/components/shared/charts/helper/get_metrics_formulas.tsx index cba76728a0222..f2d014aa0a1dc 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/shared/charts/helper/get_metrics_formulas.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/shared/charts/helper/get_metrics_formulas.tsx @@ -11,7 +11,7 @@ export enum ChartMetricType { } const metricsFormulasMap: Record = { - [ChartMetricType.LOG_RATE]: `count(kql='log.level: *') / [PERIOD_IN_MINUTES]`, + [ChartMetricType.LOG_RATE]: `count() / [PERIOD_IN_MINUTES]`, [ChartMetricType.LOG_ERROR_RATE]: `count(kql='log.level: "error" OR log.level: "ERROR" OR error.log.level: "error" OR error.log.level: "ERROR"') / [PERIOD_IN_MINUTES]`, }; diff --git a/x-pack/plugins/observability_solution/apm/public/components/shared/not_available_popover/not_available_log_metrics.tsx b/x-pack/plugins/observability_solution/apm/public/components/shared/not_available_popover/not_available_log_metrics.tsx deleted file mode 100644 index 480795c533944..0000000000000 --- a/x-pack/plugins/observability_solution/apm/public/components/shared/not_available_popover/not_available_log_metrics.tsx +++ /dev/null @@ -1,53 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { EuiLink } from '@elastic/eui'; -import { i18n } from '@kbn/i18n'; -import { FormattedMessage } from '@kbn/i18n-react'; -import React from 'react'; -import { PopoverBadge } from '../popover_badge'; - -export function NotAvailableLogsMetrics() { - return ( - - {i18n.translate( - 'xpack.apm.servicesTable.notAvailableLogsMetrics.content.logLevelLink', - { defaultMessage: 'log.level' } - )} - - ), - }} - /> - } - footer={ - - {i18n.translate('xpack.apm.servicesTable.notAvailableLogsMetrics.footer.learnMore', { - defaultMessage: 'Learn more', - })} - - } - /> - ); -} diff --git a/x-pack/plugins/observability_solution/apm/public/components/shared/select_with_placeholder/index.tsx b/x-pack/plugins/observability_solution/apm/public/components/shared/select_with_placeholder/index.tsx index 3d84aa7f437f8..23a1ad7eddaa3 100644 --- a/x-pack/plugins/observability_solution/apm/public/components/shared/select_with_placeholder/index.tsx +++ b/x-pack/plugins/observability_solution/apm/public/components/shared/select_with_placeholder/index.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import { EuiSelect } from '@elastic/eui'; +import { EuiSelect, EuiSelectProps } from '@elastic/eui'; import { isEmpty } from 'lodash'; import { i18n } from '@kbn/i18n'; @@ -21,7 +21,7 @@ const DEFAULT_PLACEHOLDER = i18n.translate('xpack.apm.selectPlaceholder', { * the first option as the initial, not selected option. */ // eslint-disable-next-line react/function-component-definition -export const SelectWithPlaceholder: typeof EuiSelect = (props) => { +export const SelectWithPlaceholder = (props: EuiSelectProps & { placeholder?: string }) => { const placeholder = props.placeholder || DEFAULT_PLACEHOLDER; return ( ) ); } - return {val}; + return {val as React.ReactNode}; } export function StickyProperties({ stickyProperties }: { stickyProperties: IStickyProperty[] }) { diff --git a/x-pack/plugins/observability_solution/apm/public/context/apm_plugin/mock_apm_plugin_storybook.tsx b/x-pack/plugins/observability_solution/apm/public/context/apm_plugin/mock_apm_plugin_storybook.tsx index 0c851093a5bb1..a342f84e9c5c3 100644 --- a/x-pack/plugins/observability_solution/apm/public/context/apm_plugin/mock_apm_plugin_storybook.tsx +++ b/x-pack/plugins/observability_solution/apm/public/context/apm_plugin/mock_apm_plugin_storybook.tsx @@ -120,11 +120,44 @@ const mockCore = { get: (key: string) => uiSettings[key], get$: (key: string) => of(mockCore.uiSettings.get(key)), }, + unifiedSearch: { + autocomplete: { + hasQuerySuggestions: () => Promise.resolve(false), + getQuerySuggestions: () => [], + getValueSuggestions: () => + new Promise((resolve) => { + setTimeout(() => { + resolve([]); + }, 300); + }), + }, + }, + data: { + query: { + queryString: { getQuery: jest.fn(), setQuery: jest.fn(), clearQuery: jest.fn() }, + timefilter: { + timefilter: { + setTime: jest.fn(), + setRefreshInterval: jest.fn(), + }, + }, + }, + }, + dataViews: { + create: jest.fn(), + }, +}; + +const mockUnifiedSearchBar = { + ui: { + SearchBar: () =>
    , + }, }; const mockApmPluginContext = { core: mockCore, plugins: mockPlugin, + unifiedSearch: mockUnifiedSearchBar, observabilityAIAssistant: { service: { setScreenContext: () => noop }, }, diff --git a/x-pack/plugins/observability_solution/apm/public/hooks/create_shared_use_fetcher.tsx b/x-pack/plugins/observability_solution/apm/public/hooks/create_shared_use_fetcher.tsx index 7d7c40830e369..b215ae39f67f2 100644 --- a/x-pack/plugins/observability_solution/apm/public/hooks/create_shared_use_fetcher.tsx +++ b/x-pack/plugins/observability_solution/apm/public/hooks/create_shared_use_fetcher.tsx @@ -26,7 +26,7 @@ export function createSharedUseFetcher( ): SharedUseFetcher { const Context = createContext | undefined>(undefined); - const returnValue: SharedUseFetcher = { + const returnValue: SharedUseFetcher = { useFetcherResult: () => { const context = useContext(Context); @@ -34,16 +34,16 @@ export function createSharedUseFetcher( throw new Error('Context was not found'); } - const params = context.params; + const params = 'params' in context ? context.params : undefined; const result = useFetcher( (callApmApi) => { - return callApmApi(...([endpoint, { params }] as Parameters)); + return callApmApi(endpoint, ...((params ? [{ params }] : []) as any)); }, [params] ); - return result as ReturnType['useFetcherResult']>; + return result as ReturnType['useFetcherResult']>; }, Provider: (props) => { const { children } = props; diff --git a/x-pack/plugins/observability_solution/apm/public/services/rest/create_call_apm_api.ts b/x-pack/plugins/observability_solution/apm/public/services/rest/create_call_apm_api.ts index 0ea4b965a1d77..0964517ef18b5 100644 --- a/x-pack/plugins/observability_solution/apm/public/services/rest/create_call_apm_api.ts +++ b/x-pack/plugins/observability_solution/apm/public/services/rest/create_call_apm_api.ts @@ -22,12 +22,12 @@ export type APMClientOptions = Omit; +export type APMClient = RouteRepositoryClient['fetch']; export type AutoAbortedAPMClient = RouteRepositoryClient< APMServerRouteRepository, Omit ->; +>['fetch']; export type APIReturnType = ReturnOf< APMServerRouteRepository, @@ -43,7 +43,10 @@ export type APIClientRequestParamsOf = ClientRequ export type AbstractAPMRepository = ServerRouteRepository; -export type AbstractAPMClient = RouteRepositoryClient; +export type AbstractAPMClient = RouteRepositoryClient< + AbstractAPMRepository, + APMClientOptions +>['fetch']; export let callApmApi: APMClient = () => { throw new Error('callApmApi has to be initialized before used. Call createCallApmApi first.'); diff --git a/x-pack/plugins/observability_solution/apm/public/utils/get_signal_type.ts b/x-pack/plugins/observability_solution/apm/public/utils/get_signal_type.ts index 4a73368c00e85..89d5c3ff49114 100644 --- a/x-pack/plugins/observability_solution/apm/public/utils/get_signal_type.ts +++ b/x-pack/plugins/observability_solution/apm/public/utils/get_signal_type.ts @@ -16,3 +16,7 @@ export function isApmSignal(dataStreamTypes: EntityDataStreamType[]) { export function isLogsSignal(dataStreamTypes: EntityDataStreamType[]) { return dataStreamTypes.includes(EntityDataStreamType.LOGS); } + +export function isLogsOnlySignal(signalTypes: EntityDataStreamType[]) { + return !isApmSignal(signalTypes) && isLogsSignal(signalTypes); +} diff --git a/x-pack/plugins/observability_solution/apm/server/feature.ts b/x-pack/plugins/observability_solution/apm/server/feature.ts index 5a0ba552a0c18..1932a07b5ebd6 100644 --- a/x-pack/plugins/observability_solution/apm/server/feature.ts +++ b/x-pack/plugins/observability_solution/apm/server/feature.ts @@ -15,6 +15,7 @@ import { import { APM_INDEX_SETTINGS_SAVED_OBJECT_TYPE } from '@kbn/apm-data-access-plugin/server/saved_objects/apm_indices'; import { ApmRuleType } from '@kbn/rule-data-utils'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { APM_SERVER_FEATURE_ID } from '../common/rules/apm_rule_types'; const ruleTypes = Object.values(ApmRuleType); @@ -26,6 +27,7 @@ export const APM_FEATURE = { }), order: 900, category: DEFAULT_APP_CATEGORIES.observability, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [APM_SERVER_FEATURE_ID, 'ux', 'kibana'], catalogue: [APM_SERVER_FEATURE_ID], management: { diff --git a/x-pack/plugins/observability_solution/apm/server/routes/apm_routes/register_apm_server_routes.test.ts b/x-pack/plugins/observability_solution/apm/server/routes/apm_routes/register_apm_server_routes.test.ts index c5e652fa910d0..59a3b0c3fa9e7 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/apm_routes/register_apm_server_routes.test.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/apm_routes/register_apm_server_routes.test.ts @@ -68,7 +68,9 @@ const getRegisterRouteDependencies = () => { }; const initApi = ( - routes: Array> + routes: Array< + ServerRoute + > ) => { const { mocks, dependencies } = getRegisterRouteDependencies(); diff --git a/x-pack/plugins/observability_solution/apm/server/routes/debug_telemetry/route.ts b/x-pack/plugins/observability_solution/apm/server/routes/debug_telemetry/route.ts index ed18f6849fcb2..c3ab67150f39c 100644 --- a/x-pack/plugins/observability_solution/apm/server/routes/debug_telemetry/route.ts +++ b/x-pack/plugins/observability_solution/apm/server/routes/debug_telemetry/route.ts @@ -17,7 +17,7 @@ export const debugTelemetryRoute = createApmServerRoute({ options: { tags: ['access:apm', 'access:apm_write'], }, - handler: async (resources): Promise => { + handler: async (resources): Promise => { const { plugins, context } = resources; const coreContext = await context.core; const taskManagerStart = await plugins.taskManager?.start(); @@ -30,6 +30,6 @@ export const debugTelemetryRoute = createApmServerRoute({ APM_TELEMETRY_SAVED_OBJECT_ID ); - return apmTelemetryObject.attributes; + return apmTelemetryObject.attributes as APMTelemetry; }, }); diff --git a/x-pack/plugins/observability_solution/apm/server/tutorial/envs/on_prem_apm_server_instruction_set.ts b/x-pack/plugins/observability_solution/apm/server/tutorial/envs/on_prem_apm_server_instruction_set.ts index 8fd91bdf2fcb4..1bf4c92be43b5 100644 --- a/x-pack/plugins/observability_solution/apm/server/tutorial/envs/on_prem_apm_server_instruction_set.ts +++ b/x-pack/plugins/observability_solution/apm/server/tutorial/envs/on_prem_apm_server_instruction_set.ts @@ -97,7 +97,7 @@ export function getOnPremApmServerInstructionSet({ defaultMessage: 'Check APM Server status', }), success: i18n.translate('xpack.apm.tutorial.apmServer.statusCheck.successMessage', { - defaultMessage: 'You have correctly setup APM Server', + defaultMessage: 'You have correctly set up APM Server', }), error: i18n.translate('xpack.apm.tutorial.apmServer.statusCheck.errorMessage', { defaultMessage: diff --git a/x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_services/index.ts b/x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_services/index.ts new file mode 100644 index 0000000000000..b83320d162f3c --- /dev/null +++ b/x-pack/plugins/observability_solution/apm_data_access/server/services/get_host_services/index.ts @@ -0,0 +1,185 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { rangeQuery, termQuery } from '@kbn/observability-plugin/server'; +import { + AGENT_NAME, + HOST_HOSTNAME, + HOST_NAME, + METRICSET_NAME, + SERVICE_NAME, +} from '@kbn/apm-types/es_fields'; +import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { + RollupInterval, + TimeRangeMetadata, + getBucketSize, + getPreferredBucketSizeAndDataSource, +} from '../../../common'; +import { ApmDocumentType } from '../../../common/document_type'; +import type { ApmDataAccessServicesParams } from '../get_services'; + +const MAX_SIZE = 1000; + +export interface HostServicesRequest { + filters: Record; + start: number; + end: number; + size?: number; + documentSources: TimeRangeMetadata['sources']; +} + +const suitableTypes = [ApmDocumentType.TransactionMetric, ApmDocumentType.ErrorEvent]; + +export function createGetHostServices({ apmEventClient }: ApmDataAccessServicesParams) { + return async ({ start, end, size = MAX_SIZE, filters, documentSources }: HostServicesRequest) => { + const sourcesToUse = getPreferredBucketSizeAndDataSource({ + sources: documentSources.filter((s) => suitableTypes.includes(s.documentType)), + bucketSizeInSeconds: getBucketSize({ start, end, numBuckets: 50 }).bucketSize, + }); + + const commonFiltersList: QueryDslQueryContainer[] = [ + ...rangeQuery(start, end), + { + exists: { + field: SERVICE_NAME, + }, + }, + ]; + + if (filters[HOST_NAME]) { + commonFiltersList.push({ + bool: { + should: [ + ...termQuery(HOST_NAME, filters[HOST_NAME]), + ...termQuery(HOST_HOSTNAME, filters[HOST_HOSTNAME]), + ], + minimum_should_match: 1, + }, + }); + } + // get services from transaction metrics + const metricsQuery = await apmEventClient.search('get_apm_host_services_from_metrics', { + apm: { + sources: [ + { + documentType: ApmDocumentType.TransactionMetric, + rollupInterval: RollupInterval.OneMinute, + }, + ], + }, + body: { + track_total_hits: false, + size: 0, + query: { + bool: { + filter: [ + { + bool: { + should: [ + ...termQuery(METRICSET_NAME, 'app'), + { + bool: { + must: [...termQuery(METRICSET_NAME, 'transaction')], + }, + }, + ], + minimum_should_match: 1, + }, + }, + ...commonFiltersList, + ], + }, + }, + aggs: { + services: { + terms: { + field: SERVICE_NAME, + size, + }, + aggs: { + latestAgent: { + top_metrics: { + metrics: [{ field: AGENT_NAME }], + sort: { + '@timestamp': 'desc', + }, + size: 1, + }, + }, + }, + }, + }, + }, + }); + + // get services from logs + const logsQuery = await apmEventClient.search('get_apm_host_services_from_logs', { + apm: { + sources: [ + { + documentType: ApmDocumentType.ErrorEvent, + rollupInterval: sourcesToUse.source.rollupInterval, + }, + ], + }, + body: { + track_total_hits: false, + size: 0, + query: { + bool: { + filter: commonFiltersList, + }, + }, + aggs: { + services: { + terms: { + field: SERVICE_NAME, + size, + }, + aggs: { + latestAgent: { + top_metrics: { + metrics: [{ field: AGENT_NAME }], + sort: { + '@timestamp': 'desc', + }, + size: 1, + }, + }, + }, + }, + }, + }, + }); + + const servicesListBucketsFromMetrics = metricsQuery.aggregations?.services.buckets || []; + const servicesListBucketsFromLogs = logsQuery.aggregations?.services.buckets || []; + const serviceMap = [...servicesListBucketsFromMetrics, ...servicesListBucketsFromLogs].reduce( + (acc, bucket) => { + const serviceName = bucket.key as string; + const latestAgentEntry = bucket.latestAgent.top[0]; + const latestTimestamp = latestAgentEntry.sort[0] as string; + const agentName = latestAgentEntry.metrics[AGENT_NAME] as string | null; + // dedup and get the latest timestamp + const existingService = acc.get(serviceName); + if (!existingService || existingService.latestTimestamp < latestTimestamp) { + acc.set(serviceName, { latestTimestamp, agentName }); + } + return acc; + }, + new Map() + ); + const services = Array.from(serviceMap) + .slice(0, size) + .map(([serviceName, { agentName }]) => ({ + serviceName, + agentName, + })); + return { services }; + }; +} diff --git a/x-pack/plugins/observability_solution/apm_data_access/server/services/get_services.ts b/x-pack/plugins/observability_solution/apm_data_access/server/services/get_services.ts index 03a31a1cc4534..71ae961b256b6 100644 --- a/x-pack/plugins/observability_solution/apm_data_access/server/services/get_services.ts +++ b/x-pack/plugins/observability_solution/apm_data_access/server/services/get_services.ts @@ -9,6 +9,7 @@ import { APMEventClient } from '../lib/helpers/create_es_client/create_apm_event import { createGetDocumentSources } from './get_document_sources'; import { getDocumentTypeConfig } from './get_document_type_config'; import { createGetHostNames } from './get_host_names'; +import { createGetHostServices } from './get_host_services'; export interface ApmDataAccessServicesParams { apmEventClient: APMEventClient; @@ -19,5 +20,6 @@ export function getServices(params: ApmDataAccessServicesParams) { getDocumentSources: createGetDocumentSources(params), getHostNames: createGetHostNames(params), getDocumentTypeConfig, + getHostServices: createGetHostServices(params), }; } diff --git a/x-pack/plugins/observability_solution/dataset_quality/common/rest/create_call_dataset_quality_api.ts b/x-pack/plugins/observability_solution/dataset_quality/common/rest/create_call_dataset_quality_api.ts index 39e8f8afa0eac..96da7a234d665 100644 --- a/x-pack/plugins/observability_solution/dataset_quality/common/rest/create_call_dataset_quality_api.ts +++ b/x-pack/plugins/observability_solution/dataset_quality/common/rest/create_call_dataset_quality_api.ts @@ -26,12 +26,12 @@ export type DatasetQualityClientOptions = Omit< export type DatasetQualityClient = RouteRepositoryClient< DatasetQualityServerRouteRepository, DatasetQualityClientOptions ->; +>['fetch']; export type AutoAbortedClient = RouteRepositoryClient< DatasetQualityServerRouteRepository, Omit ->; +>['fetch']; export type APIReturnType = ReturnOf< DatasetQualityServerRouteRepository, diff --git a/x-pack/plugins/observability_solution/entity_manager/docs/entity_definitions.md b/x-pack/plugins/observability_solution/entity_manager/docs/entity_definitions.md index deedb12ebf390..da02bc7f69c3f 100644 --- a/x-pack/plugins/observability_solution/entity_manager/docs/entity_definitions.md +++ b/x-pack/plugins/observability_solution/entity_manager/docs/entity_definitions.md @@ -16,13 +16,192 @@ To enable the backfill transform set a value to `history.settings.backfillSyncDe History and summary transforms will output their data to indices where history writes to time-based (monthly) indices (`.entities.v1.history..`) and summary writes to a unique indice (`.entities.v1.latest.`). For convenience we create type-based aliases on top on these indices, where the type is extracted from the `entityDefinition.type` property. For a definition of `type: service`, the data can be read through the `entities-service-history` and `entities-service-latest` aliases. -**Entity definition example**: +#### Iterating on a definition -One can create a definition with a `POST kbn:/internal/entities/definition` request, or through the [entity client](../server/lib/entity_client.ts). +One can create a definition with a request to `POST kbn:/internal/entities/definition`, or through the [entity client](../server/lib/entity_client.ts). -Given the `services_from_logs` definition below, the history transform will create one entity document per service per minute (based on `@timestamp` field, granted at least one document exist for a given bucket in the source indices), with the `logRate`, `logErrorRatio` metrics and `data_stream.type`, `sourceIndex` metadata aggregated over one minute. +When creating the definition, there are 3 main pieces to consider: +1. The core entity discovery settings +2. The metadata to collect for each entity that is identified +3. The metrics to compute for each entity that is identified -Note that it is not necessary to add the `identifyFields` as metadata as these will be automatically collected in the output documents, and that it is possible to set `identityFields` as optional. +Let's look at the most basic example, one that only discovers entities. + +```json +{ + "id": "my_hosts", + "name": "Hosts from logs data", + "description": "This definition extracts host entities from log data", + "version": "1.0.0", + "type": "host", + "indexPatterns": ["logs-*"], + "identityFields": ["host.name"], + "displayNameTemplate": "{{host.name}}", + "history": { + "timestampField": "@timestamp", + "interval": "2m", + "settings": { + "frequency": "2m" + } + } +} +``` + +This definition will look inside the `logs-*` index pattern for documents that container the field `host.name` and group them based on that value to create the entities. It will run the discovery every 2 minutes. +The documents will be of type "host" so they can be queried via `entities-host-history` or `entities-host-latest`. Beyond the basic `entity` fields, each entity document will also contain all the identify fields at the root of the document, this it is easy to find your hosts by filtering by `host.name`. Note that it is not necessary to add the `identifyFields` as metadata as these will be automatically collected in the output documents, and that it is possible to set `identityFields` as optional. + +An entity document for this definition will look like below. + +History: +```json +{ + "host": { + "name": "gke-edge-oblt-edge-oblt-pool-8fc2868f-jf56" + }, + "@timestamp": "2024-09-10T12:36:00.000Z", + "event": { + "ingested": "2024-09-10T13:06:54.211210797Z" + }, + "entity": { + "lastSeenTimestamp": "2024-09-10T12:37:59.334Z", + "identityFields": [ + "host.name" + ], + "id": "X/FDBqGTvfnAAHTrv6XfzQ==", + "definitionId": "my_hosts", + "definitionVersion": "1.0.0", + "schemaVersion": "v1", + "type": "host" + } +} +``` + +Latest: +```json +{ + "event": { + "ingested": "2024-09-10T13:07:19.042735184Z" + }, + "host": { + "name": "gke-edge-oblt-edge-oblt-pool-8fc2868f-lgmr" + }, + "entity": { + "firstSeenTimestamp": "2024-09-10T12:06:00.000Z", + "lastSeenTimestamp": "2024-09-10T13:03:59.432Z", + "id": "0j+khoOmcrluI7nhYSVnCw==", + "displayName": "gke-edge-oblt-edge-oblt-pool-8fc2868f-lgmr", + "definitionId": "my_hosts", + "definitionVersion": "1.0.0", + "identityFields": [ + "host.name" + ], + "type": "host", + "schemaVersion": "v1" + } +} +``` + +Let's extend our definition by adding some metadata and a metric to compute. We can do this by issuing a request to `PATCH kbn:/internal/entities/definition/my_hosts` with the following body: + +```json +{ + "version": "1.1.0", + "metadata": [ + "cloud.provider" + ], + "metrics": [ + { + "name": "cpu_usage_avg", + "equation": "A", + "metrics": [ + { + "name": "A", + "aggregation": "avg", + "field": "system.cpu.total.norm.pct" + } + ] + } + ] +} +``` + +Once that is done, we can view how the shape of the entity documents change. + +History: +```json +{ + "cloud": { + "provider": [ + "gcp" + ] + }, + "host": { + "name": "opbeans-go-nsn-7f8749688-qfw4t" + }, + "@timestamp": "2024-09-10T12:58:00.000Z", + "event": { + "ingested": "2024-09-10T13:28:50.505448228Z" + }, + "entity": { + "lastSeenTimestamp": "2024-09-10T12:59:57.501Z", + "schemaVersion": "v1", + "definitionVersion": "1.1.0", + "identityFields": [ + "host.name" + ], + "metrics": { + "log_rate": 183 + }, + "id": "8yUkkMImEDcbgXmMIm7rkA==", + "type": "host", + "definitionId": "my_hosts" + } +} +} +``` + +Latest: +```json +{ + "cloud": { + "provider": [ + "gcp" + ] + }, + "host": { + "name": "opbeans-go-nsn-7f8749688-qfw4t" + }, + "event": { + "ingested": "2024-09-10T13:29:15.028655880Z" + }, + "entity": { + "lastSeenTimestamp": "2024-09-10T13:25:59.278Z", + "schemaVersion": "v1", + "definitionVersion": "1.1.0", + "displayName": "opbeans-go-nsn-7f8749688-qfw4t", + "identityFields": [ + "host.name" + ], + "id": "8yUkkMImEDcbgXmMIm7rkA==", + "metrics": { + "log_rate": 203 + }, + "type": "host", + "firstSeenTimestamp": "2024-09-10T12:06:00.000Z", + "definitionId": "my_hosts" + } +} +``` + +The key additions to notice are: +1. The new root field `cloud.provider` +2. The new metric field `entity.metrics.log_rate` + +Through this iterative process you can craft a definition to meet your needs, verifying along the way that the data is captured as you expect. +In case the data is not captured correctly, a common cause is due to the exact timings of the two transforms. +If the history transform is lagging behind, then the latest transform will not have any data in its lookback window to capture. + +**Entity definition examples**: __service_from_logs definition__
    diff --git a/x-pack/plugins/observability_solution/entity_manager/public/lib/entity_client.ts b/x-pack/plugins/observability_solution/entity_manager/public/lib/entity_client.ts
    index c4a2897cbc474..dc22a0b991b0d 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/public/lib/entity_client.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/public/lib/entity_client.ts
    @@ -20,7 +20,7 @@ import {
     import type { EntityManagerRouteRepository } from '../../server';
     import { EntityManagerUnauthorizedError } from './errors';
     
    -type EntityManagerRepositoryClient = RouteRepositoryClient;
    +type EntityManagerRepositoryClient = RouteRepositoryClient;
     
     type QueryParamOf = Exclude['query'];
     
    @@ -36,7 +36,7 @@ type CreateEntityDefinitionQuery = QueryParamOf<
     >;
     
     export class EntityClient {
    -  public readonly repositoryClient: EntityManagerRepositoryClient;
    +  public readonly repositoryClient: EntityManagerRepositoryClient['fetch'];
     
       constructor(core: CoreStart | CoreSetup) {
         this.repositoryClient = createRepositoryClient(core).fetch;
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/client/index.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/client/index.ts
    new file mode 100644
    index 0000000000000..90562264851ce
    --- /dev/null
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/client/index.ts
    @@ -0,0 +1,29 @@
    +/*
    + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
    + * or more contributor license agreements. Licensed under the Elastic License
    + * 2.0; you may not use this file except in compliance with the Elastic License
    + * 2.0.
    + */
    +
    +import type { IScopedClusterClient, SavedObjectsClientContract } from '@kbn/core/server';
    +import { EntityDefinition } from '@kbn/entities-schema';
    +import { findEntityDefinitions } from '../entities/find_entity_definition';
    +import type { EntityDefinitionWithState } from '../entities/types';
    +
    +export class EntityManagerClient {
    +  constructor(
    +    private readonly esClient: IScopedClusterClient,
    +    private readonly soClient: SavedObjectsClientContract
    +  ) {}
    +
    +  findEntityDefinitions({ page, perPage }: { page?: number; perPage?: number } = {}): Promise<
    +    EntityDefinition[] | EntityDefinitionWithState[]
    +  > {
    +    return findEntityDefinitions({
    +      esClient: this.esClient.asCurrentUser,
    +      soClient: this.soClient,
    +      page,
    +      perPage,
    +    });
    +  }
    +}
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/built_in/services.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/built_in/services.ts
    index e52abf4142fb4..aa1d86ee25adf 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/built_in/services.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/built_in/services.ts
    @@ -20,7 +20,7 @@ const serviceTransactionFilter = (additionalFilters: string[] = []) => {
     
     export const builtInServicesFromLogsEntityDefinition: EntityDefinition =
       entityDefinitionSchema.parse({
    -    version: '1.0.2',
    +    version: '1.0.3',
         id: `${BUILT_IN_ID_PREFIX}services_from_ecs_data`,
         name: 'Services from ECS data',
         description:
    @@ -46,7 +46,7 @@ export const builtInServicesFromLogsEntityDefinition: EntityDefinition =
         displayNameTemplate: '{{service.name}}{{#service.environment}}:{{.}}{{/service.environment}}',
         metadata: [
           { source: '_index', destination: 'sourceIndex' },
    -      { source: 'agent.name', limit: 100 },
    +      { source: 'agent.name', aggregation: { type: 'terms', limit: 100 } },
           'data_stream.type',
           'service.environment',
           'service.name',
    @@ -121,7 +121,7 @@ export const builtInServicesFromLogsEntityDefinition: EntityDefinition =
               {
                 name: 'A',
                 aggregation: 'doc_count',
    -            filter: 'log.level: * OR error.log.level: *',
    +            filter: 'data_stream.type: logs',
               },
             ],
           },
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/find_entity_definition.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/find_entity_definition.ts
    index 0ea681676e9b1..6932394a14e69 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/find_entity_definition.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/find_entity_definition.ts
    @@ -5,9 +5,10 @@
      * 2.0.
      */
     
    -import { compact } from 'lodash';
    +import { compact, forEach, reduce } from 'lodash';
     import { ElasticsearchClient, SavedObjectsClientContract } from '@kbn/core/server';
     import { EntityDefinition } from '@kbn/entities-schema';
    +import { NodesIngestTotal } from '@elastic/elasticsearch/lib/api/types';
     import { SO_ENTITY_DEFINITION_TYPE } from '../../saved_objects';
     import {
       generateHistoryTransformId,
    @@ -19,7 +20,7 @@ import {
       generateLatestIndexTemplateId,
     } from './helpers/generate_component_id';
     import { BUILT_IN_ID_PREFIX } from './built_in';
    -import { EntityDefinitionWithState } from './types';
    +import { EntityDefinitionState, EntityDefinitionWithState } from './types';
     import { isBackfillEnabled } from './helpers/is_backfill_enabled';
     
     export async function findEntityDefinitions({
    @@ -29,6 +30,7 @@ export async function findEntityDefinitions({
       id,
       page = 1,
       perPage = 10,
    +  includeState = false,
     }: {
       soClient: SavedObjectsClientContract;
       esClient: ElasticsearchClient;
    @@ -36,7 +38,8 @@ export async function findEntityDefinitions({
       id?: string;
       page?: number;
       perPage?: number;
    -}): Promise {
    +  includeState?: boolean;
    +}): Promise {
       const filter = compact([
         typeof builtIn === 'boolean'
           ? `${SO_ENTITY_DEFINITION_TYPE}.attributes.id:(${BUILT_IN_ID_PREFIX}*)`
    @@ -50,6 +53,10 @@ export async function findEntityDefinitions({
         perPage,
       });
     
    +  if (!includeState) {
    +    return response.saved_objects.map(({ attributes }) => attributes);
    +  }
    +
       return Promise.all(
         response.saved_objects.map(async ({ attributes }) => {
           const state = await getEntityDefinitionState(esClient, attributes);
    @@ -62,15 +69,18 @@ export async function findEntityDefinitionById({
       id,
       esClient,
       soClient,
    +  includeState = false,
     }: {
       id: string;
       esClient: ElasticsearchClient;
       soClient: SavedObjectsClientContract;
    +  includeState?: boolean;
     }) {
       const [definition] = await findEntityDefinitions({
         esClient,
         soClient,
         id,
    +    includeState,
         perPage: 1,
       });
     
    @@ -80,43 +90,126 @@ export async function findEntityDefinitionById({
     async function getEntityDefinitionState(
       esClient: ElasticsearchClient,
       definition: EntityDefinition
    -) {
    -  const historyIngestPipelineId = generateHistoryIngestPipelineId(definition);
    -  const latestIngestPipelineId = generateLatestIngestPipelineId(definition);
    +): Promise {
    +  const [ingestPipelines, transforms, indexTemplates] = await Promise.all([
    +    getIngestPipelineState({ definition, esClient }),
    +    getTransformState({ definition, esClient }),
    +    getIndexTemplatesState({ definition, esClient }),
    +  ]);
    +
    +  const installed =
    +    ingestPipelines.every((pipeline) => pipeline.installed) &&
    +    transforms.every((transform) => transform.installed) &&
    +    indexTemplates.every((template) => template.installed);
    +  const running = transforms.every((transform) => transform.running);
    +
    +  return {
    +    installed,
    +    running,
    +    components: { transforms, ingestPipelines, indexTemplates },
    +  };
    +}
    +
    +async function getTransformState({
    +  definition,
    +  esClient,
    +}: {
    +  definition: EntityDefinition;
    +  esClient: ElasticsearchClient;
    +}) {
       const transformIds = [
         generateHistoryTransformId(definition),
         generateLatestTransformId(definition),
         ...(isBackfillEnabled(definition) ? [generateHistoryBackfillTransformId(definition)] : []),
       ];
    -  const [ingestPipelines, indexTemplatesInstalled, transforms] = await Promise.all([
    -    esClient.ingest.getPipeline(
    -      {
    -        id: `${historyIngestPipelineId},${latestIngestPipelineId}`,
    -      },
    -      { ignore: [404] }
    -    ),
    -    esClient.indices.existsIndexTemplate({
    -      name: `${
    -        (generateLatestIndexTemplateId(definition), generateHistoryIndexTemplateId(definition))
    -      }`,
    -    }),
    -    esClient.transform.getTransformStats({
    -      transform_id: transformIds,
    +
    +  const transformStats = await Promise.all(
    +    transformIds.map((id) => esClient.transform.getTransformStats({ transform_id: id }))
    +  ).then((results) => results.map(({ transforms }) => transforms).flat());
    +
    +  return transformIds.map((id) => {
    +    const stats = transformStats.find((transform) => transform.id === id);
    +    if (!stats) {
    +      return { id, installed: false, running: false };
    +    }
    +
    +    return {
    +      id,
    +      installed: true,
    +      running: stats.state === 'started' || stats.state === 'indexing',
    +      stats,
    +    };
    +  });
    +}
    +
    +async function getIngestPipelineState({
    +  definition,
    +  esClient,
    +}: {
    +  definition: EntityDefinition;
    +  esClient: ElasticsearchClient;
    +}) {
    +  const ingestPipelineIds = [
    +    generateHistoryIngestPipelineId(definition),
    +    generateLatestIngestPipelineId(definition),
    +  ];
    +  const [ingestPipelines, ingestPipelinesStats] = await Promise.all([
    +    esClient.ingest.getPipeline({ id: ingestPipelineIds.join(',') }, { ignore: [404] }),
    +    esClient.nodes.stats({
    +      metric: 'ingest',
    +      filter_path: ingestPipelineIds.map((id) => `nodes.*.ingest.pipelines.${id}`),
         }),
       ]);
     
    -  const ingestPipelinesInstalled = !!(
    -    ingestPipelines[historyIngestPipelineId] && ingestPipelines[latestIngestPipelineId]
    +  const ingestStatsByPipeline = reduce(
    +    ingestPipelinesStats.nodes,
    +    (pipelines, { ingest }) => {
    +      forEach(ingest?.pipelines, (value: NodesIngestTotal, key: string) => {
    +        if (!pipelines[key]) {
    +          pipelines[key] = { count: 0, failed: 0 };
    +        }
    +        pipelines[key].count += value.count ?? 0;
    +        pipelines[key].failed += value.failed ?? 0;
    +      });
    +      return pipelines;
    +    },
    +    {} as Record
       );
    -  const transformsInstalled = transforms.count === transformIds.length;
    -  const transformsRunning =
    -    transformsInstalled &&
    -    transforms.transforms.every(
    -      (transform) => transform.state === 'started' || transform.state === 'indexing'
    -    );
     
    -  return {
    -    installed: ingestPipelinesInstalled && transformsInstalled && indexTemplatesInstalled,
    -    running: transformsRunning,
    -  };
    +  return ingestPipelineIds.map((id) => ({
    +    id,
    +    installed: !!ingestPipelines[id],
    +    stats: ingestStatsByPipeline[id],
    +  }));
    +}
    +
    +async function getIndexTemplatesState({
    +  definition,
    +  esClient,
    +}: {
    +  definition: EntityDefinition;
    +  esClient: ElasticsearchClient;
    +}) {
    +  const indexTemplatesIds = [
    +    generateLatestIndexTemplateId(definition),
    +    generateHistoryIndexTemplateId(definition),
    +  ];
    +  const templates = await Promise.all(
    +    indexTemplatesIds.map((id) =>
    +      esClient.indices
    +        .getIndexTemplate({ name: id }, { ignore: [404] })
    +        .then(({ index_templates: indexTemplates }) => indexTemplates?.[0])
    +    )
    +  ).then(compact);
    +  return indexTemplatesIds.map((id) => {
    +    const template = templates.find(({ name }) => name === id);
    +    if (!template) {
    +      return { id, installed: false };
    +    }
    +    return {
    +      id,
    +      installed: true,
    +      stats: template.index_template,
    +    };
    +  });
     }
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/helpers/is_builtin_definition.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/helpers/is_builtin_definition.ts
    new file mode 100644
    index 0000000000000..3ad6542cbdd8c
    --- /dev/null
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/helpers/is_builtin_definition.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; you may not use this file except in compliance with the Elastic License
    + * 2.0.
    + */
    +
    +import { EntityDefinition } from '@kbn/entities-schema';
    +import { BUILT_IN_ID_PREFIX } from '../built_in';
    +
    +export function isBuiltinDefinition(definition: EntityDefinition) {
    +  return definition.id.startsWith(BUILT_IN_ID_PREFIX);
    +}
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/__snapshots__/generate_history_processors.test.ts.snap b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/__snapshots__/generate_history_processors.test.ts.snap
    index a013388882a3f..c2e4605e5f909 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/__snapshots__/generate_history_processors.test.ts.snap
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/__snapshots__/generate_history_processors.test.ts.snap
    @@ -1,6 +1,157 @@
     // Jest Snapshot v1, https://goo.gl/fbAQLP
     
    -exports[`generateHistoryProcessors(definition) should genearte a valid pipeline 1`] = `
    +exports[`generateHistoryProcessors(definition) should generate a valid pipeline for builtin definition 1`] = `
    +Array [
    +  Object {
    +    "set": Object {
    +      "field": "event.ingested",
    +      "value": "{{{_ingest.timestamp}}}",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.type",
    +      "value": "service",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.definitionId",
    +      "value": "builtin_mock_entity_definition",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.definitionVersion",
    +      "value": "1.0.0",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.schemaVersion",
    +      "value": "v1",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.identityFields",
    +      "value": Array [
    +        "log.logger",
    +        "event.category",
    +      ],
    +    },
    +  },
    +  Object {
    +    "script": Object {
    +      "description": "Generated the entity.id field",
    +      "source": "// This function will recursively collect all the values of a HashMap of HashMaps
    +Collection collectValues(HashMap subject) {
    +  Collection values = new ArrayList();
    +  // Iterate through the values
    +  for(Object value: subject.values()) {
    +    // If the value is a HashMap, recurse
    +    if (value instanceof HashMap) {
    +      values.addAll(collectValues((HashMap) value));
    +    } else {
    +      values.add(String.valueOf(value));
    +    }
    +  }
    +  return values;
    +}
    +// Create the string builder
    +StringBuilder entityId = new StringBuilder();
    +if (ctx[\\"entity\\"][\\"identity\\"] != null) {
    +  // Get the values as a collection
    +  Collection values = collectValues(ctx[\\"entity\\"][\\"identity\\"]);
    +  // Convert to a list and sort
    +  List sortedValues = new ArrayList(values);
    +  Collections.sort(sortedValues);
    +  // Create comma delimited string
    +  for(String instanceValue: sortedValues) {
    +    entityId.append(instanceValue);
    +    entityId.append(\\":\\");
    +  }
    +  // Assign the entity.id
    +  ctx[\\"entity\\"][\\"id\\"] = entityId.length() > 0 ? entityId.substring(0, entityId.length() - 1) : \\"unknown\\";
    +}",
    +    },
    +  },
    +  Object {
    +    "fingerprint": Object {
    +      "fields": Array [
    +        "entity.id",
    +      ],
    +      "method": "MurmurHash3",
    +      "target_field": "entity.id",
    +    },
    +  },
    +  Object {
    +    "script": Object {
    +      "source": "if (ctx.entity?.metadata?.tags != null) {
    +  ctx.tags = ctx.entity.metadata.tags.keySet();
    +}
    +if (ctx.entity?.metadata?.host?.name != null) {
    +  if (ctx.host == null) {
    +    ctx.host = new HashMap();
    +  }
    +  ctx.host.name = ctx.entity.metadata.host.name.keySet();
    +}
    +if (ctx.entity?.metadata?.host?.os?.name != null) {
    +  if (ctx.host == null) {
    +    ctx.host = new HashMap();
    +  }
    +  if (ctx.host.os == null) {
    +    ctx.host.os = new HashMap();
    +  }
    +  ctx.host.os.name = ctx.entity.metadata.host.os.name.keySet();
    +}
    +if (ctx.entity?.metadata?.sourceIndex != null) {
    +  ctx.sourceIndex = ctx.entity.metadata.sourceIndex.keySet();
    +}",
    +    },
    +  },
    +  Object {
    +    "remove": Object {
    +      "field": "entity.metadata",
    +      "ignore_missing": true,
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "log.logger",
    +      "if": "ctx.entity?.identity?.log?.logger != null",
    +      "value": "{{entity.identity.log.logger}}",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "event.category",
    +      "if": "ctx.entity?.identity?.event?.category != null",
    +      "value": "{{entity.identity.event.category}}",
    +    },
    +  },
    +  Object {
    +    "remove": Object {
    +      "field": "entity.identity",
    +      "ignore_missing": true,
    +    },
    +  },
    +  Object {
    +    "date_index_name": Object {
    +      "date_formats": Array [
    +        "UNIX_MS",
    +        "ISO8601",
    +        "yyyy-MM-dd'T'HH:mm:ss.SSSXX",
    +      ],
    +      "date_rounding": "M",
    +      "field": "@timestamp",
    +      "index_name_prefix": ".entities.v1.history.builtin_mock_entity_definition.",
    +    },
    +  },
    +]
    +`;
    +
    +exports[`generateHistoryProcessors(definition) should generate a valid pipeline for custom definition 1`] = `
     Array [
       Object {
         "set": Object {
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/__snapshots__/generate_latest_processors.test.ts.snap b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/__snapshots__/generate_latest_processors.test.ts.snap
    index f866e34fbb69b..f277b3ac84ab8 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/__snapshots__/generate_latest_processors.test.ts.snap
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/__snapshots__/generate_latest_processors.test.ts.snap
    @@ -1,6 +1,123 @@
     // Jest Snapshot v1, https://goo.gl/fbAQLP
     
    -exports[`generateLatestProcessors(definition) should genearte a valid pipeline 1`] = `
    +exports[`generateLatestProcessors(definition) should generate a valid pipeline for builtin definition 1`] = `
    +Array [
    +  Object {
    +    "set": Object {
    +      "field": "event.ingested",
    +      "value": "{{{_ingest.timestamp}}}",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.type",
    +      "value": "service",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.definitionId",
    +      "value": "builtin_mock_entity_definition",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.definitionVersion",
    +      "value": "1.0.0",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.schemaVersion",
    +      "value": "v1",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.identityFields",
    +      "value": Array [
    +        "log.logger",
    +        "event.category",
    +      ],
    +    },
    +  },
    +  Object {
    +    "script": Object {
    +      "source": "if (ctx.entity?.metadata?.tags.data != null) {
    +  ctx.tags = ctx.entity.metadata.tags.data.keySet();
    +}
    +if (ctx.entity?.metadata?.host?.name.data != null) {
    +  if (ctx.host == null) {
    +    ctx.host = new HashMap();
    +  }
    +  ctx.host.name = ctx.entity.metadata.host.name.data.keySet();
    +}
    +if (ctx.entity?.metadata?.host?.os?.name.data != null) {
    +  if (ctx.host == null) {
    +    ctx.host = new HashMap();
    +  }
    +  if (ctx.host.os == null) {
    +    ctx.host.os = new HashMap();
    +  }
    +  ctx.host.os.name = ctx.entity.metadata.host.os.name.data.keySet();
    +}
    +if (ctx.entity?.metadata?.sourceIndex.data != null) {
    +  ctx.sourceIndex = ctx.entity.metadata.sourceIndex.data.keySet();
    +}",
    +    },
    +  },
    +  Object {
    +    "remove": Object {
    +      "field": "entity.metadata",
    +      "ignore_missing": true,
    +    },
    +  },
    +  Object {
    +    "dot_expander": Object {
    +      "field": "log.logger",
    +      "path": "entity.identity.log.logger.top_metric",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "log.logger",
    +      "value": "{{entity.identity.log.logger.top_metric.log.logger}}",
    +    },
    +  },
    +  Object {
    +    "dot_expander": Object {
    +      "field": "event.category",
    +      "path": "entity.identity.event.category.top_metric",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "event.category",
    +      "value": "{{entity.identity.event.category.top_metric.event.category}}",
    +    },
    +  },
    +  Object {
    +    "remove": Object {
    +      "field": "entity.identity",
    +      "ignore_missing": true,
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "entity.displayName",
    +      "value": "{{log.logger}}{{#event.category}}:{{.}}{{/event.category}}",
    +    },
    +  },
    +  Object {
    +    "set": Object {
    +      "field": "_index",
    +      "value": ".entities.v1.latest.builtin_mock_entity_definition",
    +    },
    +  },
    +]
    +`;
    +
    +exports[`generateLatestProcessors(definition) should generate a valid pipeline for custom definition 1`] = `
     Array [
       Object {
         "set": Object {
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_history_processors.test.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_history_processors.test.ts
    index 697b3a5223f9f..717241b89143d 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_history_processors.test.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_history_processors.test.ts
    @@ -5,12 +5,17 @@
      * 2.0.
      */
     
    -import { entityDefinition } from '../helpers/fixtures/entity_definition';
    +import { entityDefinition, builtInEntityDefinition } from '../helpers/fixtures';
     import { generateHistoryProcessors } from './generate_history_processors';
     
     describe('generateHistoryProcessors(definition)', () => {
    -  it('should genearte a valid pipeline', () => {
    +  it('should generate a valid pipeline for custom definition', () => {
         const processors = generateHistoryProcessors(entityDefinition);
         expect(processors).toMatchSnapshot();
       });
    +
    +  it('should generate a valid pipeline for builtin definition', () => {
    +    const processors = generateHistoryProcessors(builtInEntityDefinition);
    +    expect(processors).toMatchSnapshot();
    +  });
     });
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_history_processors.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_history_processors.ts
    index 0dd2bb0a8f465..d51ab0be75db1 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_history_processors.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_history_processors.ts
    @@ -5,17 +5,27 @@
      * 2.0.
      */
     
    -import { EntityDefinition, ENTITY_SCHEMA_VERSION_V1 } from '@kbn/entities-schema';
    +import { EntityDefinition, ENTITY_SCHEMA_VERSION_V1, MetadataField } from '@kbn/entities-schema';
     import {
       initializePathScript,
       cleanScript,
     } from '../helpers/ingest_pipeline_script_processor_helpers';
     import { generateHistoryIndexName } from '../helpers/generate_component_id';
    +import { isBuiltinDefinition } from '../helpers/is_builtin_definition';
     
    -function mapDestinationToPainless(field: string) {
    +function getMetadataSourceField({ aggregation, destination, source }: MetadataField) {
    +  if (aggregation.type === 'terms') {
    +    return `ctx.entity.metadata.${destination}.keySet()`;
    +  } else if (aggregation.type === 'top_value') {
    +    return `ctx.entity.metadata.${destination}.top_value["${source}"]`;
    +  }
    +}
    +
    +function mapDestinationToPainless(metadata: MetadataField) {
    +  const field = metadata.destination;
       return `
         ${initializePathScript(field)}
    -    ctx.${field} = ctx.entity.metadata.${field}.keySet();
    +    ctx.${field} = ${getMetadataSourceField(metadata)};
       `;
     }
     
    @@ -24,15 +34,27 @@ function createMetadataPainlessScript(definition: EntityDefinition) {
         return '';
       }
     
    -  return definition.metadata.reduce((acc, def) => {
    -    const destination = def.destination;
    +  return definition.metadata.reduce((acc, metadata) => {
    +    const { destination, source } = metadata;
         const optionalFieldPath = destination.replaceAll('.', '?.');
    -    const next = `
    -      if (ctx.entity?.metadata?.${optionalFieldPath} != null) {
    -        ${mapDestinationToPainless(destination)}
    -      }
    -    `;
    -    return `${acc}\n${next}`;
    +
    +    if (metadata.aggregation.type === 'terms') {
    +      const next = `
    +        if (ctx.entity?.metadata?.${optionalFieldPath} != null) {
    +          ${mapDestinationToPainless(metadata)}
    +        }
    +      `;
    +      return `${acc}\n${next}`;
    +    } else if (metadata.aggregation.type === 'top_value') {
    +      const next = `
    +        if (ctx.entity?.metadata?.${optionalFieldPath}?.top_value["${source}"] != null) {
    +          ${mapDestinationToPainless(metadata)}
    +        }
    +      `;
    +      return `${acc}\n${next}`;
    +    }
    +
    +    return acc;
       }, '');
     }
     
    @@ -46,6 +68,39 @@ function liftIdentityFieldsToDocumentRoot(definition: EntityDefinition) {
       }));
     }
     
    +function getCustomIngestPipelines(definition: EntityDefinition) {
    +  if (isBuiltinDefinition(definition)) {
    +    return [];
    +  }
    +
    +  return [
    +    {
    +      pipeline: {
    +        ignore_missing_pipeline: true,
    +        name: `${definition.id}@platform`,
    +      },
    +    },
    +    {
    +      pipeline: {
    +        ignore_missing_pipeline: true,
    +        name: `${definition.id}-history@platform`,
    +      },
    +    },
    +    {
    +      pipeline: {
    +        ignore_missing_pipeline: true,
    +        name: `${definition.id}@custom`,
    +      },
    +    },
    +    {
    +      pipeline: {
    +        ignore_missing_pipeline: true,
    +        name: `${definition.id}-history@custom`,
    +      },
    +    },
    +  ];
    +}
    +
     export function generateHistoryProcessors(definition: EntityDefinition) {
       return [
         {
    @@ -162,30 +217,6 @@ export function generateHistoryProcessors(definition: EntityDefinition) {
             date_formats: ['UNIX_MS', 'ISO8601', "yyyy-MM-dd'T'HH:mm:ss.SSSXX"],
           },
         },
    -    {
    -      pipeline: {
    -        ignore_missing_pipeline: true,
    -        name: `${definition.id}@platform`,
    -      },
    -    },
    -    {
    -      pipeline: {
    -        ignore_missing_pipeline: true,
    -        name: `${definition.id}-history@platform`,
    -      },
    -    },
    -
    -    {
    -      pipeline: {
    -        ignore_missing_pipeline: true,
    -        name: `${definition.id}@custom`,
    -      },
    -    },
    -    {
    -      pipeline: {
    -        ignore_missing_pipeline: true,
    -        name: `${definition.id}-history@custom`,
    -      },
    -    },
    +    ...getCustomIngestPipelines(definition),
       ];
     }
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_latest_processors.test.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_latest_processors.test.ts
    index b6a10ce3db347..3cc75eee74b15 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_latest_processors.test.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_latest_processors.test.ts
    @@ -5,12 +5,17 @@
      * 2.0.
      */
     
    -import { entityDefinition } from '../helpers/fixtures/entity_definition';
    +import { entityDefinition, builtInEntityDefinition } from '../helpers/fixtures';
     import { generateLatestProcessors } from './generate_latest_processors';
     
     describe('generateLatestProcessors(definition)', () => {
    -  it('should genearte a valid pipeline', () => {
    +  it('should generate a valid pipeline for custom definition', () => {
         const processors = generateLatestProcessors(entityDefinition);
         expect(processors).toMatchSnapshot();
       });
    +
    +  it('should generate a valid pipeline for builtin definition', () => {
    +    const processors = generateLatestProcessors(builtInEntityDefinition);
    +    expect(processors).toMatchSnapshot();
    +  });
     });
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_latest_processors.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_latest_processors.ts
    index f1a45d297554e..16823221fffb3 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_latest_processors.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/ingest_pipeline/generate_latest_processors.ts
    @@ -5,17 +5,27 @@
      * 2.0.
      */
     
    -import { EntityDefinition, ENTITY_SCHEMA_VERSION_V1 } from '@kbn/entities-schema';
    +import { EntityDefinition, ENTITY_SCHEMA_VERSION_V1, MetadataField } from '@kbn/entities-schema';
     import {
       initializePathScript,
       cleanScript,
     } from '../helpers/ingest_pipeline_script_processor_helpers';
     import { generateLatestIndexName } from '../helpers/generate_component_id';
    +import { isBuiltinDefinition } from '../helpers/is_builtin_definition';
     
    -function mapDestinationToPainless(field: string) {
    +function getMetadataSourceField({ aggregation, destination, source }: MetadataField) {
    +  if (aggregation.type === 'terms') {
    +    return `ctx.entity.metadata.${destination}.data.keySet()`;
    +  } else if (aggregation.type === 'top_value') {
    +    return `ctx.entity.metadata.${destination}.top_value["${destination}"]`;
    +  }
    +}
    +
    +function mapDestinationToPainless(metadata: MetadataField) {
    +  const field = metadata.destination;
       return `
         ${initializePathScript(field)}
    -    ctx.${field} = ctx.entity.metadata.${field}.data.keySet();
    +    ctx.${field} = ${getMetadataSourceField(metadata)};
       `;
     }
     
    @@ -24,15 +34,27 @@ function createMetadataPainlessScript(definition: EntityDefinition) {
         return '';
       }
     
    -  return definition.metadata.reduce((acc, def) => {
    -    const destination = def.destination || def.source;
    +  return definition.metadata.reduce((acc, metadata) => {
    +    const destination = metadata.destination;
         const optionalFieldPath = destination.replaceAll('.', '?.');
    -    const next = `
    -      if (ctx.entity?.metadata?.${optionalFieldPath}.data != null) {
    -        ${mapDestinationToPainless(destination)}
    -      }
    -    `;
    -    return `${acc}\n${next}`;
    +
    +    if (metadata.aggregation.type === 'terms') {
    +      const next = `
    +        if (ctx.entity?.metadata?.${optionalFieldPath}.data != null) {
    +          ${mapDestinationToPainless(metadata)}
    +        }
    +      `;
    +      return `${acc}\n${next}`;
    +    } else if (metadata.aggregation.type === 'top_value') {
    +      const next = `
    +        if (ctx.entity?.metadata?.${optionalFieldPath}?.top_value["${destination}"] != null) {
    +          ${mapDestinationToPainless(metadata)}
    +        }
    +      `;
    +      return `${acc}\n${next}`;
    +    }
    +
    +    return acc;
       }, '');
     }
     
    @@ -63,6 +85,39 @@ function liftIdentityFieldsToDocumentRoot(definition: EntityDefinition) {
         .flat();
     }
     
    +function getCustomIngestPipelines(definition: EntityDefinition) {
    +  if (isBuiltinDefinition(definition)) {
    +    return [];
    +  }
    +
    +  return [
    +    {
    +      pipeline: {
    +        ignore_missing_pipeline: true,
    +        name: `${definition.id}@platform`,
    +      },
    +    },
    +    {
    +      pipeline: {
    +        ignore_missing_pipeline: true,
    +        name: `${definition.id}-latest@platform`,
    +      },
    +    },
    +    {
    +      pipeline: {
    +        ignore_missing_pipeline: true,
    +        name: `${definition.id}@custom`,
    +      },
    +    },
    +    {
    +      pipeline: {
    +        ignore_missing_pipeline: true,
    +        name: `${definition.id}-latest@custom`,
    +      },
    +    },
    +  ];
    +}
    +
     export function generateLatestProcessors(definition: EntityDefinition) {
       return [
         {
    @@ -135,30 +190,6 @@ export function generateLatestProcessors(definition: EntityDefinition) {
             value: `${generateLatestIndexName(definition)}`,
           },
         },
    -    {
    -      pipeline: {
    -        ignore_missing_pipeline: true,
    -        name: `${definition.id}@platform`,
    -      },
    -    },
    -    {
    -      pipeline: {
    -        ignore_missing_pipeline: true,
    -        name: `${definition.id}-latest@platform`,
    -      },
    -    },
    -    {
    -      pipeline: {
    -        ignore_missing_pipeline: true,
    -        name: `${definition.id}@custom`,
    -      },
    -    },
    -
    -    {
    -      pipeline: {
    -        ignore_missing_pipeline: true,
    -        name: `${definition.id}-latest@custom`,
    -      },
    -    },
    +    ...getCustomIngestPipelines(definition),
       ];
     }
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/install_entity_definition.test.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/install_entity_definition.test.ts
    index e09496762d921..5cee21dc43a07 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/install_entity_definition.test.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/install_entity_definition.test.ts
    @@ -354,6 +354,7 @@ describe('install_entity_definition', () => {
             version: semver.inc(mockEntityDefinition.version, 'major') ?? '0.0.0',
           };
           const esClient = elasticsearchClientMock.createScopedClusterClient().asCurrentUser;
    +      esClient.transform.getTransformStats.mockResolvedValue({ transforms: [], count: 0 });
           const soClient = savedObjectsClientMock.create();
     
           soClient.find.mockResolvedValueOnce({
    @@ -391,6 +392,7 @@ describe('install_entity_definition', () => {
             version: semver.inc(mockEntityDefinition.version, 'major') ?? '0.0.0',
           };
           const esClient = elasticsearchClientMock.createScopedClusterClient().asCurrentUser;
    +      esClient.transform.getTransformStats.mockResolvedValue({ transforms: [], count: 0 });
           const soClient = savedObjectsClientMock.create();
     
           soClient.find.mockResolvedValueOnce({
    @@ -426,6 +428,7 @@ describe('install_entity_definition', () => {
     
         it('should reinstall when failed installation', async () => {
           const esClient = elasticsearchClientMock.createScopedClusterClient().asCurrentUser;
    +      esClient.transform.getTransformStats.mockResolvedValue({ transforms: [], count: 0 });
           const soClient = savedObjectsClientMock.create();
     
           soClient.find.mockResolvedValueOnce({
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/install_entity_definition.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/install_entity_definition.ts
    index 54e1a4cffcc39..7d6dee4fb2ced 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/install_entity_definition.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/install_entity_definition.ts
    @@ -39,8 +39,8 @@ import { generateEntitiesLatestIndexTemplateConfig } from './templates/entities_
     import { generateEntitiesHistoryIndexTemplateConfig } from './templates/entities_history_template';
     import { EntityIdConflict } from './errors/entity_id_conflict_error';
     import { EntityDefinitionNotFound } from './errors/entity_not_found';
    -import { EntityDefinitionWithState } from './types';
     import { mergeEntityDefinitionUpdate } from './helpers/merge_definition_update';
    +import { EntityDefinitionWithState } from './types';
     import { stopTransforms } from './stop_transforms';
     import { deleteTransforms } from './delete_transforms';
     
    @@ -136,6 +136,7 @@ export async function installBuiltInEntityDefinitions({
           esClient,
           soClient,
           id: builtInDefinition.id,
    +      includeState: true,
         });
     
         if (!installedDefinition) {
    @@ -148,7 +149,12 @@ export async function installBuiltInEntityDefinitions({
         }
     
         // verify existing installation
    -    if (!shouldReinstallBuiltinDefinition(installedDefinition, builtInDefinition)) {
    +    if (
    +      !shouldReinstallBuiltinDefinition(
    +        installedDefinition as EntityDefinitionWithState,
    +        builtInDefinition
    +      )
    +    ) {
           return installedDefinition;
         }
     
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/__snapshots__/entities_history_template.test.ts.snap b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/__snapshots__/entities_history_template.test.ts.snap
    index 2d0aa66c662e6..fd4ed11f8cb94 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/__snapshots__/entities_history_template.test.ts.snap
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/__snapshots__/entities_history_template.test.ts.snap
    @@ -1,6 +1,77 @@
     // Jest Snapshot v1, https://goo.gl/fbAQLP
     
    -exports[`generateEntitiesHistoryIndexTemplateConfig(definition) should generate a valid index template 1`] = `
    +exports[`generateEntitiesHistoryIndexTemplateConfig(definition) should generate a valid index template for builtin definition 1`] = `
    +Object {
    +  "_meta": Object {
    +    "description": "Index template for indices managed by the Elastic Entity Model's entity discovery framework for the history dataset",
    +    "ecs_version": "8.0.0",
    +    "managed": true,
    +    "managed_by": "elastic_entity_model",
    +  },
    +  "composed_of": Array [
    +    "entities_v1_history_base",
    +    "entities_v1_entity",
    +    "entities_v1_event",
    +  ],
    +  "ignore_missing_component_templates": Array [],
    +  "index_patterns": Array [
    +    ".entities.v1.history.builtin_mock_entity_definition.*",
    +  ],
    +  "name": "entities_v1_history_builtin_mock_entity_definition_index_template",
    +  "priority": 200,
    +  "template": Object {
    +    "aliases": Object {
    +      "entities-service-history": Object {},
    +    },
    +    "mappings": Object {
    +      "_meta": Object {
    +        "version": "1.6.0",
    +      },
    +      "date_detection": false,
    +      "dynamic_templates": Array [
    +        Object {
    +          "strings_as_keyword": Object {
    +            "mapping": Object {
    +              "fields": Object {
    +                "text": Object {
    +                  "type": "text",
    +                },
    +              },
    +              "ignore_above": 1024,
    +              "type": "keyword",
    +            },
    +            "match_mapping_type": "string",
    +          },
    +        },
    +        Object {
    +          "entity_metrics": Object {
    +            "mapping": Object {
    +              "type": "{dynamic_type}",
    +            },
    +            "match_mapping_type": Array [
    +              "long",
    +              "double",
    +            ],
    +            "path_match": "entity.metrics.*",
    +          },
    +        },
    +      ],
    +    },
    +    "settings": Object {
    +      "index": Object {
    +        "codec": "best_compression",
    +        "mapping": Object {
    +          "total_fields": Object {
    +            "limit": 2000,
    +          },
    +        },
    +      },
    +    },
    +  },
    +}
    +`;
    +
    +exports[`generateEntitiesHistoryIndexTemplateConfig(definition) should generate a valid index template for custom definition 1`] = `
     Object {
       "_meta": Object {
         "description": "Index template for indices managed by the Elastic Entity Model's entity discovery framework for the history dataset",
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/__snapshots__/entities_latest_template.test.ts.snap b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/__snapshots__/entities_latest_template.test.ts.snap
    index a3ed6ea45f53d..9653c5fda96c6 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/__snapshots__/entities_latest_template.test.ts.snap
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/__snapshots__/entities_latest_template.test.ts.snap
    @@ -1,6 +1,77 @@
     // Jest Snapshot v1, https://goo.gl/fbAQLP
     
    -exports[`generateEntitiesLatestIndexTemplateConfig(definition) should generate a valid index template 1`] = `
    +exports[`generateEntitiesLatestIndexTemplateConfig(definition) should generate a valid index template for builtin definition 1`] = `
    +Object {
    +  "_meta": Object {
    +    "description": "Index template for indices managed by the Elastic Entity Model's entity discovery framework for the latest dataset",
    +    "ecs_version": "8.0.0",
    +    "managed": true,
    +    "managed_by": "elastic_entity_model",
    +  },
    +  "composed_of": Array [
    +    "entities_v1_latest_base",
    +    "entities_v1_entity",
    +    "entities_v1_event",
    +  ],
    +  "ignore_missing_component_templates": Array [],
    +  "index_patterns": Array [
    +    ".entities.v1.latest.builtin_mock_entity_definition",
    +  ],
    +  "name": "entities_v1_latest_builtin_mock_entity_definition_index_template",
    +  "priority": 200,
    +  "template": Object {
    +    "aliases": Object {
    +      "entities-service-latest": Object {},
    +    },
    +    "mappings": Object {
    +      "_meta": Object {
    +        "version": "1.6.0",
    +      },
    +      "date_detection": false,
    +      "dynamic_templates": Array [
    +        Object {
    +          "strings_as_keyword": Object {
    +            "mapping": Object {
    +              "fields": Object {
    +                "text": Object {
    +                  "type": "text",
    +                },
    +              },
    +              "ignore_above": 1024,
    +              "type": "keyword",
    +            },
    +            "match_mapping_type": "string",
    +          },
    +        },
    +        Object {
    +          "entity_metrics": Object {
    +            "mapping": Object {
    +              "type": "{dynamic_type}",
    +            },
    +            "match_mapping_type": Array [
    +              "long",
    +              "double",
    +            ],
    +            "path_match": "entity.metrics.*",
    +          },
    +        },
    +      ],
    +    },
    +    "settings": Object {
    +      "index": Object {
    +        "codec": "best_compression",
    +        "mapping": Object {
    +          "total_fields": Object {
    +            "limit": 2000,
    +          },
    +        },
    +      },
    +    },
    +  },
    +}
    +`;
    +
    +exports[`generateEntitiesLatestIndexTemplateConfig(definition) should generate a valid index template for custom definition 1`] = `
     Object {
       "_meta": Object {
         "description": "Index template for indices managed by the Elastic Entity Model's entity discovery framework for the latest dataset",
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_history_template.test.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_history_template.test.ts
    index 33a934032c686..72e8d8591ab2d 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_history_template.test.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_history_template.test.ts
    @@ -5,12 +5,17 @@
      * 2.0.
      */
     
    -import { entityDefinition } from '../helpers/fixtures/entity_definition';
    +import { entityDefinition, builtInEntityDefinition } from '../helpers/fixtures';
     import { generateEntitiesHistoryIndexTemplateConfig } from './entities_history_template';
     
     describe('generateEntitiesHistoryIndexTemplateConfig(definition)', () => {
    -  it('should generate a valid index template', () => {
    +  it('should generate a valid index template for custom definition', () => {
         const template = generateEntitiesHistoryIndexTemplateConfig(entityDefinition);
         expect(template).toMatchSnapshot();
       });
    +
    +  it('should generate a valid index template for builtin definition', () => {
    +    const template = generateEntitiesHistoryIndexTemplateConfig(builtInEntityDefinition);
    +    expect(template).toMatchSnapshot();
    +  });
     });
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_history_template.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_history_template.ts
    index 5fa88367c04d1..b1539d8108a6d 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_history_template.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_history_template.ts
    @@ -32,12 +32,12 @@ export const generateEntitiesHistoryIndexTemplateConfig = (
         managed: true,
         managed_by: 'elastic_entity_model',
       },
    -  ignore_missing_component_templates: getCustomHistoryTemplateComponents(definition.id),
    +  ignore_missing_component_templates: getCustomHistoryTemplateComponents(definition),
       composed_of: [
         ENTITY_HISTORY_BASE_COMPONENT_TEMPLATE_V1,
         ENTITY_ENTITY_COMPONENT_TEMPLATE_V1,
         ENTITY_EVENT_COMPONENT_TEMPLATE_V1,
    -    ...getCustomHistoryTemplateComponents(definition.id),
    +    ...getCustomHistoryTemplateComponents(definition),
       ],
       index_patterns: [
         `${entitiesIndexPattern({
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_latest_template.test.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_latest_template.test.ts
    index 44dc91b72da44..bce0265cb0dee 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_latest_template.test.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_latest_template.test.ts
    @@ -5,12 +5,17 @@
      * 2.0.
      */
     
    -import { entityDefinition } from '../helpers/fixtures/entity_definition';
    +import { entityDefinition, builtInEntityDefinition } from '../helpers/fixtures';
     import { generateEntitiesLatestIndexTemplateConfig } from './entities_latest_template';
     
     describe('generateEntitiesLatestIndexTemplateConfig(definition)', () => {
    -  it('should generate a valid index template', () => {
    +  it('should generate a valid index template for custom definition', () => {
         const template = generateEntitiesLatestIndexTemplateConfig(entityDefinition);
         expect(template).toMatchSnapshot();
       });
    +
    +  it('should generate a valid index template for builtin definition', () => {
    +    const template = generateEntitiesLatestIndexTemplateConfig(builtInEntityDefinition);
    +    expect(template).toMatchSnapshot();
    +  });
     });
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_latest_template.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_latest_template.ts
    index b4eeb18d9435c..ea476cf769644 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_latest_template.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/templates/entities_latest_template.ts
    @@ -32,12 +32,12 @@ export const generateEntitiesLatestIndexTemplateConfig = (
         managed: true,
         managed_by: 'elastic_entity_model',
       },
    -  ignore_missing_component_templates: getCustomLatestTemplateComponents(definition.id),
    +  ignore_missing_component_templates: getCustomLatestTemplateComponents(definition),
       composed_of: [
         ENTITY_LATEST_BASE_COMPONENT_TEMPLATE_V1,
         ENTITY_ENTITY_COMPONENT_TEMPLATE_V1,
         ENTITY_EVENT_COMPONENT_TEMPLATE_V1,
    -    ...getCustomLatestTemplateComponents(definition.id),
    +    ...getCustomLatestTemplateComponents(definition),
       ],
       index_patterns: [
         entitiesIndexPattern({
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/transform/generate_metadata_aggregations.test.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/transform/generate_metadata_aggregations.test.ts
    index 69f6d4f071696..7746be66f5033 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/transform/generate_metadata_aggregations.test.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/transform/generate_metadata_aggregations.test.ts
    @@ -44,10 +44,10 @@ describe('Generate Metadata Aggregations for history and latest', () => {
           });
         });
     
    -    it('should generate metadata aggregations for object format with source and limit', () => {
    +    it('should generate metadata aggregations for object format with source and aggregation', () => {
           const definition = entityDefinitionSchema.parse({
             ...rawEntityDefinition,
    -        metadata: [{ source: 'host.name', limit: 10 }],
    +        metadata: [{ source: 'host.name', aggregation: { type: 'terms', limit: 10 } }],
           });
           expect(generateHistoryMetadataAggregations(definition)).toEqual({
             'entity.metadata.host.name': {
    @@ -59,11 +59,44 @@ describe('Generate Metadata Aggregations for history and latest', () => {
           });
         });
     
    -    it('should generate metadata aggregations for object format with source, limit, and destination', () => {
    +    it('should generate metadata aggregations for object format with source, aggregation, and destination', () => {
           const definition = entityDefinitionSchema.parse({
             ...rawEntityDefinition,
    -        metadata: [{ source: 'host.name', limit: 10, destination: 'hostName' }],
    +        metadata: [
    +          {
    +            source: 'host.name',
    +            aggregation: { type: 'terms', limit: 20 },
    +            destination: 'hostName',
    +          },
    +        ],
    +      });
    +      expect(generateHistoryMetadataAggregations(definition)).toEqual({
    +        'entity.metadata.hostName': {
    +          terms: {
    +            field: 'host.name',
    +            size: 20,
    +          },
    +        },
    +      });
    +    });
    +
    +    it('should generate metadata aggregations for terms and top_value', () => {
    +      const definition = entityDefinitionSchema.parse({
    +        ...rawEntityDefinition,
    +        metadata: [
    +          {
    +            source: 'host.name',
    +            aggregation: { type: 'terms', limit: 10 },
    +            destination: 'hostName',
    +          },
    +          {
    +            source: 'agent.name',
    +            aggregation: { type: 'top_value', sort: { '@timestamp': 'desc' } },
    +            destination: 'agentName',
    +          },
    +        ],
           });
    +
           expect(generateHistoryMetadataAggregations(definition)).toEqual({
             'entity.metadata.hostName': {
               terms: {
    @@ -71,6 +104,21 @@ describe('Generate Metadata Aggregations for history and latest', () => {
                 size: 10,
               },
             },
    +        'entity.metadata.agentName': {
    +          filter: {
    +            exists: {
    +              field: 'agent.name',
    +            },
    +          },
    +          aggs: {
    +            top_value: {
    +              top_metrics: {
    +                metrics: { field: 'agent.name' },
    +                sort: { '@timestamp': 'desc' },
    +              },
    +            },
    +          },
    +        },
           });
         });
       });
    @@ -128,10 +176,10 @@ describe('Generate Metadata Aggregations for history and latest', () => {
           });
         });
     
    -    it('should generate metadata aggregations for object format with source and limit', () => {
    +    it('should generate metadata aggregations for object format with source and aggregation', () => {
           const definition = entityDefinitionSchema.parse({
             ...rawEntityDefinition,
    -        metadata: [{ source: 'host.name', limit: 10 }],
    +        metadata: [{ source: 'host.name', aggregation: { type: 'terms', limit: 10 } }],
           });
           expect(generateLatestMetadataAggregations(definition)).toEqual({
             'entity.metadata.host.name': {
    @@ -154,10 +202,16 @@ describe('Generate Metadata Aggregations for history and latest', () => {
           });
         });
     
    -    it('should generate metadata aggregations for object format with source, limit, and destination', () => {
    +    it('should generate metadata aggregations for object format with source, aggregation, and destination', () => {
           const definition = entityDefinitionSchema.parse({
             ...rawEntityDefinition,
    -        metadata: [{ source: 'host.name', limit: 10, destination: 'hostName' }],
    +        metadata: [
    +          {
    +            source: 'host.name',
    +            aggregation: { type: 'terms', limit: 10 },
    +            destination: 'hostName',
    +          },
    +        ],
           });
           expect(generateLatestMetadataAggregations(definition)).toEqual({
             'entity.metadata.hostName': {
    @@ -179,5 +233,74 @@ describe('Generate Metadata Aggregations for history and latest', () => {
             },
           });
         });
    +
    +    it('should generate metadata aggregations for terms and top_value', () => {
    +      const definition = entityDefinitionSchema.parse({
    +        ...rawEntityDefinition,
    +        metadata: [
    +          {
    +            source: 'host.name',
    +            aggregation: { type: 'terms', limit: 10 },
    +            destination: 'hostName',
    +          },
    +          {
    +            source: 'agent.name',
    +            aggregation: { type: 'top_value', sort: { '@timestamp': 'desc' } },
    +            destination: 'agentName',
    +          },
    +        ],
    +      });
    +      expect(generateLatestMetadataAggregations(definition)).toEqual({
    +        'entity.metadata.hostName': {
    +          filter: {
    +            range: {
    +              '@timestamp': {
    +                gte: 'now-360s',
    +              },
    +            },
    +          },
    +          aggs: {
    +            data: {
    +              terms: {
    +                field: 'hostName',
    +                size: 10,
    +              },
    +            },
    +          },
    +        },
    +        'entity.metadata.agentName': {
    +          filter: {
    +            bool: {
    +              must: [
    +                {
    +                  range: {
    +                    '@timestamp': {
    +                      gte: 'now-360s',
    +                    },
    +                  },
    +                },
    +                {
    +                  exists: {
    +                    field: 'agentName',
    +                  },
    +                },
    +              ],
    +            },
    +          },
    +          aggs: {
    +            top_value: {
    +              top_metrics: {
    +                metrics: {
    +                  field: 'agentName',
    +                },
    +                sort: {
    +                  '@timestamp': 'desc',
    +                },
    +              },
    +            },
    +          },
    +        },
    +      });
    +    });
       });
     });
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/transform/generate_metadata_aggregations.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/transform/generate_metadata_aggregations.ts
    index 1da8988209db6..0fc4464672219 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/transform/generate_metadata_aggregations.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/transform/generate_metadata_aggregations.ts
    @@ -6,25 +6,46 @@
      */
     
     import { EntityDefinition } from '@kbn/entities-schema';
    -import { ENTITY_DEFAULT_METADATA_LIMIT } from '../../../../common/constants_entities';
     import { calculateOffset } from '../helpers/calculate_offset';
     
     export function generateHistoryMetadataAggregations(definition: EntityDefinition) {
       if (!definition.metadata) {
         return {};
       }
    -  return definition.metadata.reduce(
    -    (aggs, metadata) => ({
    -      ...aggs,
    -      [`entity.metadata.${metadata.destination ?? metadata.source}`]: {
    +  return definition.metadata.reduce((aggs, metadata) => {
    +    let agg;
    +    if (metadata.aggregation.type === 'terms') {
    +      agg = {
             terms: {
               field: metadata.source,
    -          size: metadata.limit ?? ENTITY_DEFAULT_METADATA_LIMIT,
    +          size: metadata.aggregation.limit,
    +        },
    +      };
    +    } else if (metadata.aggregation.type === 'top_value') {
    +      agg = {
    +        filter: {
    +          exists: {
    +            field: metadata.source,
    +          },
    +        },
    +        aggs: {
    +          top_value: {
    +            top_metrics: {
    +              metrics: {
    +                field: metadata.source,
    +              },
    +              sort: metadata.aggregation.sort,
    +            },
    +          },
             },
    -      },
    -    }),
    -    {}
    -  );
    +      };
    +    }
    +
    +    return {
    +      ...aggs,
    +      [`entity.metadata.${metadata.destination}`]: agg,
    +    };
    +  }, {});
     }
     
     export function generateLatestMetadataAggregations(definition: EntityDefinition) {
    @@ -32,29 +53,64 @@ export function generateLatestMetadataAggregations(definition: EntityDefinition)
         return {};
       }
     
    -  const offsetInSeconds = calculateOffset(definition);
    +  const offsetInSeconds = `${calculateOffset(definition)}s`;
     
    -  return definition.metadata.reduce(
    -    (aggs, metadata) => ({
    -      ...aggs,
    -      [`entity.metadata.${metadata.destination}`]: {
    +  return definition.metadata.reduce((aggs, metadata) => {
    +    let agg;
    +    if (metadata.aggregation.type === 'terms') {
    +      agg = {
             filter: {
               range: {
                 '@timestamp': {
    -              gte: `now-${offsetInSeconds}s`,
    +              gte: `now-${offsetInSeconds}`,
                 },
               },
             },
             aggs: {
               data: {
                 terms: {
    -              field: metadata.destination ?? metadata.source,
    -              size: metadata.limit ?? ENTITY_DEFAULT_METADATA_LIMIT,
    +              field: metadata.destination,
    +              size: metadata.aggregation.limit,
    +            },
    +          },
    +        },
    +      };
    +    } else if (metadata.aggregation.type === 'top_value') {
    +      agg = {
    +        filter: {
    +          bool: {
    +            must: [
    +              {
    +                range: {
    +                  '@timestamp': {
    +                    gte: `now-${metadata.aggregation.lookbackPeriod ?? offsetInSeconds}`,
    +                  },
    +                },
    +              },
    +              {
    +                exists: {
    +                  field: metadata.destination,
    +                },
    +              },
    +            ],
    +          },
    +        },
    +        aggs: {
    +          top_value: {
    +            top_metrics: {
    +              metrics: {
    +                field: metadata.destination,
    +              },
    +              sort: metadata.aggregation.sort,
                 },
               },
             },
    -      },
    -    }),
    -    {}
    -  );
    +      };
    +    }
    +
    +    return {
    +      ...aggs,
    +      [`entity.metadata.${metadata.destination}`]: agg,
    +    };
    +  }, {});
     }
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/types.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/types.ts
    index 2cb4eb43791c2..cf0ef5e61342d 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/types.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entities/types.ts
    @@ -5,12 +5,43 @@
      * 2.0.
      */
     
    +import {
    +  IndicesIndexTemplate,
    +  TransformGetTransformStatsTransformStats,
    +} from '@elastic/elasticsearch/lib/api/types';
     import { EntityDefinition } from '@kbn/entities-schema';
     
    +interface TransformState {
    +  id: string;
    +  installed: boolean;
    +  running: boolean;
    +  stats?: TransformGetTransformStatsTransformStats;
    +}
    +
    +interface IngestPipelineState {
    +  id: string;
    +  installed: boolean;
    +  stats?: { count: number; failed: number };
    +}
    +
    +interface IndexTemplateState {
    +  id: string;
    +  installed: boolean;
    +  stats?: IndicesIndexTemplate;
    +}
    +
     // state is the *live* state of the definition. since a definition
     // is composed of several elasticsearch components that can be
     // modified or deleted outside of the entity manager apis, this can
     // be used to verify the actual installation is complete and running
    -export type EntityDefinitionWithState = EntityDefinition & {
    -  state: { installed: boolean; running: boolean };
    -};
    +export interface EntityDefinitionState {
    +  installed: boolean;
    +  running: boolean;
    +  components: {
    +    transforms: TransformState[];
    +    ingestPipelines: IngestPipelineState[];
    +    indexTemplates: IndexTemplateState[];
    +  };
    +}
    +
    +export type EntityDefinitionWithState = EntityDefinition & { state: EntityDefinitionState };
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/entity_client.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/entity_client.ts
    index 0503bdf770818..5bd9154ec9daf 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/entity_client.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/entity_client.ts
    @@ -70,12 +70,24 @@ export class EntityClient {
         });
       }
     
    -  async getEntityDefinitions({ page = 1, perPage = 10 }: { page?: number; perPage?: number }) {
    +  async getEntityDefinitions({
    +    id,
    +    page = 1,
    +    perPage = 10,
    +    includeState = false,
    +  }: {
    +    id?: string;
    +    page?: number;
    +    perPage?: number;
    +    includeState?: boolean;
    +  }) {
         const definitions = await findEntityDefinitions({
           esClient: this.options.esClient,
           soClient: this.options.soClient,
           page,
           perPage,
    +      id,
    +      includeState,
         });
     
         return { definitions };
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/lib/utils.ts b/x-pack/plugins/observability_solution/entity_manager/server/lib/utils.ts
    index d1d76e147efb0..aec8ffa940437 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/lib/utils.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/lib/utils.ts
    @@ -19,7 +19,7 @@ export const getClientsFromAPIKey = ({
       server: EntityManagerServerSetup;
     }): { esClient: ElasticsearchClient; soClient: SavedObjectsClientContract } => {
       const fakeRequest = getFakeKibanaRequest({ id: apiKey.id, api_key: apiKey.apiKey });
    -  const esClient = server.core.elasticsearch.client.asScoped(fakeRequest).asCurrentUser;
    +  const esClient = server.core.elasticsearch.client.asScoped(fakeRequest).asSecondaryAuthUser;
       const soClient = server.core.savedObjects.getScopedClient(fakeRequest);
       return { esClient, soClient };
     };
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/plugin.ts b/x-pack/plugins/observability_solution/entity_manager/server/plugin.ts
    index 3adfe5b9167e2..2677b78042620 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/plugin.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/plugin.ts
    @@ -30,8 +30,11 @@ import {
       EntityManagerServerSetup,
     } from './types';
     
    -export type EntityManagerServerPluginSetup = ReturnType;
    -export type EntityManagerServerPluginStart = ReturnType;
    +// eslint-disable-next-line @typescript-eslint/no-empty-interface
    +export interface EntityManagerServerPluginSetup {}
    +export interface EntityManagerServerPluginStart {
    +  getScopedClient: (options: { request: KibanaRequest }) => Promise;
    +}
     
     export const config: PluginConfigDescriptor = {
       schema: configSchema,
    @@ -56,7 +59,10 @@ export class EntityManagerServerPlugin
         this.logger = context.logger.get();
       }
     
    -  public setup(core: CoreSetup, plugins: EntityManagerPluginSetupDependencies) {
    +  public setup(
    +    core: CoreSetup,
    +    plugins: EntityManagerPluginSetupDependencies
    +  ): EntityManagerServerPluginSetup {
         core.savedObjects.registerType(entityDefinition);
         core.savedObjects.registerType(EntityDiscoveryApiKeyType);
         plugins.encryptedSavedObjects.registerType({
    @@ -76,9 +82,7 @@ export class EntityManagerServerPlugin
             server: this.server,
             getScopedClient: async ({ request }: { request: KibanaRequest }) => {
               const [coreStart] = await core.getStartServices();
    -          const esClient = coreStart.elasticsearch.client.asScoped(request).asCurrentUser;
    -          const soClient = coreStart.savedObjects.getScopedClient(request);
    -          return new EntityClient({ esClient, soClient, logger: this.logger });
    +          return this.getScopedClient({ request, coreStart });
             },
           },
           core,
    @@ -88,7 +92,22 @@ export class EntityManagerServerPlugin
         return {};
       }
     
    -  public start(core: CoreStart, plugins: EntityManagerPluginStartDependencies) {
    +  private async getScopedClient({
    +    request,
    +    coreStart,
    +  }: {
    +    request: KibanaRequest;
    +    coreStart: CoreStart;
    +  }) {
    +    const esClient = coreStart.elasticsearch.client.asScoped(request).asSecondaryAuthUser;
    +    const soClient = coreStart.savedObjects.getScopedClient(request);
    +    return new EntityClient({ esClient, soClient, logger: this.logger });
    +  }
    +
    +  public start(
    +    core: CoreStart,
    +    plugins: EntityManagerPluginStartDependencies
    +  ): EntityManagerServerPluginStart {
         if (this.server) {
           this.server.core = core;
           this.server.isServerless = core.elasticsearch.getCapabilities().serverless;
    @@ -114,7 +133,11 @@ export class EntityManagerServerPlugin
           })
           .catch((err) => this.logger.error(err));
     
    -    return {};
    +    return {
    +      getScopedClient: async ({ request }: { request: KibanaRequest }) => {
    +        return this.getScopedClient({ request, coreStart: core });
    +      },
    +    };
       }
     
       public stop() {}
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/routes/enablement/check.ts b/x-pack/plugins/observability_solution/entity_manager/server/routes/enablement/check.ts
    index cadd4e1dc4dec..d0e2a572cb6f5 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/routes/enablement/check.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/routes/enablement/check.ts
    @@ -17,6 +17,7 @@ import { checkIfEntityDiscoveryAPIKeyIsValid, readEntityDiscoveryAPIKey } from '
     import { builtInDefinitions } from '../../lib/entities/built_in';
     import { findEntityDefinitions } from '../../lib/entities/find_entity_definition';
     import { getClientsFromAPIKey } from '../../lib/utils';
    +import { EntityDefinitionWithState } from '../../lib/entities/types';
     import { createEntityManagerServerRoute } from '../create_entity_manager_server_route';
     
     /**
    @@ -68,9 +69,13 @@ export const checkEntityDiscoveryEnabledRoute = createEntityManagerServerRoute({
                 esClient,
                 soClient,
                 id: builtInDefinition.id,
    +            includeState: true,
               });
     
    -          return { installedDefinition: definitions[0], builtInDefinition };
    +          return {
    +            installedDefinition: definitions[0] as EntityDefinitionWithState,
    +            builtInDefinition,
    +          };
             })
           ).then((results) =>
             results.reduce(
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/routes/entities/get.ts b/x-pack/plugins/observability_solution/entity_manager/server/routes/entities/get.ts
    index 2c268aa315560..8ec2489136fb1 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/routes/entities/get.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/routes/entities/get.ts
    @@ -4,7 +4,6 @@
      * 2.0; you may not use this file except in compliance with the Elastic License
      * 2.0.
      */
    -
     import { getEntityDefinitionQuerySchema } from '@kbn/entities-schema';
     import { z } from '@kbn/zod';
     import { createEntityManagerServerRoute } from '../create_entity_manager_server_route';
    @@ -17,6 +16,12 @@ import { createEntityManagerServerRoute } from '../create_entity_manager_server_
      *     tags:
      *       - definitions
      *     parameters:
    + *       - in: path
    + *         name: id
    + *         description: The entity definition ID
    + *         schema:
    + *           $ref: '#/components/schemas/deleteEntityDefinitionParamsSchema/properties/id'
    + *         required: false
      *       - in: query
      *         name: page
      *         schema:
    @@ -25,6 +30,10 @@ import { createEntityManagerServerRoute } from '../create_entity_manager_server_
      *         name: perPage
      *         schema:
      *           $ref: '#/components/schemas/getEntityDefinitionQuerySchema/properties/perPage'
    + *       - in: query
    + *         name: includeState
    + *         schema:
    + *           $ref: '#/components/schemas/getEntityDefinitionQuerySchema/properties/includeState'
      *     responses:
      *       200:
      *         description: OK
    @@ -38,27 +47,21 @@ import { createEntityManagerServerRoute } from '../create_entity_manager_server_
      *                   items:
      *                     allOf:
      *                       - $ref: '#/components/schemas/entityDefinitionSchema'
    - *                       - type: object
    - *                         properties:
    - *                           state:
    - *                            type: object
    - *                            properties:
    - *                              installed:
    - *                                type: boolean
    - *                              running:
    - *                                type: boolean
      */
     export const getEntityDefinitionRoute = createEntityManagerServerRoute({
    -  endpoint: 'GET /internal/entities/definition',
    +  endpoint: 'GET /internal/entities/definition/{id?}',
       params: z.object({
         query: getEntityDefinitionQuerySchema,
    +    path: z.object({ id: z.optional(z.string()) }),
       }),
       handler: async ({ request, response, params, logger, getScopedClient }) => {
         try {
           const client = await getScopedClient({ request });
           const result = await client.getEntityDefinitions({
    -        page: params?.query?.page,
    -        perPage: params?.query?.perPage,
    +        id: params.path?.id,
    +        page: params.query.page,
    +        perPage: params.query.perPage,
    +        includeState: params.query.includeState,
           });
     
           return response.ok({ body: result });
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/templates/components/helpers.test.ts b/x-pack/plugins/observability_solution/entity_manager/server/templates/components/helpers.test.ts
    index 3321ee39edeb4..90c5e90d43f3a 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/templates/components/helpers.test.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/templates/components/helpers.test.ts
    @@ -5,12 +5,12 @@
      * 2.0.
      */
     
    +import { EntityDefinition } from '@kbn/entities-schema';
     import { getCustomHistoryTemplateComponents, getCustomLatestTemplateComponents } from './helpers';
     
     describe('helpers', () => {
       it('getCustomLatestTemplateComponents should return template component in the right sort order', () => {
    -    const definitionId = 'test';
    -    const result = getCustomLatestTemplateComponents(definitionId);
    +    const result = getCustomLatestTemplateComponents({ id: 'test' } as EntityDefinition);
         expect(result).toEqual([
           'test@platform',
           'test-latest@platform',
    @@ -20,8 +20,7 @@ describe('helpers', () => {
       });
     
       it('getCustomHistoryTemplateComponents should return template component in the right sort order', () => {
    -    const definitionId = 'test';
    -    const result = getCustomHistoryTemplateComponents(definitionId);
    +    const result = getCustomHistoryTemplateComponents({ id: 'test' } as EntityDefinition);
         expect(result).toEqual([
           'test@platform',
           'test-history@platform',
    diff --git a/x-pack/plugins/observability_solution/entity_manager/server/templates/components/helpers.ts b/x-pack/plugins/observability_solution/entity_manager/server/templates/components/helpers.ts
    index e976a216da97b..23cc7cccb6a13 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/server/templates/components/helpers.ts
    +++ b/x-pack/plugins/observability_solution/entity_manager/server/templates/components/helpers.ts
    @@ -5,16 +5,31 @@
      * 2.0.
      */
     
    -export const getCustomLatestTemplateComponents = (definitionId: string) => [
    -  `${definitionId}@platform`, // @platform goes before so it can be overwritten by custom
    -  `${definitionId}-latest@platform`,
    -  `${definitionId}@custom`,
    -  `${definitionId}-latest@custom`,
    -];
    +import { EntityDefinition } from '@kbn/entities-schema';
    +import { isBuiltinDefinition } from '../../lib/entities/helpers/is_builtin_definition';
     
    -export const getCustomHistoryTemplateComponents = (definitionId: string) => [
    -  `${definitionId}@platform`, // @platform goes before so it can be overwritten by custom
    -  `${definitionId}-history@platform`,
    -  `${definitionId}@custom`,
    -  `${definitionId}-history@custom`,
    -];
    +export const getCustomLatestTemplateComponents = (definition: EntityDefinition) => {
    +  if (isBuiltinDefinition(definition)) {
    +    return [];
    +  }
    +
    +  return [
    +    `${definition.id}@platform`, // @platform goes before so it can be overwritten by custom
    +    `${definition.id}-latest@platform`,
    +    `${definition.id}@custom`,
    +    `${definition.id}-latest@custom`,
    +  ];
    +};
    +
    +export const getCustomHistoryTemplateComponents = (definition: EntityDefinition) => {
    +  if (isBuiltinDefinition(definition)) {
    +    return [];
    +  }
    +
    +  return [
    +    `${definition.id}@platform`, // @platform goes before so it can be overwritten by custom
    +    `${definition.id}-history@platform`,
    +    `${definition.id}@custom`,
    +    `${definition.id}-history@custom`,
    +  ];
    +};
    diff --git a/x-pack/plugins/observability_solution/entity_manager/tsconfig.json b/x-pack/plugins/observability_solution/entity_manager/tsconfig.json
    index 537e31e9bda93..7d1c0f378854f 100644
    --- a/x-pack/plugins/observability_solution/entity_manager/tsconfig.json
    +++ b/x-pack/plugins/observability_solution/entity_manager/tsconfig.json
    @@ -4,7 +4,7 @@
         "outDir": "target/types"
       },
       "include": [
    -    "../../../../typings/**/*",
    +    "../../../typings/**/*",
         "common/**/*",
         "server/**/*",
         "public/**/*",
    @@ -12,25 +12,25 @@
       ],
       "exclude": ["target/**/*"],
       "kbn_references": [
    -    "@kbn/core-plugins-server",
    -    "@kbn/core",
         "@kbn/config-schema",
    -    "@kbn/core-http-server",
    -    "@kbn/core-elasticsearch-client-server-mocks",
    -    "@kbn/datemath",
    +    "@kbn/entities-schema",
    +    "@kbn/core",
    +    "@kbn/core-plugins-server",
    +    "@kbn/server-route-repository-client",
         "@kbn/logging",
    +    "@kbn/core-http-server",
    +    "@kbn/security-plugin",
    +    "@kbn/es-query",
         "@kbn/core-elasticsearch-server",
         "@kbn/core-saved-objects-api-server",
    +    "@kbn/core-elasticsearch-client-server-mocks",
         "@kbn/core-saved-objects-api-server-mocks",
    -    "@kbn/entities-schema",
    -    "@kbn/es-query",
    -    "@kbn/security-plugin",
    -    "@kbn/encrypted-saved-objects-plugin",
         "@kbn/logging-mocks",
    -    "@kbn/licensing-plugin",
    -    "@kbn/server-route-repository-client",
    +    "@kbn/datemath",
         "@kbn/server-route-repository",
         "@kbn/zod",
         "@kbn/zod-helpers",
    +    "@kbn/encrypted-saved-objects-plugin",
    +    "@kbn/licensing-plugin",
       ]
     }
    diff --git a/x-pack/plugins/observability_solution/exploratory_view/e2e/synthetics_runner.ts b/x-pack/plugins/observability_solution/exploratory_view/e2e/synthetics_runner.ts
    index 66183218780f2..bc6222774f055 100644
    --- a/x-pack/plugins/observability_solution/exploratory_view/e2e/synthetics_runner.ts
    +++ b/x-pack/plugins/observability_solution/exploratory_view/e2e/synthetics_runner.ts
    @@ -124,7 +124,7 @@ export class SyntheticsRunner {
                 dir: '.journeys/videos',
               },
             },
    -        match: match === 'undefined' ? '' : match,
    +        grepOpts: { match: match === 'undefined' ? '' : match },
             pauseOnError,
             screenshots: 'only-on-failure',
             reporter: TestReporter,
    diff --git a/x-pack/plugins/observability_solution/infra/common/http_api/host_details/get_infra_services.ts b/x-pack/plugins/observability_solution/infra/common/http_api/host_details/get_infra_services.ts
    index 718513416dad7..9f330567337eb 100644
    --- a/x-pack/plugins/observability_solution/infra/common/http_api/host_details/get_infra_services.ts
    +++ b/x-pack/plugins/observability_solution/infra/common/http_api/host_details/get_infra_services.ts
    @@ -8,8 +8,7 @@
     import {
       createLiteralValueFromUndefinedRT,
       inRangeFromStringRt,
    -  dateRt,
    -  datemathStringRt,
    +  isoToEpochRt,
     } from '@kbn/io-ts-utils';
     import * as rt from 'io-ts';
     
    @@ -17,7 +16,6 @@ export const sizeRT = rt.union([
       inRangeFromStringRt(1, 100),
       createLiteralValueFromUndefinedRT(10),
     ]);
    -export const assetDateRT = rt.union([dateRt, datemathStringRt]);
     
     export const servicesFiltersRT = rt.strict({
       ['host.name']: rt.string,
    @@ -26,7 +24,7 @@ export const servicesFiltersRT = rt.strict({
     export type ServicesFilter = rt.TypeOf;
     
     export const GetServicesRequestQueryRT = rt.intersection([
    -  rt.strict({ from: assetDateRT, to: assetDateRT, filters: rt.string }),
    +  rt.strict({ from: isoToEpochRt, to: isoToEpochRt, filters: rt.string }),
       rt.partial({
         size: sizeRT,
         validatedFilters: servicesFiltersRT,
    @@ -37,8 +35,8 @@ export type GetServicesRequestQuery = rt.TypeOf = ({
         return getCompatibleComparatorsForField(fieldInfo);
       }, [fieldInfo]);
     
    -  const handleFieldChange = useCallback(
    +  const handleFieldChange = useCallback['onChange']>>(
         ([selectedOption]) => {
           if (!selectedOption) {
             updateCriterion(idx, { field: '' });
    @@ -198,7 +199,7 @@ export const Criterion: React.FC = ({
                       style={{ minWidth: '300px' }}
                       // @ts-expect-error upgrade typescript v5.1.6
                       isInvalid={errors.field.length > 0}
    -                  error={errors.field}
    +                  error={errors.field as string}
                     >
                        = ({
                             // @ts-expect-error upgrade typescript v5.1.6
                             errors.comparator.length > 0
                           }
    -                      error={errors.comparator}
    +                      error={errors.comparator as string}
                         >
                            = ({
                             // @ts-expect-error upgrade typescript v5.1.6
                             errors.value.length > 0
                           }
    -                      error={errors.value}
    +                      error={errors.value as string}
                         >
                           {fieldInfo?.type === 'number' ? (
                              = ({ comparator, value, updateThreshold,
                         // @ts-expect-error upgrade typescript v5.1.6
                         errors.value.length > 0
                       }
    -                  error={errors.value}
    +                  error={errors.value as string[]}
                     >
                       
                 
    -      
    +      
             
               
    +                render={() => {
                       plugins.share.url.locators
                         .get(ALL_DATASETS_LOCATOR_ID)
    -                    ?.navigate({})
    -                }
    +                    ?.navigate({});
    +
    +                  return null;
    +                }}
                   />
                   
                   {uiCapabilities?.logs?.show && }
    diff --git a/x-pack/plugins/observability_solution/infra/public/components/lens/lens_chart.tsx b/x-pack/plugins/observability_solution/infra/public/components/lens/lens_chart.tsx
    index 5efe44a328599..b244ff12222d6 100644
    --- a/x-pack/plugins/observability_solution/infra/public/components/lens/lens_chart.tsx
    +++ b/x-pack/plugins/observability_solution/infra/public/components/lens/lens_chart.tsx
    @@ -92,7 +92,10 @@ export const LensChart = React.memo(
                             defaultMessage="To display this chart, please ensure you are collecting the following fields:"
                           />
                         

    -

    {missingFieldsMessage && missingFieldsMessage.longMessage}

    +

    + {missingFieldsMessage && + (missingFieldsMessage.longMessage as React.ReactNode)} +

    { method: 'GET', } ); - telemetry.reportPerformanceMetricEvent( + telemetry?.reportPerformanceMetricEvent( 'infra_source_load', performance.now() - start, {}, diff --git a/x-pack/plugins/observability_solution/infra/public/pages/metrics/index.tsx b/x-pack/plugins/observability_solution/infra/public/pages/metrics/index.tsx index 1716b24078330..1d0e394b281d4 100644 --- a/x-pack/plugins/observability_solution/infra/public/pages/metrics/index.tsx +++ b/x-pack/plugins/observability_solution/infra/public/pages/metrics/index.tsx @@ -128,7 +128,7 @@ export const InfrastructurePage = () => { )} - {isHostsViewEnabled && } + {isHostsViewEnabled ? : null} diff --git a/x-pack/plugins/observability_solution/infra/public/pages/metrics/metrics_explorer/components/aggregation.tsx b/x-pack/plugins/observability_solution/infra/public/pages/metrics/metrics_explorer/components/aggregation.tsx index 9a24e0b0cd0e6..3b37c2aa36938 100644 --- a/x-pack/plugins/observability_solution/infra/public/pages/metrics/metrics_explorer/components/aggregation.tsx +++ b/x-pack/plugins/observability_solution/infra/public/pages/metrics/metrics_explorer/components/aggregation.tsx @@ -66,7 +66,7 @@ export const MetricsExplorerAggregationPicker = ({ options, onChange }: Props) = [onChange] ); - const placeholder = i18n.translate('xpack.infra.metricsExplorer.aggregationSelectLabel', { + const label = i18n.translate('xpack.infra.metricsExplorer.aggregationSelectLabel', { defaultMessage: 'Select an aggregation', }); @@ -77,8 +77,7 @@ export const MetricsExplorerAggregationPicker = ({ options, onChange }: Props) = return ( ({ diff --git a/x-pack/plugins/observability_solution/infra/server/features.ts b/x-pack/plugins/observability_solution/infra/server/features.ts index 6d209833fcd77..48091c9fe4b7f 100644 --- a/x-pack/plugins/observability_solution/infra/server/features.ts +++ b/x-pack/plugins/observability_solution/infra/server/features.ts @@ -14,6 +14,7 @@ import { } from '@kbn/rule-data-utils'; import { ES_QUERY_ID } from '@kbn/rule-data-utils'; import { metricsDataSourceSavedObjectName } from '@kbn/metrics-data-access-plugin/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { LOG_DOCUMENT_COUNT_RULE_TYPE_ID } from '../common/alerting/logs/log_threshold/types'; import { METRIC_INVENTORY_THRESHOLD_ALERT_TYPE_ID, @@ -37,6 +38,7 @@ export const METRICS_FEATURE = { }), order: 800, category: DEFAULT_APP_CATEGORIES.observability, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['infra', 'metrics', 'kibana'], catalogue: ['infraops', 'metrics'], management: { @@ -103,6 +105,7 @@ export const LOGS_FEATURE = { }), order: 700, category: DEFAULT_APP_CATEGORIES.observability, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: ['infra', 'logs', 'kibana'], catalogue: ['infralogging', 'logs'], management: { diff --git a/x-pack/plugins/observability_solution/infra/server/lib/host_details/get_services.ts b/x-pack/plugins/observability_solution/infra/server/lib/host_details/get_services.ts deleted file mode 100644 index e037889e4fece..0000000000000 --- a/x-pack/plugins/observability_solution/infra/server/lib/host_details/get_services.ts +++ /dev/null @@ -1,167 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { QueryDslQueryContainer } from '@elastic/elasticsearch/lib/api/types'; -import { APMDataAccessConfig } from '@kbn/apm-data-access-plugin/server'; -import { termQuery } from '@kbn/observability-plugin/server'; -import { PROCESSOR_EVENT } from '@kbn/observability-shared-plugin/common/field_names/elasticsearch'; -import { ESSearchClient } from '../metrics/types'; -import { - ServicesAPIRequest, - ServicesAPIQueryAggregation, -} from '../../../common/http_api/host_details'; -import { HOST_NAME_FIELD } from '../../../common/constants'; - -export const getServices = async ( - client: ESSearchClient, - apmIndices: APMDataAccessConfig['indices'], - options: ServicesAPIRequest -) => { - const { error, metric } = apmIndices; - const { filters, size = 10, from, to } = options; - const commonFiltersList: QueryDslQueryContainer[] = [ - { - range: { - '@timestamp': { - gte: from, - lte: to, - }, - }, - }, - { - exists: { - field: 'service.name', - }, - }, - ]; - - if (filters['host.name']) { - // also query for host.hostname field along with host.name, as some services may use this field - const HOST_HOSTNAME_FIELD = 'host.hostname'; - commonFiltersList.push({ - bool: { - should: [ - ...termQuery(HOST_NAME_FIELD, filters[HOST_NAME_FIELD]), - ...termQuery(HOST_HOSTNAME_FIELD, filters[HOST_NAME_FIELD]), - ], - minimum_should_match: 1, - }, - }); - } - const aggs = { - services: { - terms: { - field: 'service.name', - size, - }, - aggs: { - latestAgent: { - top_metrics: { - metrics: [{ field: 'agent.name' }], - sort: { - '@timestamp': 'desc', - }, - size: 1, - }, - }, - }, - }, - }; - // get services from transaction metrics - const metricsQuery = { - size: 0, - _source: false, - query: { - bool: { - filter: [ - { - term: { - [PROCESSOR_EVENT]: 'metric', - }, - }, - { - bool: { - should: [ - { - term: { - 'metricset.name': 'app', - }, - }, - { - bool: { - must: [ - { - term: { - 'metricset.name': 'transaction', - }, - }, - { - term: { - 'metricset.interval': '1m', // make this dynamic if we start returning time series data - }, - }, - ], - }, - }, - ], - minimum_should_match: 1, - }, - }, - ...commonFiltersList, - ], - }, - }, - aggs, - }; - // get services from logs - const logsQuery = { - size: 0, - _source: false, - query: { - bool: { - filter: commonFiltersList, - }, - }, - aggs, - }; - - const resultMetrics = await client<{}, ServicesAPIQueryAggregation>({ - body: metricsQuery, - index: [metric], - }); - const resultLogs = await client<{}, ServicesAPIQueryAggregation>({ - body: logsQuery, - index: [error], - }); - - const servicesListBucketsFromMetrics = resultMetrics.aggregations?.services?.buckets || []; - const servicesListBucketsFromLogs = resultLogs.aggregations?.services?.buckets || []; - const serviceMap = [...servicesListBucketsFromMetrics, ...servicesListBucketsFromLogs].reduce( - (acc, bucket) => { - const serviceName = bucket.key; - const latestAgentEntry = bucket.latestAgent.top[0]; - const latestTimestamp = latestAgentEntry.sort[0]; - const agentName = latestAgentEntry.metrics['agent.name']; - // dedup and get the latest timestamp - const existingService = acc.get(serviceName); - if (!existingService || existingService.latestTimestamp < latestTimestamp) { - acc.set(serviceName, { latestTimestamp, agentName }); - } - - return acc; - }, - new Map() - ); - - const services = Array.from(serviceMap) - .slice(0, size) - .map(([serviceName, { agentName }]) => ({ - serviceName, - agentName, - })); - return { services }; -}; diff --git a/x-pack/plugins/observability_solution/infra/server/routes/services/index.ts b/x-pack/plugins/observability_solution/infra/server/routes/services/index.ts index 86af345d5175e..9673b31788487 100644 --- a/x-pack/plugins/observability_solution/infra/server/routes/services/index.ts +++ b/x-pack/plugins/observability_solution/infra/server/routes/services/index.ts @@ -6,15 +6,14 @@ */ import { - GetServicesRequestQueryRT, GetServicesRequestQuery, + GetServicesRequestQueryRT, ServicesAPIResponseRT, } from '../../../common/http_api/host_details'; import { InfraBackendLibs } from '../../lib/infra_types'; -import { getServices } from '../../lib/host_details/get_services'; import { validateStringAssetFilters } from './lib/utils'; -import { createSearchClient } from '../../lib/create_search_client'; import { buildRouteValidationWithExcess } from '../../utils/route_validation'; +import { getApmDataAccessClient } from '../../lib/helpers/get_apm_data_access_client'; export const initServicesRoute = (libs: InfraBackendLibs) => { const { framework } = libs; @@ -33,18 +32,34 @@ export const initServicesRoute = (libs: InfraBackendLibs) => { }, }, }, - async (requestContext, request, response) => { - const [{ savedObjects }] = await libs.getStartServices(); + async (context, request, response) => { const { from, to, size = 10, validatedFilters } = request.query; - const client = createSearchClient(requestContext, framework, request); - const soClient = savedObjects.getScopedClient(request); - const apmIndices = await libs.plugins.apmDataAccess.setup.getApmIndices(soClient); - const services = await getServices(client, apmIndices, { - from, - to, - size, + const apmDataAccessClient = getApmDataAccessClient({ request, libs, context }); + const hasApmPrivileges = await apmDataAccessClient.hasPrivileges(); + + if (!hasApmPrivileges) { + return response.customError({ + statusCode: 403, + body: { + message: 'APM data access service is not available', + }, + }); + } + + const apmDataAccessServices = await apmDataAccessClient.getServices(); + + const apmDocumentSources = await apmDataAccessServices.getDocumentSources({ + start: from, + end: to, + }); + + const services = await apmDataAccessServices?.getHostServices({ + documentSources: apmDocumentSources, + start: from, + end: to, filters: validatedFilters!, + size, }); return response.ok({ body: ServicesAPIResponseRT.encode(services), diff --git a/x-pack/plugins/observability_solution/inventory/.storybook/get_mock_inventory_context.tsx b/x-pack/plugins/observability_solution/inventory/.storybook/get_mock_inventory_context.tsx new file mode 100644 index 0000000000000..1c5e2fd1f205b --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/.storybook/get_mock_inventory_context.tsx @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { coreMock } from '@kbn/core/public/mocks'; +import type { ObservabilitySharedPluginStart } from '@kbn/observability-shared-plugin/public'; +import type { InferencePublicStart } from '@kbn/inference-plugin/public'; +import type { InventoryKibanaContext } from '../public/hooks/use_kibana'; + +export function getMockInventoryContext(): InventoryKibanaContext { + const core = coreMock.createStart(); + + return { + core, + dependencies: { + start: { + observabilityShared: {} as unknown as ObservabilitySharedPluginStart, + inference: {} as unknown as InferencePublicStart, + }, + }, + services: { + inventoryAPIClient: { + fetch: jest.fn(), + stream: jest.fn(), + }, + }, + }; +} diff --git a/x-pack/test/threat_intelligence_cypress/ftr_provider_context.d.ts b/x-pack/plugins/observability_solution/inventory/.storybook/jest_setup.js similarity index 59% rename from x-pack/test/threat_intelligence_cypress/ftr_provider_context.d.ts rename to x-pack/plugins/observability_solution/inventory/.storybook/jest_setup.js index aa56557c09df8..32071b8aa3f62 100644 --- a/x-pack/test/threat_intelligence_cypress/ftr_provider_context.d.ts +++ b/x-pack/plugins/observability_solution/inventory/.storybook/jest_setup.js @@ -5,8 +5,7 @@ * 2.0. */ -import { GenericFtrProviderContext } from '@kbn/test'; +import { setGlobalConfig } from '@storybook/testing-react'; +import * as globalStorybookConfig from './preview'; -import { services } from './services'; - -export type FtrProviderContext = GenericFtrProviderContext; +setGlobalConfig(globalStorybookConfig); diff --git a/x-pack/plugins/observability_solution/inventory/.storybook/main.js b/x-pack/plugins/observability_solution/inventory/.storybook/main.js new file mode 100644 index 0000000000000..86b48c32f103e --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/.storybook/main.js @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +module.exports = require('@kbn/storybook').defaultConfig; diff --git a/x-pack/plugins/observability_solution/inventory/.storybook/preview.js b/x-pack/plugins/observability_solution/inventory/.storybook/preview.js new file mode 100644 index 0000000000000..c8155e9c3d92c --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/.storybook/preview.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiThemeProviderDecorator } from '@kbn/kibana-react-plugin/common'; +import * as jest from 'jest-mock'; + +window.jest = jest; + +export const decorators = [EuiThemeProviderDecorator]; diff --git a/x-pack/plugins/observability_solution/inventory/.storybook/storybook_decorator.tsx b/x-pack/plugins/observability_solution/inventory/.storybook/storybook_decorator.tsx new file mode 100644 index 0000000000000..87589988492d8 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/.storybook/storybook_decorator.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React, { ComponentType, useMemo } from 'react'; +import { InventoryContextProvider } from '../public/components/inventory_context_provider'; +import { getMockInventoryContext } from './get_mock_inventory_context'; + +export function KibanaReactStorybookDecorator(Story: ComponentType) { + const context = useMemo(() => getMockInventoryContext(), []); + return ( + + + + ); +} diff --git a/x-pack/plugins/observability_solution/inventory/README.md b/x-pack/plugins/observability_solution/inventory/README.md new file mode 100644 index 0000000000000..446b85483402c --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/README.md @@ -0,0 +1,3 @@ +# Inventory + +Home of the Inventory plugin, which renders the... _inventory_. diff --git a/x-pack/plugins/observability_solution/inventory/common/entities.ts b/x-pack/plugins/observability_solution/inventory/common/entities.ts new file mode 100644 index 0000000000000..af0e5c82b978f --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/common/entities.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export interface EntityTypeDefinition { + type: string; + label: string; + icon: string; + count: number; +} + +export interface EntityDefinition { + type: string; + field: string; + filter?: string; + index: string[]; +} diff --git a/x-pack/plugins/observability_solution/inventory/jest.config.js b/x-pack/plugins/observability_solution/inventory/jest.config.js new file mode 100644 index 0000000000000..4e4450567243c --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/jest.config.js @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../../..', + roots: [ + '/x-pack/plugins/observability_solution/inventory/public', + '/x-pack/plugins/observability_solution/inventory/common', + '/x-pack/plugins/observability_solution/inventory/server', + ], + setupFiles: [ + '/x-pack/plugins/observability_solution/inventory/.storybook/jest_setup.js', + ], + collectCoverage: true, + collectCoverageFrom: [ + '/x-pack/plugins/observability_solution/inventory/{public,common,server}/**/*.{js,ts,tsx}', + ], + + coverageReporters: ['html'], +}; diff --git a/x-pack/plugins/observability_solution/inventory/kibana.jsonc b/x-pack/plugins/observability_solution/inventory/kibana.jsonc new file mode 100644 index 0000000000000..ced0f412ab935 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/kibana.jsonc @@ -0,0 +1,22 @@ +{ + "type": "plugin", + "id": "@kbn/inventory-plugin", + "owner": "@elastic/obs-ux-infra_services-team", + "plugin": { + "id": "inventory", + "server": true, + "browser": true, + "configPath": ["xpack", "inventory"], + "requiredPlugins": [ + "observabilityShared", + "entityManager", + "inference", + "dataViews" + ], + "requiredBundles": [ + "kibanaReact" + ], + "optionalPlugins": [], + "extraPublicDirs": [] + } +} diff --git a/x-pack/plugins/observability_solution/inventory/public/api/index.tsx b/x-pack/plugins/observability_solution/inventory/public/api/index.tsx new file mode 100644 index 0000000000000..4600813a1f548 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/api/index.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { CoreSetup, CoreStart, HttpFetchOptions } from '@kbn/core/public'; +import type { + ClientRequestParamsOf, + ReturnOf, + RouteRepositoryClient, +} from '@kbn/server-route-repository'; +import { createRepositoryClient } from '@kbn/server-route-repository-client'; +import type { InventoryServerRouteRepository } from '../../server'; + +type FetchOptions = Omit & { + body?: any; +}; + +export type InventoryAPIClientOptions = Omit< + FetchOptions, + 'query' | 'body' | 'pathname' | 'signal' +> & { + signal: AbortSignal | null; +}; + +export type InventoryAPIClient = RouteRepositoryClient< + InventoryServerRouteRepository, + InventoryAPIClientOptions +>; + +export type AutoAbortedInventoryAPIClient = RouteRepositoryClient< + InventoryServerRouteRepository, + Omit +>; + +export type InventoryAPIEndpoint = keyof InventoryServerRouteRepository; + +export type APIReturnType = ReturnOf< + InventoryServerRouteRepository, + TEndpoint +>; + +export type InventoryAPIClientRequestParamsOf = + ClientRequestParamsOf; + +export function createCallInventoryAPI(core: CoreStart | CoreSetup): InventoryAPIClient { + return createRepositoryClient(core); +} diff --git a/x-pack/plugins/observability_solution/inventory/public/application.tsx b/x-pack/plugins/observability_solution/inventory/public/application.tsx new file mode 100644 index 0000000000000..5b235c15e7c4f --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/application.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { CoreStart, CoreTheme } from '@kbn/core/public'; +import { RedirectAppLinks } from '@kbn/shared-ux-link-redirect-app'; +import type { History } from 'history'; +import React, { useMemo } from 'react'; +import type { Observable } from 'rxjs'; +import { RouteRenderer, RouterProvider } from '@kbn/typed-react-router-config'; +import { KibanaRenderContextProvider } from '@kbn/react-kibana-context-render'; +import type { InventoryStartDependencies } from './types'; +import { inventoryRouter } from './routes/config'; +import { InventoryKibanaContext } from './hooks/use_kibana'; +import { InventoryServices } from './services/types'; +import { InventoryContextProvider } from './components/inventory_context_provider'; + +function Application({ + coreStart, + history, + pluginsStart, + theme$, + services, +}: { + coreStart: CoreStart; + history: History; + pluginsStart: InventoryStartDependencies; + theme$: Observable; + services: InventoryServices; +}) { + const theme = useMemo(() => { + return { theme$ }; + }, [theme$]); + + const context: InventoryKibanaContext = useMemo( + () => ({ + core: coreStart, + dependencies: { + start: pluginsStart, + }, + services, + }), + [coreStart, pluginsStart, services] + ); + + return ( + + + + + + + + + + + + ); +} + +export { Application }; diff --git a/x-pack/plugins/observability_solution/inventory/public/components/entity_type_list/index.stories.tsx b/x-pack/plugins/observability_solution/inventory/public/components/entity_type_list/index.stories.tsx new file mode 100644 index 0000000000000..570622406c9ae --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/components/entity_type_list/index.stories.tsx @@ -0,0 +1,88 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Meta, StoryObj } from '@storybook/react'; +import React from 'react'; +import { mergePlainObjects } from '@kbn/investigate-plugin/common'; +import { EntityTypeListBase as Component } from '.'; +import { KibanaReactStorybookDecorator } from '../../../.storybook/storybook_decorator'; + +interface Args { + props: Omit, 'onLockAllClick' | 'onUnlockAllClick'>; +} + +type StoryMeta = Meta; +type Story = StoryObj; + +const meta: StoryMeta = { + component: Component, + title: 'app/Molecules/EntityTypeList', + decorators: [KibanaReactStorybookDecorator], +}; + +export default meta; + +const defaultStory: Story = { + args: { + props: { + definitions: [], + loading: true, + }, + }, + render: function Render(args) { + return ( +
    + +
    + ); + }, +}; + +export const Default: Story = { + ...defaultStory, + args: { + props: mergePlainObjects(defaultStory.args!.props!, { + loading: false, + definitions: [ + { + icon: 'node', + label: 'Services', + type: 'service', + count: 9, + }, + { + icon: 'pipeNoBreaks', + label: 'Datasets', + type: 'dataset', + count: 11, + }, + ], + }), + }, + name: 'default', +}; + +export const Empty: Story = { + ...defaultStory, + args: { + props: mergePlainObjects(defaultStory.args!.props!, { + definitions: [], + loading: false, + }), + }, + name: 'empty', +}; + +export const Loading: Story = { + ...defaultStory, + args: { + props: mergePlainObjects(defaultStory.args!.props!, { + loading: true, + }), + }, + name: 'loading', +}; diff --git a/x-pack/plugins/observability_solution/inventory/public/components/entity_type_list/index.tsx b/x-pack/plugins/observability_solution/inventory/public/components/entity_type_list/index.tsx new file mode 100644 index 0000000000000..47488f23f3252 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/components/entity_type_list/index.tsx @@ -0,0 +1,96 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { useAbortableAsync } from '@kbn/observability-utils/hooks/use_abortable_async'; +import { + EuiBadge, + EuiFlexGroup, + EuiFlexItem, + EuiIcon, + EuiLink, + EuiLoadingSpinner, + EuiText, +} from '@elastic/eui'; +import { useKibana } from '../../hooks/use_kibana'; +import { EntityTypeDefinition } from '../../../common/entities'; +import { useInventoryRouter } from '../../hooks/use_inventory_router'; + +export function EntityTypeListItem({ + href, + icon, + label, + count, +}: { + href: string; + icon: string; + label: string; + count: number; +}) { + return ( + + + + + + + {label} + + + {count} + + + + ); +} + +export function EntityTypeListBase({ + definitions, + loading, + error, +}: { + loading?: boolean; + definitions?: EntityTypeDefinition[]; + error?: Error; +}) { + const router = useInventoryRouter(); + if (loading) { + return ; + } + + return ( + + {definitions?.map((definition) => { + return ( + + ); + })} + + ); +} + +export function EntityTypeList() { + const { + services: { inventoryAPIClient }, + } = useKibana(); + + const { value, loading, error } = useAbortableAsync( + ({ signal }) => { + return inventoryAPIClient.fetch('GET /internal/inventory/entity_types', { + signal, + }); + }, + [inventoryAPIClient] + ); + + return ; +} diff --git a/x-pack/plugins/observability_solution/inventory/public/components/inventory_context_provider/index.tsx b/x-pack/plugins/observability_solution/inventory/public/components/inventory_context_provider/index.tsx new file mode 100644 index 0000000000000..068086dd17ccb --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/components/inventory_context_provider/index.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; +import type { InventoryKibanaContext } from '../../hooks/use_kibana'; + +export function InventoryContextProvider({ + context, + children, +}: { + context: InventoryKibanaContext; + children: React.ReactNode; +}) { + return {children}; +} diff --git a/x-pack/plugins/observability_solution/inventory/public/components/inventory_page_template/index.tsx b/x-pack/plugins/observability_solution/inventory/public/components/inventory_page_template/index.tsx new file mode 100644 index 0000000000000..386df9a51cae5 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/components/inventory_page_template/index.tsx @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { EuiFlexGroup, EuiPanel, EuiTitle } from '@elastic/eui'; +import { css } from '@emotion/css'; +import { i18n } from '@kbn/i18n'; +import { useTheme } from '@kbn/observability-utils/hooks/use_theme'; +import React from 'react'; +import { useKibana } from '../../hooks/use_kibana'; +import { EntityTypeList } from '../entity_type_list'; + +export function InventoryPageTemplate({ children }: { children: React.ReactNode }) { + const { + dependencies: { + start: { observabilityShared }, + }, + } = useKibana(); + + const { PageTemplate } = observabilityShared.navigation; + + const theme = useTheme(); + + return ( + + + + + +

    + {i18n.translate('xpack.inventory.inventoryPageHeaderLabel', { + defaultMessage: 'Inventory', + })} +

    +
    + + + +
    +
    + + + {children} + +
    +
    + ); +} diff --git a/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_params.ts b/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_params.ts new file mode 100644 index 0000000000000..e39506a6fabee --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_params.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { type PathsOf, type TypeOf, useParams } from '@kbn/typed-react-router-config'; +import type { InventoryRoutes } from '../routes/config'; + +export function useInventoryParams>( + path: TPath +): TypeOf { + return useParams(path)! as TypeOf; +} diff --git a/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_route_path.ts b/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_route_path.ts new file mode 100644 index 0000000000000..9edb2a7da75de --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_route_path.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PathsOf, useRoutePath } from '@kbn/typed-react-router-config'; +import type { InventoryRoutes } from '../routes/config'; + +export function useInventoryRoutePath() { + const path = useRoutePath(); + + return path as PathsOf; +} diff --git a/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_router.ts b/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_router.ts new file mode 100644 index 0000000000000..5c968eaf852ed --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/hooks/use_inventory_router.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PathsOf, TypeAsArgs, TypeOf } from '@kbn/typed-react-router-config'; +import { useMemo } from 'react'; +import type { InventoryRouter, InventoryRoutes } from '../routes/config'; +import { inventoryRouter } from '../routes/config'; +import { useKibana } from './use_kibana'; + +interface StatefulInventoryRouter extends InventoryRouter { + push>( + path: T, + ...params: TypeAsArgs> + ): void; + replace>( + path: T, + ...params: TypeAsArgs> + ): void; +} + +export function useInventoryRouter(): StatefulInventoryRouter { + const { + core: { + http, + application: { navigateToApp }, + }, + } = useKibana(); + + const link = (...args: any[]) => { + // @ts-expect-error + return inventoryRouter.link(...args); + }; + + return useMemo( + () => ({ + ...inventoryRouter, + push: (...args) => { + const next = link(...args); + navigateToApp('inventory', { path: next, replace: false }); + }, + replace: (path, ...args) => { + const next = link(path, ...args); + navigateToApp('inventory', { path: next, replace: true }); + }, + link: (path, ...args) => { + return http.basePath.prepend('/app/observability/inventory' + link(path, ...args)); + }, + }), + [navigateToApp, http.basePath] + ); +} diff --git a/x-pack/plugins/observability_solution/inventory/public/hooks/use_kibana.tsx b/x-pack/plugins/observability_solution/inventory/public/hooks/use_kibana.tsx new file mode 100644 index 0000000000000..2b75cc513b241 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/hooks/use_kibana.tsx @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import type { CoreStart } from '@kbn/core/public'; +import type { InventoryStartDependencies } from '../types'; +import type { InventoryServices } from '../services/types'; + +export interface InventoryKibanaContext { + core: CoreStart; + dependencies: { start: InventoryStartDependencies }; + services: InventoryServices; +} + +const useTypedKibana = () => { + return useKibana().services; +}; + +export { useTypedKibana as useKibana }; diff --git a/x-pack/plugins/observability_solution/inventory/public/index.ts b/x-pack/plugins/observability_solution/inventory/public/index.ts new file mode 100644 index 0000000000000..620d853e34757 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/index.ts @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { PluginInitializer, PluginInitializerContext } from '@kbn/core/public'; + +import { InventoryPlugin } from './plugin'; +import type { + InventoryPublicSetup, + InventoryPublicStart, + InventorySetupDependencies, + InventoryStartDependencies, + ConfigSchema, +} from './types'; + +export type { InventoryPublicSetup, InventoryPublicStart }; + +export const plugin: PluginInitializer< + InventoryPublicSetup, + InventoryPublicStart, + InventorySetupDependencies, + InventoryStartDependencies +> = (pluginInitializerContext: PluginInitializerContext) => + new InventoryPlugin(pluginInitializerContext); diff --git a/x-pack/plugins/observability_solution/inventory/public/plugin.tsx b/x-pack/plugins/observability_solution/inventory/public/plugin.tsx new file mode 100644 index 0000000000000..355309939ea6c --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/plugin.tsx @@ -0,0 +1,114 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { i18n } from '@kbn/i18n'; +import { + AppMountParameters, + APP_WRAPPER_CLASS, + CoreSetup, + CoreStart, + DEFAULT_APP_CATEGORIES, + Plugin, + PluginInitializerContext, +} from '@kbn/core/public'; +import type { Logger } from '@kbn/logging'; +import { INVENTORY_APP_ID } from '@kbn/deeplinks-observability/constants'; +import { css } from '@emotion/css'; +import type { + ConfigSchema, + InventoryPublicSetup, + InventoryPublicStart, + InventorySetupDependencies, + InventoryStartDependencies, +} from './types'; +import { InventoryServices } from './services/types'; +import { createCallInventoryAPI } from './api'; + +export class InventoryPlugin + implements + Plugin< + InventoryPublicSetup, + InventoryPublicStart, + InventorySetupDependencies, + InventoryStartDependencies + > +{ + logger: Logger; + + constructor(context: PluginInitializerContext) { + this.logger = context.logger.get(); + } + setup( + coreSetup: CoreSetup, + pluginsSetup: InventorySetupDependencies + ): InventoryPublicSetup { + const inventoryAPIClient = createCallInventoryAPI(coreSetup); + + coreSetup.application.register({ + id: INVENTORY_APP_ID, + title: i18n.translate('xpack.inventory.appTitle', { + defaultMessage: 'Inventory', + }), + euiIconType: 'logoObservability', + appRoute: '/app/observability/inventory', + category: DEFAULT_APP_CATEGORIES.observability, + visibleIn: ['sideNav'], + order: 8001, + deepLinks: [ + { + id: 'inventory', + title: i18n.translate('xpack.inventory.inventoryDeepLinkTitle', { + defaultMessage: 'Inventory', + }), + path: '/', + }, + ], + mount: async (appMountParameters: AppMountParameters) => { + // Load application bundle and Get start services + const [{ Application }, [coreStart, pluginsStart]] = await Promise.all([ + import('./application'), + coreSetup.getStartServices(), + ]); + + const services: InventoryServices = { + inventoryAPIClient, + }; + + ReactDOM.render( + , + appMountParameters.element + ); + + const appWrapperClassName = css` + overflow: auto; + `; + + const appWrapperElement = document.getElementsByClassName(APP_WRAPPER_CLASS)[1]; + + appWrapperElement.classList.add(appWrapperClassName); + + return () => { + ReactDOM.unmountComponentAtNode(appMountParameters.element); + appWrapperElement.classList.remove(appWrapperClassName); + }; + }, + }); + + return {}; + } + + start(coreStart: CoreStart, pluginsStart: InventoryStartDependencies): InventoryPublicStart { + return {}; + } +} diff --git a/x-pack/plugins/observability_solution/inventory/public/routes/config.tsx b/x-pack/plugins/observability_solution/inventory/public/routes/config.tsx new file mode 100644 index 0000000000000..11d9d4836d981 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/routes/config.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import * as t from 'io-ts'; +import { createRouter, Outlet } from '@kbn/typed-react-router-config'; +import React from 'react'; +import { InventoryPageTemplate } from '../components/inventory_page_template'; + +/** + * The array of route definitions to be used when the application + * creates the routes. + */ +const inventoryRoutes = { + '/': { + element: ( + + + + ), + children: { + '/{type}': { + element: <>, + params: t.type({ + path: t.type({ type: t.string }), + }), + }, + '/': { + element: <>, + }, + }, + }, +}; + +export type InventoryRoutes = typeof inventoryRoutes; + +export const inventoryRouter = createRouter(inventoryRoutes); + +export type InventoryRouter = typeof inventoryRouter; diff --git a/x-pack/test/threat_intelligence_cypress/pipelines/pipeline.ts b/x-pack/plugins/observability_solution/inventory/public/services/types.ts similarity index 65% rename from x-pack/test/threat_intelligence_cypress/pipelines/pipeline.ts rename to x-pack/plugins/observability_solution/inventory/public/services/types.ts index 61f383394c469..008437fbf8895 100644 --- a/x-pack/test/threat_intelligence_cypress/pipelines/pipeline.ts +++ b/x-pack/plugins/observability_solution/inventory/public/services/types.ts @@ -5,8 +5,8 @@ * 2.0. */ -export interface Pipeline { - name: string; - processors: Array>; - on_failure?: Array>; +import type { InventoryAPIClient } from '../api'; + +export interface InventoryServices { + inventoryAPIClient: InventoryAPIClient; } diff --git a/x-pack/plugins/observability_solution/inventory/public/types.ts b/x-pack/plugins/observability_solution/inventory/public/types.ts new file mode 100644 index 0000000000000..66c0789650a08 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/public/types.ts @@ -0,0 +1,29 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { + ObservabilitySharedPluginStart, + ObservabilitySharedPluginSetup, +} from '@kbn/observability-shared-plugin/public'; +import type { InferencePublicStart, InferencePublicSetup } from '@kbn/inference-plugin/public'; + +/* eslint-disable @typescript-eslint/no-empty-interface*/ + +export interface ConfigSchema {} + +export interface InventorySetupDependencies { + observabilityShared: ObservabilitySharedPluginSetup; + inference: InferencePublicSetup; +} + +export interface InventoryStartDependencies { + observabilityShared: ObservabilitySharedPluginStart; + inference: InferencePublicStart; +} + +export interface InventoryPublicSetup {} + +export interface InventoryPublicStart {} diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/rule_overview/mocks/mock_context.ts b/x-pack/plugins/observability_solution/inventory/server/config.ts similarity index 55% rename from x-pack/plugins/security_solution/public/flyout/document_details/rule_overview/mocks/mock_context.ts rename to x-pack/plugins/observability_solution/inventory/server/config.ts index 4b800e338d85b..2d6d7604b40e1 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/rule_overview/mocks/mock_context.ts +++ b/x-pack/plugins/observability_solution/inventory/server/config.ts @@ -5,11 +5,10 @@ * 2.0. */ -import type { RuleOverviewPanelContext } from '../context'; +import { schema, type TypeOf } from '@kbn/config-schema'; -/** - * Mock contextValue for rule overview panel context - */ -export const mockContextValue: RuleOverviewPanelContext = { - ruleId: 'rule id', -}; +export const config = schema.object({ + enabled: schema.boolean({ defaultValue: false }), +}); + +export type InventoryConfig = TypeOf; diff --git a/x-pack/plugins/observability_solution/inventory/server/index.ts b/x-pack/plugins/observability_solution/inventory/server/index.ts new file mode 100644 index 0000000000000..ad878918bad47 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/server/index.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { + PluginConfigDescriptor, + PluginInitializer, + PluginInitializerContext, +} from '@kbn/core/server'; +import type { InventoryConfig } from './config'; +import { InventoryPlugin } from './plugin'; +import type { + InventoryServerSetup, + InventoryServerStart, + InventorySetupDependencies, + InventoryStartDependencies, +} from './types'; + +export type { InventoryServerRouteRepository } from './routes/get_global_inventory_route_repository'; + +export type { InventoryServerSetup, InventoryServerStart }; + +import { config as configSchema } from './config'; + +export const config: PluginConfigDescriptor = { + schema: configSchema, +}; + +export const plugin: PluginInitializer< + InventoryServerSetup, + InventoryServerStart, + InventorySetupDependencies, + InventoryStartDependencies +> = async (pluginInitializerContext: PluginInitializerContext) => + new InventoryPlugin(pluginInitializerContext); diff --git a/x-pack/plugins/observability_solution/inventory/server/plugin.ts b/x-pack/plugins/observability_solution/inventory/server/plugin.ts new file mode 100644 index 0000000000000..1ac928b72cdb2 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/server/plugin.ts @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from '@kbn/core/server'; +import type { Logger } from '@kbn/logging'; +import { mapValues } from 'lodash'; +import { registerServerRoutes } from './routes/register_routes'; +import { InventoryRouteHandlerResources } from './routes/types'; +import type { + ConfigSchema, + InventoryServerSetup, + InventoryServerStart, + InventorySetupDependencies, + InventoryStartDependencies, +} from './types'; + +export class InventoryPlugin + implements + Plugin< + InventoryServerSetup, + InventoryServerStart, + InventorySetupDependencies, + InventoryStartDependencies + > +{ + logger: Logger; + + constructor(context: PluginInitializerContext) { + this.logger = context.logger.get(); + } + setup( + coreSetup: CoreSetup, + pluginsSetup: InventorySetupDependencies + ): InventoryServerSetup { + const startServicesPromise = coreSetup + .getStartServices() + .then(([_coreStart, pluginsStart]) => pluginsStart); + + registerServerRoutes({ + core: coreSetup, + logger: this.logger, + dependencies: { + plugins: mapValues(pluginsSetup, (value, key) => { + return { + start: () => + startServicesPromise.then( + (startServices) => startServices[key as keyof typeof startServices] + ), + setup: () => value, + }; + }) as unknown as InventoryRouteHandlerResources['plugins'], + }, + }); + return {}; + } + + start(core: CoreStart, pluginsStart: InventoryStartDependencies): InventoryServerStart { + return {}; + } +} diff --git a/x-pack/plugins/observability_solution/inventory/server/routes/create_inventory_server_route.ts b/x-pack/plugins/observability_solution/inventory/server/routes/create_inventory_server_route.ts new file mode 100644 index 0000000000000..61c00e3b417ad --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/server/routes/create_inventory_server_route.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { createServerRouteFactory } from '@kbn/server-route-repository'; +import type { InventoryRouteCreateOptions, InventoryRouteHandlerResources } from './types'; + +export const createInventoryServerRoute = createServerRouteFactory< + InventoryRouteHandlerResources, + InventoryRouteCreateOptions +>(); diff --git a/x-pack/plugins/observability_solution/inventory/server/routes/entities/route.ts b/x-pack/plugins/observability_solution/inventory/server/routes/entities/route.ts new file mode 100644 index 0000000000000..0622ed32ac9dc --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/server/routes/entities/route.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { i18n } from '@kbn/i18n'; +import type { EntityTypeDefinition } from '../../../common/entities'; +import { createInventoryServerRoute } from '../create_inventory_server_route'; + +export const listEntityTypesRoute = createInventoryServerRoute({ + endpoint: 'GET /internal/inventory/entity_types', + options: { + tags: ['access:inventory'], + }, + handler: async ({ plugins, request }): Promise<{ definitions: EntityTypeDefinition[] }> => { + return { + definitions: [ + { + label: i18n.translate('xpack.inventory.entityTypeLabels.datasets', { + defaultMessage: 'Datasets', + }), + icon: 'pipeNoBreaks', + type: 'dataset', + count: 0, + }, + ], + }; + }, +}); + +export const entitiesRoutes = { + ...listEntityTypesRoute, +}; diff --git a/x-pack/plugins/observability_solution/inventory/server/routes/get_global_inventory_route_repository.ts b/x-pack/plugins/observability_solution/inventory/server/routes/get_global_inventory_route_repository.ts new file mode 100644 index 0000000000000..190178cb25a95 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/server/routes/get_global_inventory_route_repository.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { entitiesRoutes } from './entities/route'; + +export function getGlobalInventoryServerRouteRepository() { + return { + ...entitiesRoutes, + }; +} + +export type InventoryServerRouteRepository = ReturnType< + typeof getGlobalInventoryServerRouteRepository +>; diff --git a/x-pack/plugins/observability_solution/inventory/server/routes/register_routes.ts b/x-pack/plugins/observability_solution/inventory/server/routes/register_routes.ts new file mode 100644 index 0000000000000..d6b8223c8ca77 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/server/routes/register_routes.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { CoreSetup } from '@kbn/core/server'; +import type { Logger } from '@kbn/logging'; +import { registerRoutes } from '@kbn/server-route-repository'; +import { getGlobalInventoryServerRouteRepository } from './get_global_inventory_route_repository'; +import type { InventoryRouteHandlerResources } from './types'; + +export function registerServerRoutes({ + core, + logger, + dependencies, +}: { + core: CoreSetup; + logger: Logger; + dependencies: Omit; +}) { + registerRoutes({ + core, + logger, + repository: getGlobalInventoryServerRouteRepository(), + dependencies, + }); +} diff --git a/x-pack/plugins/observability_solution/inventory/server/routes/types.ts b/x-pack/plugins/observability_solution/inventory/server/routes/types.ts new file mode 100644 index 0000000000000..397710509dab5 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/server/routes/types.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { CustomRequestHandlerContext, KibanaRequest } from '@kbn/core/server'; +import type { LicensingApiRequestHandlerContext } from '@kbn/licensing-plugin/server/types'; +import type { Logger } from '@kbn/logging'; +import type { InventorySetupDependencies, InventoryStartDependencies } from '../types'; + +export type InventoryRequestHandlerContext = CustomRequestHandlerContext<{ + licensing: Pick; +}>; + +export interface InventoryRouteHandlerResources { + request: KibanaRequest; + context: InventoryRequestHandlerContext; + logger: Logger; + plugins: { + [key in keyof InventorySetupDependencies]: { + setup: Required[key]; + }; + } & { + [key in keyof InventoryStartDependencies]: { + start: () => Promise[key]>; + }; + }; +} + +export interface InventoryRouteCreateOptions { + options: { + timeout?: { + idleSocket?: number; + }; + tags: Array<'access:inventory'>; + }; +} diff --git a/x-pack/plugins/observability_solution/inventory/server/types.ts b/x-pack/plugins/observability_solution/inventory/server/types.ts new file mode 100644 index 0000000000000..a58bd62fe57a9 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/server/types.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import type { + EntityManagerServerPluginStart, + EntityManagerServerPluginSetup, +} from '@kbn/entityManager-plugin/server'; +import type { InferenceServerSetup, InferenceServerStart } from '@kbn/inference-plugin/server'; +import type { + DataViewsServerPluginSetup, + DataViewsServerPluginStart, +} from '@kbn/data-views-plugin/server'; +/* eslint-disable @typescript-eslint/no-empty-interface*/ + +export interface ConfigSchema {} + +export interface InventorySetupDependencies { + entityManager: EntityManagerServerPluginSetup; + inference: InferenceServerSetup; + dataViews: DataViewsServerPluginSetup; +} + +export interface InventoryStartDependencies { + entityManager: EntityManagerServerPluginStart; + inference: InferenceServerStart; + dataViews: DataViewsServerPluginStart; +} + +export interface InventoryServerSetup {} + +export interface InventoryClient {} + +export interface InventoryServerStart {} diff --git a/x-pack/plugins/observability_solution/inventory/tsconfig.json b/x-pack/plugins/observability_solution/inventory/tsconfig.json new file mode 100644 index 0000000000000..89fdd2e8fdf01 --- /dev/null +++ b/x-pack/plugins/observability_solution/inventory/tsconfig.json @@ -0,0 +1,39 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types" + }, + "include": [ + "../../../typings/**/*", + "common/**/*", + "public/**/*", + "typings/**/*", + "public/**/*.json", + "server/**/*", + ".storybook/**/*" + ], + "exclude": [ + "target/**/*", + ".storybook/**/*.js" + ], + "kbn_references": [ + "@kbn/core", + "@kbn/logging", + "@kbn/config-schema", + "@kbn/observability-shared-plugin", + "@kbn/server-route-repository", + "@kbn/shared-ux-link-redirect-app", + "@kbn/typed-react-router-config", + "@kbn/investigate-plugin", + "@kbn/observability-utils", + "@kbn/kibana-react-plugin", + "@kbn/i18n", + "@kbn/deeplinks-observability", + "@kbn/entityManager-plugin", + "@kbn/licensing-plugin", + "@kbn/inference-plugin", + "@kbn/data-views-plugin", + "@kbn/server-route-repository-client", + "@kbn/react-kibana-context-render", + ] +} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/api/index.ts b/x-pack/plugins/observability_solution/investigate_app/public/api/index.ts index 8421a212ac1a4..af02f4a15e740 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/api/index.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/api/index.ts @@ -28,12 +28,12 @@ export type InvestigateAppAPIClientOptions = Omit< export type InvestigateAppAPIClient = RouteRepositoryClient< InvestigateAppServerRouteRepository, InvestigateAppAPIClientOptions ->; +>['fetch']; export type AutoAbortedInvestigateAppAPIClient = RouteRepositoryClient< InvestigateAppServerRouteRepository, Omit ->; +>['fetch']; export type InvestigateAppAPIEndpoint = keyof InvestigateAppServerRouteRepository; diff --git a/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/fields/status_field.tsx b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/fields/status_field.tsx index aa3f071b36dec..dc392aea28195 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/fields/status_field.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/fields/status_field.tsx @@ -5,8 +5,9 @@ * 2.0. */ -import { EuiIcon, EuiFormRow, EuiComboBox } from '@elastic/eui'; +import { EuiComboBox, EuiFormRow } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { InvestigationResponse } from '@kbn/investigation-shared'; import React from 'react'; import { Controller, useFormContext } from 'react-hook-form'; import { InvestigationForm } from '../investigation_edit_form'; @@ -16,16 +17,39 @@ const I18N_STATUS_LABEL = i18n.translate( { defaultMessage: 'Status' } ); +export const statusToColor: Record = { + triage: 'warning', + active: 'danger', + mitigated: 'success', + resolved: 'success', + cancelled: 'default', +}; + const options = [ { - label: 'Ongoing', - value: 'ongoing', - prepend: , + label: 'Triage', + value: 'triage', + color: statusToColor.triage, + }, + { + label: 'Active', + value: 'active', + color: statusToColor.active, + }, + { + label: 'Mitigated', + value: 'mitigated', + color: statusToColor.mitigated, + }, + { + label: 'Resolved', + value: 'resolved', + color: statusToColor.resolved, }, { - label: 'Closed', - value: 'closed', - prepend: , + label: 'Cancelled', + value: 'cancelled', + color: statusToColor.cancelled, }, ]; @@ -51,7 +75,7 @@ export function StatusField() { onChange={(selected) => { return field.onChange(selected[0].value); }} - singleSelection={{ asPlainText: true }} + singleSelection /> )} /> diff --git a/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/fields/tags_field.tsx b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/fields/tags_field.tsx new file mode 100644 index 0000000000000..fb6555de53f34 --- /dev/null +++ b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/fields/tags_field.tsx @@ -0,0 +1,74 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiFormRow, EuiComboBox } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React from 'react'; +import { Controller, useFormContext } from 'react-hook-form'; +import { InvestigationForm } from '../investigation_edit_form'; + +const I18N_TAGS_LABEL = i18n.translate( + 'xpack.investigateApp.investigationEditForm.span.tagsLabel', + { defaultMessage: 'Tags' } +); + +export function TagsField() { + const { control, getFieldState } = useFormContext(); + + return ( + + ( + { + if (selected.length) { + return field.onChange(selected.map((opts) => opts.value)); + } + + field.onChange([]); + }} + onCreateOption={(searchValue: string) => { + const normalizedSearchValue = searchValue.trim().toLowerCase(); + if (!normalizedSearchValue) { + return; + } + + const values = field.value ?? []; + const tagAlreadyExists = values.find( + (tag) => tag.trim().toLowerCase() === normalizedSearchValue + ); + + if (!tagAlreadyExists) { + field.onChange([...values, searchValue]); + } + }} + /> + )} + /> + + ); +} + +function generateTagOptions(tags: string[] = []) { + return tags.map((tag) => ({ + label: tag, + value: tag, + })); +} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/investigation_edit_form.tsx b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/investigation_edit_form.tsx index 5ea7486c2f612..40d845533fe0a 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/investigation_edit_form.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_edit_form/investigation_edit_form.tsx @@ -20,21 +20,24 @@ import { EuiTitle, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { InvestigationResponse } from '@kbn/investigation-shared'; import { pick } from 'lodash'; import React from 'react'; import { Controller, FormProvider, useForm } from 'react-hook-form'; import { v4 as uuidv4 } from 'uuid'; +import { paths } from '../../../common/paths'; import { useCreateInvestigation } from '../../hooks/use_create_investigation'; import { useFetchInvestigation } from '../../hooks/use_fetch_investigation'; +import { useKibana } from '../../hooks/use_kibana'; import { useUpdateInvestigation } from '../../hooks/use_update_investigation'; import { InvestigationNotFound } from '../investigation_not_found/investigation_not_found'; import { StatusField } from './fields/status_field'; -import { useKibana } from '../../hooks/use_kibana'; -import { paths } from '../../../common/paths'; +import { TagsField } from './fields/tags_field'; export interface InvestigationForm { title: string; - status: 'ongoing' | 'closed'; + status: InvestigationResponse['status']; + tags: string[]; } interface Props { @@ -55,15 +58,14 @@ export function InvestigationEditForm({ investigationId, onClose }: Props) { data: investigation, isLoading, isError, - refetch, } = useFetchInvestigation({ id: investigationId }); const { mutateAsync: updateInvestigation } = useUpdateInvestigation(); const { mutateAsync: createInvestigation } = useCreateInvestigation(); const methods = useForm({ - defaultValues: { title: 'New investigation', status: 'ongoing' }, - values: investigation ? pick(investigation, ['title', 'status']) : undefined, + defaultValues: { title: 'New investigation', status: 'triage', tags: [] }, + values: investigation ? pick(investigation, ['title', 'status', 'tags']) : undefined, mode: 'all', }); @@ -79,9 +81,8 @@ export function InvestigationEditForm({ investigationId, onClose }: Props) { if (isEditing) { await updateInvestigation({ investigationId: investigationId!, - payload: { title: data.title, status: data.status }, + payload: { title: data.title, status: data.status, tags: data.tags }, }); - refetch(); onClose(); } else { const resp = await createInvestigation({ @@ -93,6 +94,7 @@ export function InvestigationEditForm({ investigationId, onClose }: Props) { to: new Date().getTime(), }, }, + tags: data.tags, origin: { type: 'blank', }, @@ -147,8 +149,13 @@ export function InvestigationEditForm({ investigationId, onClose }: Props) { />
    + {isEditing && ( + + + + )} - +
    diff --git a/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_not_found/investigation_not_found.tsx b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_not_found/investigation_not_found.tsx index 3c3f6fc1c400d..983a9c473796a 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_not_found/investigation_not_found.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_not_found/investigation_not_found.tsx @@ -16,16 +16,16 @@ export function InvestigationNotFound() { color="danger" title={

    - {i18n.translate('xpack.investigateApp.investigationEditForm.h2.unableToLoadTheLabel', { - defaultMessage: 'Unable to load the investigation form', + {i18n.translate('xpack.investigateApp.InvestigationNotFound.title', { + defaultMessage: 'Unable to load the investigation', })}

    } body={

    - {i18n.translate('xpack.investigateApp.investigationEditForm.p.thereWasAnErrorLabel', { + {i18n.translate('xpack.investigateApp.InvestigationNotFound.body', { defaultMessage: - 'There was an error loading the Investigation. Contact your administrator for help.', + 'There was an error loading the investigation. Contact your administrator for help.', })}

    } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_status_badge/investigation_status_badge.tsx b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_status_badge/investigation_status_badge.tsx new file mode 100644 index 0000000000000..ece4757a4a1a5 --- /dev/null +++ b/x-pack/plugins/observability_solution/investigate_app/public/components/investigation_status_badge/investigation_status_badge.tsx @@ -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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiBadge } from '@elastic/eui'; +import { InvestigationResponse } from '@kbn/investigation-shared'; +import React from 'react'; +import { statusToColor } from '../investigation_edit_form/fields/status_field'; + +interface Props { + status: InvestigationResponse['status']; +} + +export function InvestigationStatusBadge({ status }: Props) { + return {status}; +} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/query_key_factory.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/query_key_factory.ts index b27044ac5acbf..253c38a972fbc 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/query_key_factory.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/query_key_factory.ts @@ -5,17 +5,19 @@ * 2.0. */ +'investigations,list,{page:1,perPage:25}'; + export const investigationKeys = { - all: ['investigation'] as const, - list: (params?: { page: number; perPage: number }) => - [...investigationKeys.all, 'list', ...(params ? [params] : [])] as const, - fetch: (params: { id: string }) => [...investigationKeys.all, 'fetch', params] as const, - notes: ['investigation', 'notes'] as const, - fetchNotes: (params: { investigationId: string }) => - [...investigationKeys.notes, 'fetch', params] as const, - items: ['investigation', 'items'] as const, - fetchItems: (params: { investigationId: string }) => - [...investigationKeys.items, 'fetch', params] as const, + all: ['investigations'] as const, + lists: () => [...investigationKeys.all, 'list'] as const, + list: (params: { page: number; perPage: number }) => + [...investigationKeys.lists(), params] as const, + details: () => [...investigationKeys.all, 'detail'] as const, + detail: (investigationId: string) => [...investigationKeys.details(), investigationId] as const, + detailNotes: (investigationId: string) => + [...investigationKeys.detail(investigationId), 'notes'] as const, + detailItems: (investigationId: string) => + [...investigationKeys.detail(investigationId), 'items'] as const, }; export type InvestigationKeys = typeof investigationKeys; diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_add_investigation_item.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_add_investigation_item.ts index a11b5d976fe00..957b790a619af 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_add_investigation_item.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_add_investigation_item.ts @@ -6,6 +6,7 @@ */ import { IHttpFetchError, ResponseErrorBody } from '@kbn/core/public'; +import { i18n } from '@kbn/i18n'; import { CreateInvestigationItemParams, CreateInvestigationItemResponse, @@ -39,10 +40,26 @@ export function useAddInvestigationItem() { }, { onSuccess: (response, {}) => { - toasts.addSuccess('Item saved'); + toasts.addSuccess( + i18n.translate('xpack.investigateApp.addInvestigationItem.successMessage', { + defaultMessage: 'Item saved', + }) + ); }, onError: (error, {}, context) => { - toasts.addError(new Error(error.body?.message ?? 'An error occurred'), { title: 'Error' }); + toasts.addError( + new Error( + error.body?.message ?? + i18n.translate('xpack.investigateApp.addInvestigationItem.errorMessage', { + defaultMessage: 'an error occurred', + }) + ), + { + title: i18n.translate('xpack.investigateApp.addInvestigationItem.errorTitle', { + defaultMessage: 'Error', + }), + } + ); }, } ); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_add_investigation_note.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_add_investigation_note.ts index 1797174a6f4fa..3f349238c73f5 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_add_investigation_note.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_add_investigation_note.ts @@ -6,6 +6,7 @@ */ import { IHttpFetchError, ResponseErrorBody } from '@kbn/core/public'; +import { i18n } from '@kbn/i18n'; import { CreateInvestigationNoteParams, CreateInvestigationNoteResponse, @@ -39,10 +40,26 @@ export function useAddInvestigationNote() { }, { onSuccess: (response, {}) => { - toasts.addSuccess('Note saved'); + toasts.addSuccess( + i18n.translate('xpack.investigateApp.addInvestigationNote.successMessage', { + defaultMessage: 'Note saved', + }) + ); }, onError: (error, {}, context) => { - toasts.addError(new Error(error.body?.message ?? 'An error occurred'), { title: 'Error' }); + toasts.addError( + new Error( + error.body?.message ?? + i18n.translate('xpack.investigateApp.addInvestigationNote.errorMessage', { + defaultMessage: 'an error occurred', + }) + ), + { + title: i18n.translate('xpack.investigateApp.addInvestigationNote.errorTitle', { + defaultMessage: 'Error', + }), + } + ); }, } ); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_breakpoints.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_breakpoints.ts deleted file mode 100644 index 526cc24287e33..0000000000000 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_breakpoints.ts +++ /dev/null @@ -1,47 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { EuiThemeBreakpoints } from '@elastic/eui'; -import { - useCurrentEuiBreakpoint, - useIsWithinMaxBreakpoint, - useIsWithinMinBreakpoint, -} from '@elastic/eui'; -import { useMemo } from 'react'; -import { Values } from '@kbn/utility-types'; - -export type Breakpoints = Record; - -export const EUI_BREAKPOINTS = { - xs: EuiThemeBreakpoints[0], - s: EuiThemeBreakpoints[1], - m: EuiThemeBreakpoints[2], - l: EuiThemeBreakpoints[3], - xl: EuiThemeBreakpoints[4], -}; - -export type EuiBreakpoint = Values; - -export function useBreakpoints() { - const isXSmall = useIsWithinMaxBreakpoint('xs'); - const isSmall = useIsWithinMaxBreakpoint('s'); - const isMedium = useIsWithinMaxBreakpoint('m'); - const isLarge = useIsWithinMaxBreakpoint('l'); - const isXl = useIsWithinMinBreakpoint('xl'); - - const currentBreakpoint = useCurrentEuiBreakpoint(); - - return useMemo(() => { - return { - isXSmall, - isSmall, - isMedium, - isLarge, - isXl, - currentBreakpoint: (currentBreakpoint ?? EUI_BREAKPOINTS.xl) as EuiBreakpoint, - }; - }, [isXSmall, isSmall, isMedium, isLarge, isXl, currentBreakpoint]); -} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_create_investigation.tsx b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_create_investigation.tsx index 31fda25640224..eb0c6d8873202 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_create_investigation.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_create_investigation.tsx @@ -11,12 +11,15 @@ import { CreateInvestigationResponse, FindInvestigationsResponse, } from '@kbn/investigation-shared'; -import { QueryKey, useMutation } from '@tanstack/react-query'; +import { QueryKey, useMutation, useQueryClient } from '@tanstack/react-query'; +import { i18n } from '@kbn/i18n'; import { useKibana } from './use_kibana'; +import { investigationKeys } from './query_key_factory'; type ServerError = IHttpFetchError; export function useCreateInvestigation() { + const queryClient = useQueryClient(); const { core: { http, @@ -41,10 +44,27 @@ export function useCreateInvestigation() { { onSuccess: (response, investigation, context) => { - toasts.addSuccess('Investigation created'); + toasts.addSuccess( + i18n.translate('xpack.investigateApp.useCreateInvestigation.successMessage', { + defaultMessage: 'Investigation created', + }) + ); + queryClient.invalidateQueries({ queryKey: investigationKeys.lists() }); }, onError: (error, investigation, context) => { - toasts.addError(new Error(error.body?.message ?? 'An error occurred'), { title: 'Error' }); + toasts.addError( + new Error( + error.body?.message ?? + i18n.translate('xpack.investigateApp.useCreateInvestigation.errorMessage', { + defaultMessage: 'an error occurred', + }) + ), + { + title: i18n.translate('xpack.investigateApp.useCreateInvestigation.errorTitle', { + defaultMessage: 'Error', + }), + } + ); }, } ); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation.ts index 3c8dbe7712c22..6995361f35878 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation.ts @@ -35,11 +35,7 @@ export function useDeleteInvestigation() { defaultMessage: 'Investigation deleted successfully', }) ); - queryClient.invalidateQueries({ - queryKey: investigationKeys.list(), - exact: false, - refetchType: 'all', - }); + queryClient.invalidateQueries({ queryKey: investigationKeys.all }); }, onError: (error, {}, context) => { toasts.addError( diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation_item.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation_item.ts index 41c19013e6b2d..a46336b9c80d5 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation_item.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation_item.ts @@ -7,6 +7,7 @@ import { IHttpFetchError, ResponseErrorBody } from '@kbn/core/public'; import { useMutation } from '@tanstack/react-query'; +import { i18n } from '@kbn/i18n'; import { useKibana } from './use_kibana'; type ServerError = IHttpFetchError; @@ -34,10 +35,26 @@ export function useDeleteInvestigationItem() { }, { onSuccess: (response, {}) => { - toasts.addSuccess('Item deleted'); + toasts.addSuccess( + i18n.translate('xpack.investigateApp.useDeleteInvestigationItem.successMessage', { + defaultMessage: 'Item deleted', + }) + ); }, onError: (error, {}, context) => { - toasts.addError(new Error(error.body?.message ?? 'An error occurred'), { title: 'Error' }); + toasts.addError( + new Error( + error.body?.message ?? + i18n.translate('xpack.investigateApp.useDeleteInvestigationItem.errorMessage', { + defaultMessage: 'an error occurred', + }) + ), + { + title: i18n.translate('xpack.investigateApp.useDeleteInvestigationItem.errorTitle', { + defaultMessage: 'Error', + }), + } + ); }, } ); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation_note.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation_note.ts index aed3cc571ec92..8eaeea2d67b87 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation_note.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_delete_investigation_note.ts @@ -7,6 +7,7 @@ import { IHttpFetchError, ResponseErrorBody } from '@kbn/core/public'; import { useMutation } from '@tanstack/react-query'; +import { i18n } from '@kbn/i18n'; import { useKibana } from './use_kibana'; type ServerError = IHttpFetchError; @@ -34,10 +35,26 @@ export function useDeleteInvestigationNote() { }, { onSuccess: (response, {}) => { - toasts.addSuccess('Note deleted'); + toasts.addSuccess( + i18n.translate('xpack.investigateApp.useDeleteInvestigationNote.successMessage', { + defaultMessage: 'Note deleted', + }) + ); }, onError: (error, {}, context) => { - toasts.addError(new Error(error.body?.message ?? 'An error occurred'), { title: 'Error' }); + toasts.addError( + new Error( + error.body?.message ?? + i18n.translate('xpack.investigateApp.useDeleteInvestigationNote.errorMessage', { + defaultMessage: 'an error occurred', + }) + ), + { + title: i18n.translate('xpack.investigateApp.useDeleteInvestigationNote.errorTitle', { + defaultMessage: 'Error', + }), + } + ); }, } ); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation.ts index d9f2379593df4..1054a599b83f8 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation.ts @@ -12,6 +12,7 @@ import { RefetchQueryFilters, useQuery, } from '@tanstack/react-query'; +import { i18n } from '@kbn/i18n'; import { investigationKeys } from './query_key_factory'; import { useKibana } from './use_kibana'; @@ -45,7 +46,7 @@ export function useFetchInvestigation({ const { isInitialLoading, isLoading, isError, isSuccess, isRefetching, data, refetch } = useQuery( { - queryKey: investigationKeys.fetch({ id: id! }), + queryKey: investigationKeys.detail(id!), queryFn: async ({ signal }) => { return await http.get(`/api/observability/investigations/${id}`, { version: '2023-10-31', @@ -56,10 +57,11 @@ export function useFetchInvestigation({ initialData: initialInvestigation, refetchOnWindowFocus: false, refetchInterval: 15 * 1000, - refetchIntervalInBackground: false, onError: (error: Error) => { toasts.addError(error, { - title: 'Something went wrong while fetching Investigations', + title: i18n.translate('xpack.investigateApp.useFetchInvestigation.errorTitle', { + defaultMessage: 'Something went wrong while fetching investigation', + }), }); }, } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_items.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_items.ts index 5cc253fc6c44d..5ebdfc6dd98ef 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_items.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_items.ts @@ -5,10 +5,8 @@ * 2.0. */ -import { - GetInvestigationItemsResponse, - InvestigationItemResponse, -} from '@kbn/investigation-shared'; +import { i18n } from '@kbn/i18n'; +import { GetInvestigationItemsResponse } from '@kbn/investigation-shared'; import { QueryObserverResult, RefetchOptions, @@ -20,7 +18,6 @@ import { useKibana } from './use_kibana'; export interface Params { investigationId: string; - initialItems?: InvestigationItemResponse[]; } export interface Response { @@ -35,7 +32,7 @@ export interface Response { data: GetInvestigationItemsResponse | undefined; } -export function useFetchInvestigationItems({ investigationId, initialItems }: Params): Response { +export function useFetchInvestigationItems({ investigationId }: Params): Response { const { core: { http, @@ -45,20 +42,21 @@ export function useFetchInvestigationItems({ investigationId, initialItems }: Pa const { isInitialLoading, isLoading, isError, isSuccess, isRefetching, data, refetch } = useQuery( { - queryKey: investigationKeys.fetchItems({ investigationId }), + queryKey: investigationKeys.detailItems(investigationId), queryFn: async ({ signal }) => { return await http.get( `/api/observability/investigations/${investigationId}/items`, { version: '2023-10-31', signal } ); }, - initialData: initialItems, refetchOnWindowFocus: false, refetchInterval: 10 * 1000, refetchIntervalInBackground: true, onError: (error: Error) => { toasts.addError(error, { - title: 'Something went wrong while fetching investigation items', + title: i18n.translate('xpack.investigateApp.useFetchInvestigationItems.errorTitle', { + defaultMessage: 'Something went wrong while fetching investigation items', + }), }); }, } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_list.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_list.ts index db9c4264bdf3e..2423a76e06464 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_list.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_list.ts @@ -7,6 +7,7 @@ import { useQuery } from '@tanstack/react-query'; import { FindInvestigationsResponse } from '@kbn/investigation-shared'; +import { i18n } from '@kbn/i18n'; import { investigationKeys } from './query_key_factory'; import { useKibana } from './use_kibana'; @@ -52,18 +53,13 @@ export function useFetchInvestigationList({ signal, }); }, - cacheTime: 0, + refetchInterval: 60 * 1000, refetchOnWindowFocus: false, - retry: (failureCount, error) => { - if (String(error) === 'Error: Forbidden') { - return false; - } - - return failureCount < 3; - }, onError: (error: Error) => { toasts.addError(error, { - title: 'Something went wrong while fetching Investigations', + title: i18n.translate('xpack.investigateApp.useFetchInvestigationList.errorTitle', { + defaultMessage: 'Something went wrong while fetching investigations', + }), }); }, }); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_notes.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_notes.ts index 89a49ee698410..1ff798beb6e42 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_notes.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_fetch_investigation_notes.ts @@ -5,10 +5,8 @@ * 2.0. */ -import { - GetInvestigationNotesResponse, - InvestigationNoteResponse, -} from '@kbn/investigation-shared'; +import { i18n } from '@kbn/i18n'; +import { GetInvestigationNotesResponse } from '@kbn/investigation-shared'; import { QueryObserverResult, RefetchOptions, @@ -20,7 +18,6 @@ import { useKibana } from './use_kibana'; export interface Params { investigationId: string; - initialNotes?: InvestigationNoteResponse[]; } export interface Response { @@ -35,7 +32,7 @@ export interface Response { data: GetInvestigationNotesResponse | undefined; } -export function useFetchInvestigationNotes({ investigationId, initialNotes }: Params): Response { +export function useFetchInvestigationNotes({ investigationId }: Params): Response { const { core: { http, @@ -45,20 +42,20 @@ export function useFetchInvestigationNotes({ investigationId, initialNotes }: Pa const { isInitialLoading, isLoading, isError, isSuccess, isRefetching, data, refetch } = useQuery( { - queryKey: investigationKeys.fetchNotes({ investigationId }), + queryKey: investigationKeys.detailNotes(investigationId), queryFn: async ({ signal }) => { return await http.get( `/api/observability/investigations/${investigationId}/notes`, { version: '2023-10-31', signal } ); }, - initialData: initialNotes, refetchOnWindowFocus: false, refetchInterval: 10 * 1000, - refetchIntervalInBackground: true, onError: (error: Error) => { toasts.addError(error, { - title: 'Something went wrong while fetching investigation notes', + title: i18n.translate('xpack.investigateApp.useFetchInvestigationNotes.errorTitle', { + defaultMessage: 'Something went wrong while fetching investigation notes', + }), }); }, } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_local_storage.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_local_storage.ts deleted file mode 100644 index 8c67101337ef4..0000000000000 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_local_storage.ts +++ /dev/null @@ -1,50 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { useEffect, useMemo, useState } from 'react'; - -function getFromStorage(keyName: string, defaultValue: T) { - const storedItem = window.localStorage.getItem(keyName); - - if (storedItem !== null) { - try { - return JSON.parse(storedItem) as T; - } catch (err) { - window.localStorage.removeItem(keyName); - // eslint-disable-next-line no-console - console.log(`Unable to decode: ${keyName}`); - } - } - return defaultValue; -} - -export function useLocalStorage(key: string, defaultValue: T | undefined) { - const [storedItem, setStoredItem] = useState(() => getFromStorage(key, defaultValue)); - - useEffect(() => { - function onStorageUpdate(e: StorageEvent) { - if (e.key === key) { - setStoredItem((prev) => getFromStorage(key, prev)); - } - } - window.addEventListener('storage', onStorageUpdate); - - return () => { - window.removeEventListener('storage', onStorageUpdate); - }; - }, [key]); - - return useMemo(() => { - return { - storedItem, - setStoredItem: (next: T) => { - window.localStorage.setItem(key, JSON.stringify(next)); - setStoredItem(() => next); - }, - }; - }, [key, storedItem]); -} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_memo_with_abort_signal.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_memo_with_abort_signal.ts deleted file mode 100644 index ec1a87246f15c..0000000000000 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_memo_with_abort_signal.ts +++ /dev/null @@ -1,25 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { useEffect, useMemo, useRef } from 'react'; - -export function useMemoWithAbortSignal(cb: (signal: AbortSignal) => T, deps: any[]): T { - const controllerRef = useRef(new AbortController()); - - useEffect(() => { - const controller = controllerRef.current; - return () => { - controller.abort(); - }; - }, []); - - return useMemo(() => { - controllerRef.current.abort(); - controllerRef.current = new AbortController(); - return cb(controllerRef.current.signal); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, deps); -} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_update_investigation.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_update_investigation.ts index 0661ac9b319ba..ce88a016066f2 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_update_investigation.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_update_investigation.ts @@ -7,12 +7,15 @@ import { IHttpFetchError, ResponseErrorBody } from '@kbn/core/public'; import { UpdateInvestigationParams, UpdateInvestigationResponse } from '@kbn/investigation-shared'; -import { useMutation } from '@tanstack/react-query'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { i18n } from '@kbn/i18n'; import { useKibana } from './use_kibana'; +import { investigationKeys } from './query_key_factory'; type ServerError = IHttpFetchError; export function useUpdateInvestigation() { + const queryClient = useQueryClient(); const { core: { http, @@ -35,11 +38,28 @@ export function useUpdateInvestigation() { ); }, { - onSuccess: (response, {}) => { - toasts.addSuccess('Investigation updated'); + onSuccess: (response, { investigationId }) => { + toasts.addSuccess( + i18n.translate('xpack.investigateApp.useUpdateInvestigation.successMessage', { + defaultMessage: 'Investigation updated', + }) + ); + queryClient.invalidateQueries({ queryKey: investigationKeys.all }); }, onError: (error, {}, context) => { - toasts.addError(new Error(error.body?.message ?? 'An error occurred'), { title: 'Error' }); + toasts.addError( + new Error( + error.body?.message ?? + i18n.translate('xpack.investigateApp.useUpdateInvestigationNote.errorMessage', { + defaultMessage: 'an error occurred', + }) + ), + { + title: i18n.translate('xpack.investigateApp.useUpdateInvestigationNote.errorTitle', { + defaultMessage: 'Error', + }), + } + ); }, } ); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_update_investigation_note.ts b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_update_investigation_note.ts index 312cb90ad289b..14da1ec22feef 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_update_investigation_note.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/hooks/use_update_investigation_note.ts @@ -7,12 +7,15 @@ import { IHttpFetchError, ResponseErrorBody } from '@kbn/core/public'; import { UpdateInvestigationNoteParams } from '@kbn/investigation-shared'; -import { useMutation } from '@tanstack/react-query'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { i18n } from '@kbn/i18n'; import { useKibana } from './use_kibana'; +import { investigationKeys } from './query_key_factory'; type ServerError = IHttpFetchError; export function useUpdateInvestigationNote() { + const queryClient = useQueryClient(); const { core: { http, @@ -26,7 +29,7 @@ export function useUpdateInvestigationNote() { { investigationId: string; noteId: string; note: UpdateInvestigationNoteParams }, { investigationId: string } >( - ['deleteInvestigationNote'], + ['updateInvestigationNote'], ({ investigationId, noteId, note }) => { const body = JSON.stringify(note); return http.put( @@ -35,11 +38,28 @@ export function useUpdateInvestigationNote() { ); }, { - onSuccess: (response, {}) => { - toasts.addSuccess('Note updated'); + onSuccess: (response, { investigationId }) => { + toasts.addSuccess( + i18n.translate('xpack.investigateApp.useUpdateInvestigationNote.successMessage', { + defaultMessage: 'Note updated', + }) + ); + queryClient.invalidateQueries({ queryKey: investigationKeys.detailNotes(investigationId) }); }, onError: (error, {}, context) => { - toasts.addError(new Error(error.body?.message ?? 'An error occurred'), { title: 'Error' }); + toasts.addError( + new Error( + error.body?.message ?? + i18n.translate('xpack.investigateApp.useUpdateInvestigationNote.errorMessage', { + defaultMessage: 'an error occurred', + }) + ), + { + title: i18n.translate('xpack.investigateApp.useUpdateInvestigationNote.errorTitle', { + defaultMessage: 'Error', + }), + } + ); }, } ); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/items/embeddable_item/register_embeddable_item.tsx b/x-pack/plugins/observability_solution/investigate_app/public/items/embeddable_item/register_embeddable_item.tsx index 7e331a6604721..3be16c83c8018 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/items/embeddable_item/register_embeddable_item.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/items/embeddable_item/register_embeddable_item.tsx @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { EuiLoadingSpinner } from '@elastic/eui'; +import { EuiLoadingSpinner, EuiFlexItem } from '@elastic/eui'; import { css } from '@emotion/css'; import { ReactEmbeddableRenderer } from '@kbn/embeddable-plugin/public'; import type { GlobalWidgetParameters } from '@kbn/investigate-plugin/public'; @@ -15,6 +15,8 @@ import { ErrorMessage } from '../../components/error_message'; import { useKibana } from '../../hooks/use_kibana'; import { Options } from '../register_items'; +export const EMBEDDABLE_ITEM_TYPE = 'embeddable'; + const embeddableClassName = css` height: 100%; > [data-shared-item] { @@ -34,8 +36,9 @@ function ReactEmbeddable({ type, config, timeRange: { from, to }, savedObjectId from, to, }, + savedObjectId, }; - }, [config, from, to]); + }, [config, from, to, savedObjectId]); const configWithOverridesRef = useRef(configWithOverrides); @@ -48,18 +51,14 @@ function ReactEmbeddable({ type, config, timeRange: { from, to }, savedObjectId }, []); return ( - api} - maybeId={savedObjectId} - onAnyStateChange={(state) => { - // console.log('onAnyStateChange', state); - }} - onApiAvailable={(childApi) => { - // console.log('onApiAvailable', childApi); - }} - hidePanelChrome - /> +
    + api} + maybeId={savedObjectId} + hidePanelChrome + /> +
    ); } @@ -166,7 +165,7 @@ export function registerEmbeddableItem({ services, }: Options) { investigate.registerItemDefinition({ - type: 'embeddable', + type: EMBEDDABLE_ITEM_TYPE, generate: async (option: { itemParams: EmbeddableItemParams; globalParams: GlobalWidgetParameters; @@ -184,7 +183,18 @@ export function registerEmbeddableItem({ timeRange: option.globalParams.timeRange, }; - return ; + return ( + div { + height: 196px; + } + `} + > + + + ); }, }); } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/items/esql_item/register_esql_item.tsx b/x-pack/plugins/observability_solution/investigate_app/public/items/esql_item/register_esql_item.tsx index 6ecab29020eba..5f2f95807b4e0 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/items/esql_item/register_esql_item.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/items/esql_item/register_esql_item.tsx @@ -21,10 +21,6 @@ import { getLensAttrsForSuggestion } from '../../utils/get_lens_attrs_for_sugges import type { Options } from '../register_items'; import { getDateHistogramResults } from './get_date_histogram_results'; -const lensClassName = css` - height: 100%; -`; - interface Props { suggestion: Suggestion; dataView: DataView; @@ -142,7 +138,7 @@ export function EsqlWidget({ suggestion, dataView, esqlQuery, dateHistogramResul grow={false} className={css` > div { - height: 196px; + height: 128px; } `} > @@ -153,15 +149,12 @@ export function EsqlWidget({ suggestion, dataView, esqlQuery, dateHistogramResul } return ( - div { - height: 196px; - } - `} - > - + + ); } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/items/lens_item/register_lens_item.tsx b/x-pack/plugins/observability_solution/investigate_app/public/items/lens_item/register_lens_item.tsx index c81ebec9c6ade..3f2b1d9f9c1bf 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/items/lens_item/register_lens_item.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/items/lens_item/register_lens_item.tsx @@ -148,7 +148,7 @@ export function LensWidget({ interval, }, }, - seriesType: 'bar', + seriesType: 'bar_stacked', }; if (groupBy && groupBy?.length) { @@ -221,12 +221,13 @@ export function LensWidget({
    ); diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/add_from_library_button/index.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/add_from_library_button/index.tsx new file mode 100644 index 0000000000000..a6befb3062ebb --- /dev/null +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/add_from_library_button/index.tsx @@ -0,0 +1,124 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { OverlayRef } from '@kbn/core/public'; +import { v4 } from 'uuid'; +import { openAddPanelFlyout } from '@kbn/embeddable-plugin/public'; +import { i18n } from '@kbn/i18n'; +import type { FinderAttributes } from '@kbn/saved-objects-finder-plugin/common'; +import React, { useMemo, useRef } from 'react'; +import { Item } from '@kbn/investigation-shared'; +import { CanAddNewPanel } from '@kbn/presentation-containers'; +import { EuiButtonEmpty } from '@elastic/eui'; +import { EMBEDDABLE_ITEM_TYPE } from '../../../../items/embeddable_item/register_embeddable_item'; +import { useKibana } from '../../../../hooks/use_kibana'; +interface AddFromLibraryButtonProps { + onItemAdd: (item: Item) => Promise; +} + +type InvestigationContainer = CanAddNewPanel & { + addNewEmbeddable: ( + type: string, + explicitInput: { savedObjectId: string }, + attributes: FinderAttributes + ) => Promise<{ id: string }>; +}; + +export function AddFromLibraryButton({ onItemAdd }: AddFromLibraryButtonProps) { + const { + dependencies: { + start: { contentManagement }, + }, + } = useKibana(); + + const panelRef = useRef(); + + const container = useMemo< + InvestigationContainer & { + addNewEmbeddable: ( + type: string, + explicitInput: { savedObjectId: string }, + attributes: FinderAttributes + ) => Promise<{ id: string }>; + } + >(() => { + function addEmbeddable({ + type, + title, + attributes, + savedObjectId, + }: { + type: string; + title: string; + attributes: Record; + savedObjectId: string; + }) { + const embeddableItem = { + title, + type: EMBEDDABLE_ITEM_TYPE, + params: { + savedObjectId, + config: {}, + type, + }, + }; + onItemAdd(embeddableItem).then(() => { + if (panelRef.current) { + panelRef.current.close(); + } + }); + } + return { + addNewPanel: async (panel, displaySuccessMessage) => { + const state = panel.initialState! as { + savedObjectId: string; + }; + const savedObject = (await contentManagement.client.get({ + contentTypeId: panel.panelType, + id: state.savedObjectId, + })) as { item: { attributes: { title: string } } }; + addEmbeddable({ + type: panel.panelType, + savedObjectId: state.savedObjectId, + attributes: {}, + title: savedObject.item.attributes.title, + }); + + return undefined as any; + }, + addNewEmbeddable: async (type, explicitInput, attributes) => { + addEmbeddable({ + type, + title: attributes.title ?? '', + savedObjectId: explicitInput.savedObjectId, + attributes, + }); + return { id: v4() }; + }, + }; + }, [contentManagement.client, onItemAdd]); + + return ( + { + panelRef.current = openAddPanelFlyout({ + container, + }); + + panelRef.current.onClose.then(() => { + panelRef.current = undefined; + }); + }} + > + {i18n.translate('xpack.investigateApp.addFromLibraryButtonLabel', { + defaultMessage: 'Import from library', + })} + + ); +} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/add_investigation_item/add_investigation_item.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/add_investigation_item/add_investigation_item.tsx index 000a6a25981dc..0ddb42bc41e99 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/add_investigation_item/add_investigation_item.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/add_investigation_item/add_investigation_item.tsx @@ -10,6 +10,7 @@ import { css } from '@emotion/css'; import { TextBasedLangEditor } from '@kbn/esql/public'; import { i18n } from '@kbn/i18n'; import React from 'react'; +import { AddFromLibraryButton } from '../add_from_library_button'; import { useInvestigation } from '../../contexts/investigation_context'; import { EsqlWidgetPreview } from './esql_widget_preview'; @@ -64,7 +65,7 @@ export function AddInvestigationItem() {
    - + - {!isPreviewOpen ? ( - - - - - -

    - {i18n.translate( - 'xpack.investigateApp.addObservationUI.p.selectADataSourceLabel', - { defaultMessage: 'Select a data source to generate a preview chart' } - )} -

    -
    -
    - ) : ( - + { resetState(); await addItem(item); }} /> - )} +
    + {!isPreviewOpen ? ( + + + + + +

    + {i18n.translate( + 'xpack.investigateApp.addObservationUI.p.selectADataSourceLabel', + { defaultMessage: 'Select a data source to generate a preview chart' } + )} +

    +
    +
    + ) : ( + { + resetState(); + await addItem(item); + }} + /> + )} diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/grid_item/index.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/grid_item/index.tsx index 91f7a58b43b5e..c43ae1ffaa04f 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/grid_item/index.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/grid_item/index.tsx @@ -52,13 +52,13 @@ const panelContentClassName = css` } `; -const headerClassName = css` - height: ${GRID_ITEM_HEADER_HEIGHT}px; -`; - export function GridItem({ id, title, children, onDelete, onCopy, loading }: GridItemProps) { const theme = useTheme(); + const headerClassName = css` + padding: 0 ${theme.size.s} 0 ${theme.size.s}}; +`; + const containerClassName = css` height: 100%; max-width: 100%; @@ -71,58 +71,58 @@ export function GridItem({ id, title, children, onDelete, onCopy, loading }: Gri `; return ( - - - - - - {title} - - - - - - { - onCopy(); - }} - disabled={loading} - /> - - - { - onDelete(); - }} - disabled={loading} - /> - - - - - - - + + + + + + +
    {title}
    +
    +
    + + + + { + onCopy(); + }} + disabled={loading} + /> + + + { + onDelete(); + }} + disabled={loading} + /> + + + +
    +
    +
    {children}
    -
    -
    -
    + +
    + ); } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/investigation_header/investigation_header.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/investigation_header/investigation_header.tsx index dd27039cac27e..1987777de4968 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/investigation_header/investigation_header.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/details/components/investigation_header/investigation_header.tsx @@ -22,9 +22,8 @@ export function InvestigationHeader() { const { investigation } = useInvestigation(); - const alertId = alertOriginSchema.is(investigation?.origin) - ? investigation?.origin.id - : undefined; + const alertOriginInvestigation = alertOriginSchema.safeParse(investigation?.origin); + const alertId = alertOriginInvestigation.success ? alertOriginInvestigation.data.id : undefined; const { data: alertDetails } = useFetchAlert({ id: alertId }); return ( diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/list/components/investigation_list.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/list/components/investigation_list.tsx index 15b2e43def519..ec16e4244d6d1 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/pages/list/components/investigation_list.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/list/components/investigation_list.tsx @@ -4,15 +4,24 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React, { useState } from 'react'; -import moment from 'moment'; -import { Criteria, EuiBasicTable, EuiBasicTableColumn, EuiLink, EuiBadge } from '@elastic/eui'; +import { + Criteria, + EuiBadge, + EuiBasicTable, + EuiBasicTableColumn, + EuiLink, + EuiLoadingSpinner, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { InvestigationResponse } from '@kbn/investigation-shared/src/rest_specs/investigation'; -import { InvestigationListActions } from './investigation_list_actions'; +import moment from 'moment'; +import React, { useState } from 'react'; +import { paths } from '../../../../common/paths'; +import { InvestigationNotFound } from '../../../components/investigation_not_found/investigation_not_found'; +import { InvestigationStatusBadge } from '../../../components/investigation_status_badge/investigation_status_badge'; import { useFetchInvestigationList } from '../../../hooks/use_fetch_investigation_list'; import { useKibana } from '../../../hooks/use_kibana'; -import { paths } from '../../../../common/paths'; +import { InvestigationListActions } from './investigation_list_actions'; export function InvestigationList() { const [pageIndex, setPageIndex] = useState(0); @@ -31,27 +40,15 @@ export function InvestigationList() { const tz = uiSettings.get('dateFormat:tz'); if (isLoading) { - return ( -

    - {i18n.translate('xpack.investigateApp.investigationList.loadingLabel', { - defaultMessage: 'Loading...', - })} -

    - ); + return ; } if (isError) { - return ( -

    - {i18n.translate('xpack.investigateApp.investigationList.errorLabel', { - defaultMessage: 'Error while loading investigations', - })} -

    - ); + return ; } const investigations = data?.results ?? []; - const total = data?.total ?? 0; + const totalItemCount = data?.total ?? 0; const columns: Array> = [ { @@ -97,8 +94,18 @@ export function InvestigationList() { field: 'status', name: 'Status', render: (status: InvestigationResponse['status']) => { - const color = status === 'ongoing' ? 'danger' : 'success'; - return {status}; + return ; + }, + }, + { + field: 'tags', + name: 'Tags', + render: (tags: InvestigationResponse['tags']) => { + return tags.map((tag) => ( + + {tag} + + )); }, }, { @@ -112,7 +119,7 @@ export function InvestigationList() { const pagination = { pageIndex, pageSize, - totalItemCount: total || 0, + totalItemCount, pageSizeOptions: [10, 50], showPerPageOptions: true, }; diff --git a/x-pack/plugins/observability_solution/investigate_app/public/pages/list/components/investigation_list_actions.tsx b/x-pack/plugins/observability_solution/investigate_app/public/pages/list/components/investigation_list_actions.tsx index b648247107cd6..95432cdbcc98d 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/pages/list/components/investigation_list_actions.tsx +++ b/x-pack/plugins/observability_solution/investigate_app/public/pages/list/components/investigation_list_actions.tsx @@ -22,12 +22,14 @@ import { import { i18n } from '@kbn/i18n'; import { InvestigationResponse } from '@kbn/investigation-shared/src/rest_specs/investigation'; import { useDeleteInvestigation } from '../../../hooks/use_delete_investigation'; +import { InvestigationEditForm } from '../../../components/investigation_edit_form/investigation_edit_form'; export function InvestigationListActions({ investigation, }: { investigation: InvestigationResponse; }) { - const [isDeleteModalVisible, setIsDeleteModalVisible] = useState(false); + const [isEditFormFlyoutVisible, setEditFormFlyoutVisible] = useState(false); + const [isDeleteModalVisible, setIsDeleteModalVisible] = useState(false); const { mutate: deleteInvestigation, isLoading: isDeleting, @@ -45,7 +47,7 @@ export function InvestigationListActions({ const modalTitleId = useGeneratedHtmlId(); return ( - <> + {isDeleteModalVisible && ( @@ -92,6 +94,30 @@ export function InvestigationListActions({ )} + {isEditFormFlyoutVisible && investigation && ( + setEditFormFlyoutVisible(false)} + /> + )} + + setEditFormFlyoutVisible(true)} + /> + setIsDeleteModalVisible(true)} /> - + ); } diff --git a/x-pack/plugins/observability_solution/investigate_app/public/utils/get_lens_attrs_for_suggestion.ts b/x-pack/plugins/observability_solution/investigate_app/public/utils/get_lens_attrs_for_suggestion.ts index 0483d771954c0..79693ff2941aa 100644 --- a/x-pack/plugins/observability_solution/investigate_app/public/utils/get_lens_attrs_for_suggestion.ts +++ b/x-pack/plugins/observability_solution/investigate_app/public/utils/get_lens_attrs_for_suggestion.ts @@ -32,6 +32,19 @@ export function getLensAttrsForSuggestion({ dataView, }) as TypedLensByValueInput['attributes']; + attrs.state.visualization = { + ...(attrs.state.visualization as any), + axisTitlesVisibilitySettings: { + x: false, + yLeft: false, + yRight: false, + }, + legend: { + isVisible: false, + position: 'right', + }, + }; + const lensEmbeddableInput: TypedLensByValueInput = { attributes: attrs, id: v4(), diff --git a/x-pack/plugins/observability_solution/investigate_app/server/models/investigation.ts b/x-pack/plugins/observability_solution/investigate_app/server/models/investigation.ts index 8b826d0ed02ea..5204fcb453296 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/models/investigation.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/models/investigation.ts @@ -5,8 +5,9 @@ * 2.0. */ -import { investigationSchema } from '@kbn/investigation-shared'; -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; +import { investigationSchema, statusSchema } from '@kbn/investigation-shared'; -export type Investigation = t.TypeOf; -export type StoredInvestigation = t.OutputOf; +export type Investigation = z.infer; +export type InvestigationStatus = z.infer; +export type StoredInvestigation = z.infer; diff --git a/x-pack/plugins/observability_solution/investigate_app/server/models/investigation_item.ts b/x-pack/plugins/observability_solution/investigate_app/server/models/investigation_item.ts index 897bf4bff1f0c..f243fc481cad0 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/models/investigation_item.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/models/investigation_item.ts @@ -5,8 +5,8 @@ * 2.0. */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationItemSchema } from '@kbn/investigation-shared'; -export type InvestigationItem = t.TypeOf; -export type StoredInvestigationItem = t.OutputOf; +export type InvestigationItem = z.infer; +export type StoredInvestigationItem = z.infer; diff --git a/x-pack/plugins/observability_solution/investigate_app/server/models/investigation_note.ts b/x-pack/plugins/observability_solution/investigate_app/server/models/investigation_note.ts index 0c3b996bfffe3..5d9aa0877e3bf 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/models/investigation_note.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/models/investigation_note.ts @@ -5,8 +5,8 @@ * 2.0. */ -import * as t from 'io-ts'; +import { z } from '@kbn/zod'; import { investigationNoteSchema } from '@kbn/investigation-shared'; -export type InvestigationNote = t.TypeOf; -export type StoredInvestigationNote = t.OutputOf; +export type InvestigationNote = z.infer; +export type StoredInvestigationNote = z.infer; diff --git a/x-pack/plugins/observability_solution/investigate_app/server/routes/get_global_investigate_app_server_route_repository.ts b/x-pack/plugins/observability_solution/investigate_app/server/routes/get_global_investigate_app_server_route_repository.ts index 1fb48a7c2640e..1755d283b3763 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/routes/get_global_investigate_app_server_route_repository.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/routes/get_global_investigate_app_server_route_repository.ts @@ -96,7 +96,7 @@ const updateInvestigationRoute = createInvestigateAppServerRoute({ const soClient = (await context.core).savedObjects.client; const repository = investigationRepositoryFactory({ soClient, logger }); - return await updateInvestigation(params.path.investigationId, params.body, { + return await updateInvestigation(params.path.investigationId, params.body ?? {}, { repository, user, }); diff --git a/x-pack/plugins/observability_solution/investigate_app/server/services/create_investigation.ts b/x-pack/plugins/observability_solution/investigate_app/server/services/create_investigation.ts index d6e193d54abb0..2aed0baed8923 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/services/create_investigation.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/services/create_investigation.ts @@ -8,11 +8,7 @@ import { CreateInvestigationParams, CreateInvestigationResponse } from '@kbn/investigation-shared'; import type { AuthenticatedUser } from '@kbn/core-security-common'; import { InvestigationRepository } from './investigation_repository'; - -enum InvestigationStatus { - ongoing = 'ongoing', - closed = 'closed', -} +import { Investigation } from '../models/investigation'; export async function createInvestigation( params: CreateInvestigationParams, @@ -22,11 +18,11 @@ export async function createInvestigation( throw new Error(`Investigation [id=${params.id}] already exists`); } - const investigation = { + const investigation: Investigation = { ...params, createdAt: Date.now(), createdBy: user.username, - status: InvestigationStatus.ongoing, + status: 'triage', notes: [], items: [], }; diff --git a/x-pack/plugins/observability_solution/investigate_app/server/services/find_investigations.ts b/x-pack/plugins/observability_solution/investigate_app/server/services/find_investigations.ts index a3ea2db46d357..7530b3c768610 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/services/find_investigations.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/services/find_investigations.ts @@ -11,6 +11,7 @@ import { findInvestigationsResponseSchema, } from '@kbn/investigation-shared'; import { InvestigationRepository } from './investigation_repository'; +import { InvestigationStatus } from '../models/investigation'; export async function findInvestigations( params: FindInvestigationsParams, @@ -18,21 +19,23 @@ export async function findInvestigations( ): Promise { const investigations = await repository.search(toFilter(params), toPagination(params)); - return findInvestigationsResponseSchema.encode(investigations); + return findInvestigationsResponseSchema.parse(investigations); } function toPagination(params: FindInvestigationsParams) { const DEFAULT_PER_PAGE = 10; const DEFAULT_PAGE = 1; return { - page: params.page ? parseInt(params.page, 10) : DEFAULT_PAGE, - perPage: params.perPage ? parseInt(params.perPage, 10) : DEFAULT_PER_PAGE, + page: params?.page ? parseInt(params.page, 10) : DEFAULT_PAGE, + perPage: params?.perPage ? parseInt(params.perPage, 10) : DEFAULT_PER_PAGE, }; } function toFilter(params: FindInvestigationsParams) { - if (params.alertId) { - return `investigation.attributes.origin.id:(${params.alertId}) AND investigation.attributes.status: ongoing`; + if (params?.alertId) { + const activeStatus: InvestigationStatus = 'active'; + const triageStatus: InvestigationStatus = 'triage'; + return `investigation.attributes.origin.id:(${params.alertId}) AND (investigation.attributes.status: ${activeStatus} OR investigation.attributes.status: ${triageStatus})`; } return ''; } diff --git a/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation.ts b/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation.ts index f1d3c52661cdb..de0f5546a3082 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation.ts @@ -18,5 +18,5 @@ export async function getInvestigation( ): Promise { const investigation = await repository.findById(params.investigationId); - return getInvestigationResponseSchema.encode(investigation); + return getInvestigationResponseSchema.parse(investigation); } diff --git a/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation_items.ts b/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation_items.ts index 35c3e6e742705..e449acc1d69f5 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation_items.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation_items.ts @@ -17,5 +17,5 @@ export async function getInvestigationItems( ): Promise { const investigation = await repository.findById(investigationId); - return getInvestigationItemsResponseSchema.encode(investigation.items); + return getInvestigationItemsResponseSchema.parse(investigation.items); } diff --git a/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation_notes.ts b/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation_notes.ts index 510798e5007a5..69570c57e5932 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation_notes.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/services/get_investigation_notes.ts @@ -17,5 +17,5 @@ export async function getInvestigationNotes( ): Promise { const investigation = await repository.findById(investigationId); - return getInvestigationNotesResponseSchema.encode(investigation.notes); + return getInvestigationNotesResponseSchema.parse(investigation.notes); } diff --git a/x-pack/plugins/observability_solution/investigate_app/server/services/investigation_repository.ts b/x-pack/plugins/observability_solution/investigate_app/server/services/investigation_repository.ts index ec25dbfd47d06..73c9136cb3673 100644 --- a/x-pack/plugins/observability_solution/investigate_app/server/services/investigation_repository.ts +++ b/x-pack/plugins/observability_solution/investigate_app/server/services/investigation_repository.ts @@ -7,7 +7,6 @@ import { Logger, SavedObjectsClientContract } from '@kbn/core/server'; import { investigationSchema } from '@kbn/investigation-shared'; -import { isLeft } from 'fp-ts/lib/Either'; import { Investigation, StoredInvestigation } from '../models/investigation'; import { Paginated, Pagination } from '../models/pagination'; import { SO_INVESTIGATION_TYPE } from '../saved_objects/investigation'; @@ -27,20 +26,20 @@ export function investigationRepositoryFactory({ logger: Logger; }): InvestigationRepository { function toInvestigation(stored: StoredInvestigation): Investigation | undefined { - const result = investigationSchema.decode({ + const result = investigationSchema.safeParse({ ...stored, }); - if (isLeft(result)) { + if (!result.success) { logger.error(`Invalid stored Investigation with id [${stored.id}]`); return undefined; } - return result.right; + return result.data; } function toStoredInvestigation(investigation: Investigation): StoredInvestigation { - return investigationSchema.encode(investigation); + return investigationSchema.parse(investigation); } return { diff --git a/x-pack/plugins/observability_solution/investigate_app/tsconfig.json b/x-pack/plugins/observability_solution/investigate_app/tsconfig.json index d689dd6086473..03651f3530c6d 100644 --- a/x-pack/plugins/observability_solution/investigate_app/tsconfig.json +++ b/x-pack/plugins/observability_solution/investigate_app/tsconfig.json @@ -25,7 +25,6 @@ "@kbn/embeddable-plugin", "@kbn/observability-ai-assistant-plugin", "@kbn/lens-plugin", - "@kbn/utility-types", "@kbn/esql", "@kbn/esql-utils", "@kbn/data-plugin", @@ -54,7 +53,10 @@ "@kbn/shared-ux-router", "@kbn/investigation-shared", "@kbn/core-security-common", + "@kbn/saved-objects-finder-plugin", + "@kbn/presentation-containers", "@kbn/lens-embeddable-utils", "@kbn/i18n-react", + "@kbn/zod", ], } diff --git a/x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_error_rate_timeseries/get_logs_error_rate_timeseries.ts b/x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_error_rate_timeseries/get_logs_error_rate_timeseries.ts index d56f237035e0c..4766436fdebfc 100644 --- a/x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_error_rate_timeseries/get_logs_error_rate_timeseries.ts +++ b/x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_error_rate_timeseries/get_logs_error_rate_timeseries.ts @@ -10,7 +10,7 @@ import { ElasticsearchClient } from '@kbn/core/server'; import { estypes } from '@elastic/elasticsearch'; import { getBucketSizeFromTimeRangeAndBucketCount } from '../../utils'; import { ERROR_LOG_LEVEL, LOG_LEVEL } from '../../es_fields'; -import { existsQuery, kqlQuery } from '../../utils/es_queries'; +import { kqlQuery } from '../../utils/es_queries'; export interface LogsErrorRateTimeseries { esClient: ElasticsearchClient; @@ -81,7 +81,6 @@ export function createGetLogErrorRateTimeseries() { query: { bool: { filter: [ - ...existsQuery(LOG_LEVEL), ...kqlQuery(kuery), { terms: { diff --git a/x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rate_timeseries/get_logs_rate_timeseries.ts b/x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rate_timeseries/get_logs_rate_timeseries.ts index 3341170832a39..cdcf360405e75 100644 --- a/x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rate_timeseries/get_logs_rate_timeseries.ts +++ b/x-pack/plugins/observability_solution/logs_data_access/server/services/get_logs_rate_timeseries/get_logs_rate_timeseries.ts @@ -9,8 +9,7 @@ import type { AggregationOptionsByType, AggregationResultOf } from '@kbn/es-type import { ElasticsearchClient } from '@kbn/core/server'; import { estypes } from '@elastic/elasticsearch'; import { getBucketSizeFromTimeRangeAndBucketCount } from '../../utils'; -import { LOG_LEVEL } from '../../es_fields'; -import { existsQuery, kqlQuery } from '../../utils/es_queries'; +import { kqlQuery } from '../../utils/es_queries'; export interface LogsRateTimeseries { esClient: ElasticsearchClient; @@ -59,7 +58,6 @@ export function createGetLogsRateTimeseries() { query: { bool: { filter: [ - ...existsQuery(LOG_LEVEL), ...kqlQuery(kuery), { terms: { diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/translations.tsx b/x-pack/plugins/observability_solution/logs_explorer/public/components/common/translations.tsx index 826fcdab65915..2ba31b3e94d86 100644 --- a/x-pack/plugins/observability_solution/logs_explorer/public/components/common/translations.tsx +++ b/x-pack/plugins/observability_solution/logs_explorer/public/components/common/translations.tsx @@ -96,46 +96,3 @@ export const resourceHeaderTooltipParagraph = i18n.translate( defaultMessage: "Fields that provide information on the document's source, such as:", } ); - -export const actionsHeaderAriaLabelDegradedAction = i18n.translate( - 'xpack.logsExplorer.dataTable.controlColumnHeader.degradedDocArialLabel', - { - defaultMessage: 'Access to degraded docs', - } -); - -export const actionsHeaderAriaLabelStacktraceAction = i18n.translate( - 'xpack.logsExplorer.dataTable.controlColumnHeader.stacktraceArialLabel', - { - defaultMessage: 'Access to available stacktraces', - } -); - -export const degradedDocButtonLabelWhenPresent = i18n.translate( - 'xpack.logsExplorer.dataTable.controlColumn.actions.button.degradedDocPresent', - { - defaultMessage: - "This document couldn't be parsed correctly. Not all fields are properly populated", - } -); - -export const degradedDocButtonLabelWhenNotPresent = i18n.translate( - 'xpack.logsExplorer.dataTable.controlColumn.actions.button.degradedDocNotPresent', - { - defaultMessage: 'All fields in this document were parsed correctly', - } -); - -export const stacktraceAvailableControlButton = i18n.translate( - 'xpack.logsExplorer.dataTable.controlColumn.actions.button.stacktrace.available', - { - defaultMessage: 'Stacktraces available', - } -); - -export const stacktraceNotAvailableControlButton = i18n.translate( - 'xpack.logsExplorer.dataTable.controlColumn.actions.button.stacktrace.notAvailable', - { - defaultMessage: 'Stacktraces not available', - } -); diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/customizations/custom_control_column.tsx b/x-pack/plugins/observability_solution/logs_explorer/public/customizations/custom_control_column.tsx index 89bc38482c803..4637d33194743 100644 --- a/x-pack/plugins/observability_solution/logs_explorer/public/customizations/custom_control_column.tsx +++ b/x-pack/plugins/observability_solution/logs_explorer/public/customizations/custom_control_column.tsx @@ -5,96 +5,10 @@ * 2.0. */ -import React from 'react'; -import { LogDocument } from '@kbn/discover-utils/src'; -import type { - UnifiedDataTableProps, - RowControlComponent, - RowControlRowProps, -} from '@kbn/unified-data-table'; -import { - actionsHeaderAriaLabelDegradedAction, - actionsHeaderAriaLabelStacktraceAction, - degradedDocButtonLabelWhenNotPresent, - degradedDocButtonLabelWhenPresent, - stacktraceAvailableControlButton, - stacktraceNotAvailableControlButton, -} from '../components/common/translations'; -import * as constants from '../../common/constants'; -import { getStacktraceFields } from '../utils/get_stack_trace'; - -const DegradedDocs = ({ - Control, - rowProps: { record }, -}: { - Control: RowControlComponent; - rowProps: RowControlRowProps; -}) => { - const isDegradedDocumentExists = constants.DEGRADED_DOCS_FIELD in record.raw; - - return isDegradedDocumentExists ? ( - - ) : ( - - ); -}; - -const Stacktrace = ({ - Control, - rowProps: { record }, -}: { - Control: RowControlComponent; - rowProps: RowControlRowProps; -}) => { - const stacktrace = getStacktraceFields(record as LogDocument); - const hasValue = Object.values(stacktrace).some((value) => value); - - return hasValue ? ( - - ) : ( - - ); -}; +import { createDegradedDocsControl, createStacktraceControl } from '@kbn/discover-utils'; +import { type UnifiedDataTableProps } from '@kbn/unified-data-table'; export const getRowAdditionalControlColumns = (): UnifiedDataTableProps['rowAdditionalLeadingControls'] => { - return [ - { - id: 'connectedDegradedDocs', - headerAriaLabel: actionsHeaderAriaLabelDegradedAction, - renderControl: (Control, rowProps) => { - return ; - }, - }, - { - id: 'connectedStacktraceDocs', - headerAriaLabel: actionsHeaderAriaLabelStacktraceAction, - renderControl: (Control, rowProps) => { - return ; - }, - }, - ]; + return [createDegradedDocsControl(), createStacktraceControl()]; }; diff --git a/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_stack_trace.ts b/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_stack_trace.ts deleted file mode 100644 index ac264af2732aa..0000000000000 --- a/x-pack/plugins/observability_solution/logs_explorer/public/utils/get_stack_trace.ts +++ /dev/null @@ -1,21 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { getFieldFromDoc, LogDocument, StackTraceFields } from '@kbn/discover-utils/src'; -import * as constants from '../../common/constants'; - -export const getStacktraceFields = (doc: LogDocument): StackTraceFields => { - const errorStackTrace = getFieldFromDoc(doc, constants.ERROR_STACK_TRACE); - const errorExceptionStackTrace = getFieldFromDoc(doc, constants.ERROR_EXCEPTION_STACKTRACE); - const errorLogStackTrace = getFieldFromDoc(doc, constants.ERROR_LOG_STACKTRACE); - - return { - [constants.ERROR_STACK_TRACE]: errorStackTrace, - [constants.ERROR_EXCEPTION_STACKTRACE]: errorExceptionStackTrace, - [constants.ERROR_LOG_STACKTRACE]: errorLogStackTrace, - }; -}; diff --git a/x-pack/plugins/observability_solution/observability/kibana.jsonc b/x-pack/plugins/observability_solution/observability/kibana.jsonc index 0a2fa073c123d..3697fa0ff628a 100644 --- a/x-pack/plugins/observability_solution/observability/kibana.jsonc +++ b/x-pack/plugins/observability_solution/observability/kibana.jsonc @@ -52,7 +52,8 @@ "serverless", "guidedOnboarding", "observabilityAIAssistant", - "investigate" + "investigate", + "inventory" ], "requiredBundles": [ "data", diff --git a/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/custom_equation/custom_equation_editor.tsx b/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/custom_equation/custom_equation_editor.tsx index d391a7c6347b7..7ade20014bc59 100644 --- a/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/custom_equation/custom_equation_editor.tsx +++ b/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/components/custom_equation/custom_equation_editor.tsx @@ -185,7 +185,7 @@ export function CustomEquationEditor({ 'xpack.observability.customThreshold.rule.alertFlyout.customEquationEditor.equationAndThreshold', { defaultMessage: 'Equation and threshold' } )} - error={[errors.equation]} + error={[errors.equation as string]} > <> diff --git a/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/custom_threshold_rule_expression.tsx b/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/custom_threshold_rule_expression.tsx index 747abedfc0f35..2444e7fe69988 100644 --- a/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/custom_threshold_rule_expression.tsx +++ b/x-pack/plugins/observability_solution/observability/public/components/custom_threshold/custom_threshold_rule_expression.tsx @@ -458,7 +458,7 @@ export default function Expressions(props: Props) { /> {errors.filterQuery && ( - {errors.filterQuery} + {errors.filterQuery as React.ReactNode} )} diff --git a/x-pack/plugins/observability_solution/observability/public/navigation_tree.ts b/x-pack/plugins/observability_solution/observability/public/navigation_tree.ts index 9a064af35d3e8..67062d2230235 100644 --- a/x-pack/plugins/observability_solution/observability/public/navigation_tree.ts +++ b/x-pack/plugins/observability_solution/observability/public/navigation_tree.ts @@ -8,6 +8,7 @@ import { i18n } from '@kbn/i18n'; import type { NavigationTreeDefinition } from '@kbn/core-chrome-browser'; import type { AddSolutionNavigationArg } from '@kbn/navigation-plugin/public'; import { of } from 'rxjs'; +import type { ObservabilityPublicPluginsStart } from './plugin'; const title = i18n.translate( 'xpack.observability.obltNav.headerSolutionSwitcher.obltSolutionTitle', @@ -17,474 +18,501 @@ const title = i18n.translate( ); const icon = 'logoObservability'; -const navTree: NavigationTreeDefinition = { - body: [ - { - type: 'navGroup', - id: 'observability_project_nav', - title, - icon, - defaultIsCollapsed: false, - isCollapsible: false, - breadcrumbStatus: 'hidden', - children: [ - { - link: 'observability-overview', - }, - { - link: 'discover', - renderAs: 'item', - children: [ - { - // This is to show "observability-log-explorer" breadcrumbs when navigating from "discover" to "log explorer" - link: 'observability-logs-explorer', - }, - ], - }, - { - link: 'dashboards', - getIsActive: ({ pathNameSerialized, prepend }) => { - return pathNameSerialized.startsWith(prepend('/app/dashboards')); +export function createNavTree(pluginsStart: ObservabilityPublicPluginsStart) { + const navTree: NavigationTreeDefinition = { + body: [ + { + type: 'navGroup', + id: 'observability_project_nav', + title, + icon, + defaultIsCollapsed: false, + isCollapsible: false, + breadcrumbStatus: 'hidden', + children: [ + { + link: 'observability-overview', }, - }, - { - link: 'observability-overview:alerts', - }, - { - link: 'observability-overview:cases', - renderAs: 'item', - children: [ - { - link: 'observability-overview:cases_configure', - }, - { - link: 'observability-overview:cases_create', - }, - ], - }, - { - link: 'slo', - }, - { - id: 'aiMl', - title: i18n.translate('xpack.observability.obltNav.ml.aiAndMlGroupTitle', { - defaultMessage: 'AI & ML', - }), - renderAs: 'accordion', - children: [ - { - link: 'observabilityAIAssistant', - title: i18n.translate('xpack.observability.obltNav.aiMl.aiAssistant', { - defaultMessage: 'AI Assistant', - }), + { + link: 'discover', + renderAs: 'item', + children: [ + { + // This is to show "observability-log-explorer" breadcrumbs when navigating from "discover" to "log explorer" + link: 'observability-logs-explorer', + }, + ], + }, + { + link: 'dashboards', + getIsActive: ({ pathNameSerialized, prepend }) => { + return pathNameSerialized.startsWith(prepend('/app/dashboards')); }, - { - link: 'ml:anomalyDetection', - renderAs: 'item', - children: [ - { - link: 'ml:singleMetricViewer', - }, - { - link: 'ml:anomalyExplorer', - }, + }, + ...(pluginsStart.inventory + ? [ { - link: 'ml:settings', + link: 'inventory' as const, + getIsActive: ({ + pathNameSerialized, + prepend, + }: { + pathNameSerialized: string; + prepend: (path: string) => string; + }) => { + return pathNameSerialized.startsWith(prepend('/app/observability/inventory')); + }, }, - ], - }, - { - title: i18n.translate('xpack.observability.obltNav.ml.logRateAnalysis', { - defaultMessage: 'Log rate analysis', - }), - link: 'ml:logRateAnalysis', - getIsActive: ({ pathNameSerialized, prepend }) => { - return pathNameSerialized.includes(prepend('/app/ml/aiops/log_rate_analysis')); - }, - }, - { - link: 'logs:anomalies', - }, - { - link: 'logs:log-categories', - }, - { - title: i18n.translate('xpack.observability.obltNav.ml.changePointDetection', { - defaultMessage: 'Change point detection', - }), - link: 'ml:changePointDetections', - getIsActive: ({ pathNameSerialized, prepend }) => { - return pathNameSerialized.includes(prepend('/app/ml/aiops/change_point_detection')); + ] + : []), + { + link: 'observability-overview:alerts', + }, + { + link: 'observability-overview:cases', + renderAs: 'item', + children: [ + { + link: 'observability-overview:cases_configure', }, - }, - { - title: i18n.translate('xpack.observability.obltNav.ml.job.notifications', { - defaultMessage: 'Job notifications', - }), - link: 'ml:notifications', - }, - ], - }, - { - id: 'apm', - title: i18n.translate('xpack.observability.obltNav.applications', { - defaultMessage: 'Applications', - }), - renderAs: 'accordion', - children: [ - { - link: 'apm:services', - getIsActive: ({ pathNameSerialized }) => { - const regex = /app\/apm\/.*service.*/; - return regex.test(pathNameSerialized); + { + link: 'observability-overview:cases_create', }, - }, - { - link: 'apm:traces', - getIsActive: ({ pathNameSerialized, prepend }) => { - return pathNameSerialized.startsWith(prepend('/app/apm/traces')); + ], + }, + { + link: 'slo', + }, + { + id: 'aiMl', + title: i18n.translate('xpack.observability.obltNav.ml.aiAndMlGroupTitle', { + defaultMessage: 'AI & ML', + }), + renderAs: 'accordion', + children: [ + { + link: 'observabilityAIAssistant', + title: i18n.translate('xpack.observability.obltNav.aiMl.aiAssistant', { + defaultMessage: 'AI Assistant', + }), }, - }, - { - link: 'apm:dependencies', - getIsActive: ({ pathNameSerialized, prepend }) => { - return pathNameSerialized.startsWith(prepend('/app/apm/dependencies')); + { + link: 'ml:anomalyDetection', + renderAs: 'item', + children: [ + { + link: 'ml:singleMetricViewer', + }, + { + link: 'ml:anomalyExplorer', + }, + { + link: 'ml:settings', + }, + ], }, - }, - { - id: 'synthetics', - title: i18n.translate('xpack.observability.obltNav.apm.syntheticsGroupTitle', { - defaultMessage: 'Synthetics', - }), - renderAs: 'accordion', - children: [ - { - link: 'synthetics', - title: i18n.translate('xpack.observability.obltNav.apm.synthetics.monitors', { - defaultMessage: 'Monitors', - }), + { + title: i18n.translate('xpack.observability.obltNav.ml.logRateAnalysis', { + defaultMessage: 'Log rate analysis', + }), + link: 'ml:logRateAnalysis', + getIsActive: ({ pathNameSerialized, prepend }) => { + return pathNameSerialized.includes(prepend('/app/ml/aiops/log_rate_analysis')); }, - { link: 'synthetics:certificates' }, - ], - }, - { link: 'ux' }, - ], - }, - { - id: 'metrics', - title: i18n.translate('xpack.observability.obltNav.infrastructure', { - defaultMessage: 'Infrastructure', - }), - renderAs: 'accordion', - children: [ - { - link: 'metrics:inventory', - getIsActive: ({ pathNameSerialized, prepend }) => { - return pathNameSerialized.startsWith(prepend('/app/metrics/inventory')); }, - }, - { - link: 'metrics:hosts', - getIsActive: ({ pathNameSerialized, prepend }) => { - return pathNameSerialized.startsWith(prepend('/app/metrics/hosts')); + { + link: 'logs:anomalies', }, - }, - { - link: 'metrics:metrics-explorer', - }, - { - id: 'profiling', - title: i18n.translate( - 'xpack.observability.obltNav.infrastructure.universalProfiling', - { - defaultMessage: 'Universal Profiling', - } - ), - renderAs: 'accordion', - children: [ - { - link: 'profiling:stacktraces', - }, - { - link: 'profiling:flamegraphs', - }, - { - link: 'profiling:functions', - }, - ], - }, - ], - }, - { - id: 'otherTools', - title: i18n.translate('xpack.observability.obltNav.otherTools', { - defaultMessage: 'Other tools', - }), - renderAs: 'accordion', - children: [ - { - link: 'logs:stream', - title: i18n.translate('xpack.observability.obltNav.otherTools.logsStream', { - defaultMessage: 'Logs stream', - }), - }, - { link: 'maps' }, - { link: 'canvas' }, - { link: 'graph' }, - ], - }, - ], - }, - ], - footer: [ - { type: 'recentlyAccessed' }, - { - type: 'navItem', - title: i18n.translate('xpack.observability.obltNav.getStarted', { - defaultMessage: 'Get started', - }), - link: 'observabilityOnboarding', - icon: 'launch', - }, - { - type: 'navItem', - id: 'devTools', - title: i18n.translate('xpack.observability.obltNav.devTools', { - defaultMessage: 'Developer tools', - }), - link: 'dev_tools', - icon: 'editorCodeBlock', - }, - { - type: 'navGroup', - id: 'project_settings_project_nav', - title: i18n.translate('xpack.observability.obltNav.management', { - defaultMessage: 'Management', - }), - icon: 'gear', - breadcrumbStatus: 'hidden', - children: [ - { - link: 'management', - title: i18n.translate('xpack.observability.obltNav.stackManagement', { - defaultMessage: 'Stack Management', - }), - renderAs: 'panelOpener', - spaceBefore: null, - children: [ - { - title: 'Ingest', - children: [{ link: 'management:ingest_pipelines' }, { link: 'management:pipelines' }], - }, - { - title: 'Data', - children: [ - { link: 'management:index_management' }, - { link: 'management:index_lifecycle_management' }, - { link: 'management:snapshot_restore' }, - { link: 'management:rollup_jobs' }, - { link: 'management:transform' }, - { link: 'management:cross_cluster_replication' }, - { link: 'management:remote_clusters' }, - { link: 'management:migrate_data' }, - ], - }, - { - title: 'Alerts and Insights', - children: [ - { link: 'management:triggersActions' }, - { link: 'management:cases' }, - { link: 'management:triggersActionsConnectors' }, - { link: 'management:reporting' }, - { link: 'management:jobsListLink' }, - { link: 'management:watcher' }, - { link: 'management:maintenanceWindows' }, - ], - }, - { - title: 'Security', - children: [ - { link: 'management:users' }, - { link: 'management:roles' }, - { link: 'management:api_keys' }, - { link: 'management:role_mappings' }, - ], - }, - { - title: 'Kibana', - children: [ - { link: 'management:dataViews' }, - { link: 'management:filesManagement' }, - { link: 'management:objects' }, - { link: 'management:tags' }, - { link: 'management:search_sessions' }, - { link: 'management:aiAssistantManagementSelection' }, - { link: 'management:spaces' }, - { link: 'management:settings' }, - ], - }, - { - title: 'Stack', - children: [ - { link: 'management:license_management' }, - { link: 'management:upgrade_assistant' }, - ], - }, - ], - }, - { - link: 'integrations', - }, - { - link: 'fleet', - }, - { - id: 'machine_learning-landing', - link: 'securitySolutionUI:machine_learning-landing', - renderAs: 'panelOpener', - spaceBefore: null, - children: [ - { - children: [ - { - link: 'ml:overview', - }, - { - link: 'ml:notifications', + { + link: 'logs:log-categories', + }, + { + title: i18n.translate('xpack.observability.obltNav.ml.changePointDetection', { + defaultMessage: 'Change point detection', + }), + link: 'ml:changePointDetections', + getIsActive: ({ pathNameSerialized, prepend }) => { + return pathNameSerialized.includes( + prepend('/app/ml/aiops/change_point_detection') + ); }, - { - link: 'ml:memoryUsage', + }, + { + title: i18n.translate('xpack.observability.obltNav.ml.job.notifications', { + defaultMessage: 'Job notifications', + }), + link: 'ml:notifications', + }, + ], + }, + { + id: 'apm', + title: i18n.translate('xpack.observability.obltNav.applications', { + defaultMessage: 'Applications', + }), + renderAs: 'accordion', + children: [ + { + link: 'apm:services', + getIsActive: ({ pathNameSerialized }) => { + const regex = /app\/apm\/.*service.*/; + return regex.test(pathNameSerialized); }, - ], - }, - { - id: 'category-anomaly_detection', - title: i18n.translate('xpack.observability.obltNav.ml.anomaly_detection', { - defaultMessage: 'Anomaly detection', - }), - breadcrumbStatus: 'hidden', - children: [ - { - link: 'ml:anomalyDetection', - title: i18n.translate('xpack.observability.obltNav.ml.anomaly_detection.jobs', { - defaultMessage: 'Jobs', - }), + }, + { + link: 'apm:traces', + getIsActive: ({ pathNameSerialized, prepend }) => { + return pathNameSerialized.startsWith(prepend('/app/apm/traces')); }, - { - link: 'ml:anomalyExplorer', + }, + { + link: 'apm:dependencies', + getIsActive: ({ pathNameSerialized, prepend }) => { + return pathNameSerialized.startsWith(prepend('/app/apm/dependencies')); }, - { - link: 'ml:singleMetricViewer', + }, + { + id: 'synthetics', + title: i18n.translate('xpack.observability.obltNav.apm.syntheticsGroupTitle', { + defaultMessage: 'Synthetics', + }), + renderAs: 'accordion', + children: [ + { + link: 'synthetics', + title: i18n.translate('xpack.observability.obltNav.apm.synthetics.monitors', { + defaultMessage: 'Monitors', + }), + }, + { link: 'synthetics:certificates' }, + ], + }, + { link: 'ux' }, + ], + }, + { + id: 'metrics', + title: i18n.translate('xpack.observability.obltNav.infrastructure', { + defaultMessage: 'Infrastructure', + }), + renderAs: 'accordion', + children: [ + { + link: 'metrics:inventory', + getIsActive: ({ pathNameSerialized, prepend }) => { + return pathNameSerialized.startsWith(prepend('/app/metrics/inventory')); }, - { - link: 'ml:settings', + }, + { + link: 'metrics:hosts', + getIsActive: ({ pathNameSerialized, prepend }) => { + return pathNameSerialized.startsWith(prepend('/app/metrics/hosts')); }, - ], - }, - { - id: 'category-data_frame analytics', - title: i18n.translate('xpack.observability.obltNav.ml.data_frame_analytics', { - defaultMessage: 'Data frame analytics', - }), - breadcrumbStatus: 'hidden', - children: [ - { - link: 'ml:dataFrameAnalytics', - title: i18n.translate( - 'xpack.observability.obltNav.ml.data_frame_analytics.jobs', - { + }, + { + link: 'metrics:metrics-explorer', + }, + { + id: 'profiling', + title: i18n.translate( + 'xpack.observability.obltNav.infrastructure.universalProfiling', + { + defaultMessage: 'Universal Profiling', + } + ), + renderAs: 'accordion', + children: [ + { + link: 'profiling:stacktraces', + }, + { + link: 'profiling:flamegraphs', + }, + { + link: 'profiling:functions', + }, + ], + }, + ], + }, + { + id: 'otherTools', + title: i18n.translate('xpack.observability.obltNav.otherTools', { + defaultMessage: 'Other tools', + }), + renderAs: 'accordion', + children: [ + { + link: 'logs:stream', + title: i18n.translate('xpack.observability.obltNav.otherTools.logsStream', { + defaultMessage: 'Logs stream', + }), + }, + { link: 'maps' }, + { link: 'canvas' }, + { link: 'graph' }, + ], + }, + ], + }, + ], + footer: [ + { type: 'recentlyAccessed' }, + { + type: 'navItem', + title: i18n.translate('xpack.observability.obltNav.getStarted', { + defaultMessage: 'Get started', + }), + link: 'observabilityOnboarding', + icon: 'launch', + }, + { + type: 'navItem', + id: 'devTools', + title: i18n.translate('xpack.observability.obltNav.devTools', { + defaultMessage: 'Developer tools', + }), + link: 'dev_tools', + icon: 'editorCodeBlock', + }, + { + type: 'navGroup', + id: 'project_settings_project_nav', + title: i18n.translate('xpack.observability.obltNav.management', { + defaultMessage: 'Management', + }), + icon: 'gear', + breadcrumbStatus: 'hidden', + children: [ + { + link: 'management', + title: i18n.translate('xpack.observability.obltNav.stackManagement', { + defaultMessage: 'Stack Management', + }), + renderAs: 'panelOpener', + spaceBefore: null, + children: [ + { + title: 'Ingest', + children: [ + { link: 'management:ingest_pipelines' }, + { link: 'management:pipelines' }, + ], + }, + { + title: 'Data', + children: [ + { link: 'management:index_management' }, + { link: 'management:index_lifecycle_management' }, + { link: 'management:snapshot_restore' }, + { link: 'management:rollup_jobs' }, + { link: 'management:transform' }, + { link: 'management:cross_cluster_replication' }, + { link: 'management:remote_clusters' }, + { link: 'management:migrate_data' }, + ], + }, + { + title: 'Alerts and Insights', + children: [ + { link: 'management:triggersActions' }, + { link: 'management:cases' }, + { link: 'management:triggersActionsConnectors' }, + { link: 'management:reporting' }, + { link: 'management:jobsListLink' }, + { link: 'management:watcher' }, + { link: 'management:maintenanceWindows' }, + ], + }, + { + title: 'Security', + children: [ + { link: 'management:users' }, + { link: 'management:roles' }, + { link: 'management:api_keys' }, + { link: 'management:role_mappings' }, + ], + }, + { + title: 'Kibana', + children: [ + { link: 'management:dataViews' }, + { link: 'management:filesManagement' }, + { link: 'management:objects' }, + { link: 'management:tags' }, + { link: 'management:search_sessions' }, + { link: 'management:aiAssistantManagementSelection' }, + { link: 'management:spaces' }, + { link: 'management:settings' }, + ], + }, + { + title: 'Stack', + children: [ + { link: 'management:license_management' }, + { link: 'management:upgrade_assistant' }, + ], + }, + ], + }, + { + link: 'integrations', + }, + { + link: 'fleet', + }, + { + id: 'machine_learning-landing', + link: 'securitySolutionUI:machine_learning-landing', + renderAs: 'panelOpener', + spaceBefore: null, + children: [ + { + children: [ + { + link: 'ml:overview', + }, + { + link: 'ml:notifications', + }, + { + link: 'ml:memoryUsage', + }, + ], + }, + { + id: 'category-anomaly_detection', + title: i18n.translate('xpack.observability.obltNav.ml.anomaly_detection', { + defaultMessage: 'Anomaly detection', + }), + breadcrumbStatus: 'hidden', + children: [ + { + link: 'ml:anomalyDetection', + title: i18n.translate('xpack.observability.obltNav.ml.anomaly_detection.jobs', { defaultMessage: 'Jobs', - } - ), - }, - { - link: 'ml:resultExplorer', - }, - { - link: 'ml:analyticsMap', - }, - ], - }, - { - id: 'category-model_management', - title: i18n.translate('xpack.observability.obltNav.ml.model_management', { - defaultMessage: 'Model management', - }), - breadcrumbStatus: 'hidden', - children: [ - { - link: 'ml:nodesOverview', - }, - ], - }, - { - id: 'category-data_visualizer', - title: i18n.translate('xpack.observability.obltNav.ml.data_visualizer', { - defaultMessage: 'Data visualizer', - }), - breadcrumbStatus: 'hidden', - children: [ - { - link: 'ml:fileUpload', - title: i18n.translate( - 'xpack.observability.obltNav.ml.data_visualizer.file_data_visualizer', - { - defaultMessage: 'File data visualizer', - } - ), - }, - { - link: 'ml:indexDataVisualizer', - title: i18n.translate( - 'xpack.observability.obltNav.ml.data_visualizer.file_data_visualizer', - { - defaultMessage: 'Data view data visualizer', - } - ), - }, - { - link: 'ml:dataDrift', - }, - ], - }, - { - id: 'category-aiops_labs', - title: i18n.translate('xpack.observability.obltNav.ml.aiops_labs', { - defaultMessage: 'Aiops labs', - }), - breadcrumbStatus: 'hidden', - children: [ - { - link: 'ml:logRateAnalysis', - }, - { - link: 'ml:logPatternAnalysis', - }, - { - link: 'ml:changePointDetections', - }, - ], - }, - ], - }, - { - id: 'cloudLinkUserAndRoles', - cloudLink: 'userAndRoles', - }, - { - id: 'cloudLinkBilling', - cloudLink: 'billingAndSub', - }, - ], - }, - ], -}; + }), + }, + { + link: 'ml:anomalyExplorer', + }, + { + link: 'ml:singleMetricViewer', + }, + { + link: 'ml:settings', + }, + ], + }, + { + id: 'category-data_frame analytics', + title: i18n.translate('xpack.observability.obltNav.ml.data_frame_analytics', { + defaultMessage: 'Data frame analytics', + }), + breadcrumbStatus: 'hidden', + children: [ + { + link: 'ml:dataFrameAnalytics', + title: i18n.translate( + 'xpack.observability.obltNav.ml.data_frame_analytics.jobs', + { + defaultMessage: 'Jobs', + } + ), + }, + { + link: 'ml:resultExplorer', + }, + { + link: 'ml:analyticsMap', + }, + ], + }, + { + id: 'category-model_management', + title: i18n.translate('xpack.observability.obltNav.ml.model_management', { + defaultMessage: 'Model management', + }), + breadcrumbStatus: 'hidden', + children: [ + { + link: 'ml:nodesOverview', + }, + ], + }, + { + id: 'category-data_visualizer', + title: i18n.translate('xpack.observability.obltNav.ml.data_visualizer', { + defaultMessage: 'Data visualizer', + }), + breadcrumbStatus: 'hidden', + children: [ + { + link: 'ml:fileUpload', + title: i18n.translate( + 'xpack.observability.obltNav.ml.data_visualizer.file_data_visualizer', + { + defaultMessage: 'File data visualizer', + } + ), + }, + { + link: 'ml:indexDataVisualizer', + title: i18n.translate( + 'xpack.observability.obltNav.ml.data_visualizer.file_data_visualizer', + { + defaultMessage: 'Data view data visualizer', + } + ), + }, + { + link: 'ml:dataDrift', + }, + ], + }, + { + id: 'category-aiops_labs', + title: i18n.translate('xpack.observability.obltNav.ml.aiops_labs', { + defaultMessage: 'Aiops labs', + }), + breadcrumbStatus: 'hidden', + children: [ + { + link: 'ml:logRateAnalysis', + }, + { + link: 'ml:logPatternAnalysis', + }, + { + link: 'ml:changePointDetections', + }, + ], + }, + ], + }, + { + id: 'cloudLinkUserAndRoles', + cloudLink: 'userAndRoles', + }, + { + id: 'cloudLinkBilling', + cloudLink: 'billingAndSub', + }, + ], + }, + ], + }; + + return navTree; +} -export const definition: AddSolutionNavigationArg = { +export const createDefinition = ( + pluginsStart: ObservabilityPublicPluginsStart +): AddSolutionNavigationArg => ({ id: 'oblt', title, icon: 'logoObservability', homePage: 'observabilityOnboarding', - navigationTree$: of(navTree), + navigationTree$: of(createNavTree(pluginsStart)), dataTestSubj: 'observabilitySideNav', -}; +}); diff --git a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/header_actions.tsx b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/header_actions.tsx index 5d20f8830799b..dc94dab6194a0 100644 --- a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/header_actions.tsx +++ b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/components/header_actions.tsx @@ -178,6 +178,7 @@ export function HeaderActions({ to: new Date(paddedAlertTimeRange.to).getTime(), }, }, + tags: [], origin: { type: 'alert', id: alert.fields[ALERT_UUID], diff --git a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/hooks/use_create_investigation.tsx b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/hooks/use_create_investigation.tsx index 428e94ef15b15..8fad55195f9b2 100644 --- a/x-pack/plugins/observability_solution/observability/public/pages/alert_details/hooks/use_create_investigation.tsx +++ b/x-pack/plugins/observability_solution/observability/public/pages/alert_details/hooks/use_create_investigation.tsx @@ -32,7 +32,10 @@ export function useCreateInvestigation() { ['createInvestigation'], ({ investigation }) => { const body = JSON.stringify(investigation); - return http.post(`/api/observability/investigations`, { body }); + return http.post(`/api/observability/investigations`, { + body, + version: '2023-10-31', + }); }, { onError: (error, { investigation }, context) => { diff --git a/x-pack/plugins/observability_solution/observability/public/plugin.ts b/x-pack/plugins/observability_solution/observability/public/plugin.ts index 43967f1339c5c..a22638213adbf 100644 --- a/x-pack/plugins/observability_solution/observability/public/plugin.ts +++ b/x-pack/plugins/observability_solution/observability/public/plugin.ts @@ -8,8 +8,8 @@ import { CasesDeepLinkId, CasesPublicStart, getCasesDeepLinks } from '@kbn/cases-plugin/public'; import type { ChartsPluginStart } from '@kbn/charts-plugin/public'; import type { CloudStart } from '@kbn/cloud-plugin/public'; -import type { IUiSettingsClient } from '@kbn/core/public'; import type { ContentManagementPublicStart } from '@kbn/content-management-plugin/public'; +import type { IUiSettingsClient } from '@kbn/core/public'; import { App, AppDeepLink, @@ -23,7 +23,7 @@ import { ToastsStart, } from '@kbn/core/public'; import type { DataPublicPluginSetup, DataPublicPluginStart } from '@kbn/data-plugin/public'; -import { DataViewEditorStart } from '@kbn/data-view-editor-plugin/public'; +import type { DataViewEditorStart } from '@kbn/data-view-editor-plugin/public'; import type { DataViewsPublicPluginStart } from '@kbn/data-views-plugin/public'; import { LOGS_EXPLORER_LOCATOR_ID, LogsExplorerLocatorParams } from '@kbn/deeplinks-observability'; import type { DiscoverStart } from '@kbn/discover-plugin/public'; @@ -32,45 +32,46 @@ import type { FieldFormatsSetup, FieldFormatsStart } from '@kbn/field-formats-pl import type { HomePublicPluginSetup, HomePublicPluginStart } from '@kbn/home-plugin/public'; import { i18n } from '@kbn/i18n'; import type { LensPublicStart } from '@kbn/lens-plugin/public'; +import type { LicensingPluginSetup } from '@kbn/licensing-plugin/public'; import type { NavigationEntry, ObservabilitySharedPluginSetup, ObservabilitySharedPluginStart, } from '@kbn/observability-shared-plugin/public'; -import type { LicensingPluginSetup } from '@kbn/licensing-plugin/public'; -import { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public'; -import { +import type { SharePluginSetup, SharePluginStart } from '@kbn/share-plugin/public'; +import type { TriggersAndActionsUIPublicPluginSetup, TriggersAndActionsUIPublicPluginStart, } from '@kbn/triggers-actions-ui-plugin/public'; -import { BehaviorSubject, from } from 'rxjs'; -import { map, mergeMap } from 'rxjs'; +import { BehaviorSubject, from, map, mergeMap } from 'rxjs'; -import { AiopsPluginStart } from '@kbn/aiops-plugin/public/types'; +import type { AiopsPluginStart } from '@kbn/aiops-plugin/public/types'; +import type { DataViewFieldEditorStart } from '@kbn/data-view-field-editor-plugin/public'; +import { INVENTORY_APP_ID } from '@kbn/deeplinks-observability/constants'; import type { EmbeddableSetup } from '@kbn/embeddable-plugin/public'; -import { ExploratoryViewPublicStart } from '@kbn/exploratory-view-plugin/public'; -import { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public'; -import { LicensingPluginStart } from '@kbn/licensing-plugin/public'; -import { +import type { ExploratoryViewPublicStart } from '@kbn/exploratory-view-plugin/public'; +import type { GuidedOnboardingPluginStart } from '@kbn/guided-onboarding-plugin/public'; +import type { InventoryPublicSetup, InventoryPublicStart } from '@kbn/inventory-plugin/public'; +import type { InvestigatePublicStart } from '@kbn/investigate-plugin/public'; +import type { LicenseManagementUIPluginSetup } from '@kbn/license-management-plugin/public'; +import type { LicensingPluginStart } from '@kbn/licensing-plugin/public'; +import type { NavigationPublicPluginStart } from '@kbn/navigation-plugin/public'; +import type { ObservabilityAIAssistantPublicSetup, ObservabilityAIAssistantPublicStart, } from '@kbn/observability-ai-assistant-plugin/public'; -import { SecurityPluginStart } from '@kbn/security-plugin/public'; -import { SpacesPluginStart } from '@kbn/spaces-plugin/public'; -import { +import type { PresentationUtilPluginStart } from '@kbn/presentation-util-plugin/public'; +import type { SecurityPluginStart } from '@kbn/security-plugin/public'; +import type { ServerlessPluginSetup, ServerlessPluginStart } from '@kbn/serverless/public'; +import type { SpacesPluginStart } from '@kbn/spaces-plugin/public'; +import type { ActionTypeRegistryContract, RuleTypeRegistryContract, } from '@kbn/triggers-actions-ui-plugin/public'; -import { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public'; -import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public'; -import { ServerlessPluginSetup, ServerlessPluginStart } from '@kbn/serverless/public'; -import type { UiActionsStart, UiActionsSetup } from '@kbn/ui-actions-plugin/public'; -import type { NavigationPublicPluginStart } from '@kbn/navigation-plugin/public'; -import type { PresentationUtilPluginStart } from '@kbn/presentation-util-plugin/public'; -import { DataViewFieldEditorStart } from '@kbn/data-view-field-editor-plugin/public'; -import { LicenseManagementUIPluginSetup } from '@kbn/license-management-plugin/public'; -import { InvestigatePublicStart } from '@kbn/investigate-plugin/public'; +import type { UiActionsSetup, UiActionsStart } from '@kbn/ui-actions-plugin/public'; +import type { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public'; +import type { UsageCollectionSetup } from '@kbn/usage-collection-plugin/public'; import { observabilityAppId, observabilityFeatureId } from '../common'; import { ALERTS_PATH, @@ -81,11 +82,11 @@ import { } from '../common/locators/paths'; import { registerDataHandler } from './context/has_data_context/data_handler'; import { createUseRulesLink } from './hooks/create_use_rules_link'; -import { RulesLocatorDefinition } from './locators/rules'; import { RuleDetailsLocatorDefinition } from './locators/rule_details'; +import { RulesLocatorDefinition } from './locators/rules'; import { - createObservabilityRuleTypeRegistry, ObservabilityRuleTypeRegistry, + createObservabilityRuleTypeRegistry, } from './rules/create_observability_rule_type_registry'; import { registerObservabilityRuleTypes } from './rules/register_observability_rule_types'; @@ -125,6 +126,7 @@ export interface ObservabilityPublicPluginsSetup { licensing: LicensingPluginSetup; serverless?: ServerlessPluginSetup; presentationUtil?: PresentationUtilPluginStart; + inventory?: InventoryPublicSetup; } export interface ObservabilityPublicPluginsStart { actionTypeRegistry: ActionTypeRegistryContract; @@ -163,6 +165,7 @@ export interface ObservabilityPublicPluginsStart { dataViewFieldEditor: DataViewFieldEditorStart; toastNotifications: ToastsStart; investigate?: InvestigatePublicStart; + inventory?: InventoryPublicStart; } export type ObservabilityPublicStart = ReturnType; @@ -358,6 +361,18 @@ export class Plugin ] : []; + const inventoryLink = pluginsSetup.inventory + ? [ + { + label: i18n.translate('xpack.observability.inventoryLinkTitle', { + defaultMessage: 'Inventory', + }), + app: INVENTORY_APP_ID, + path: '', + }, + ] + : []; + const isAiAssistantEnabled = pluginsStart.observabilityAIAssistant?.service.isEnabled(); @@ -421,6 +436,7 @@ export class Plugin sortKey: 100, entries: [ ...overviewLink, + ...inventoryLink, ...alertsLink, ...sloLink, ...casesLink, @@ -466,8 +482,8 @@ export class Plugin updater$: this.appUpdater$, }); - import('./navigation_tree').then(({ definition }) => { - return pluginsStart.navigation.addSolutionNavigation(definition); + import('./navigation_tree').then(({ createDefinition }) => { + return pluginsStart.navigation.addSolutionNavigation(createDefinition(pluginsStart)); }); return { diff --git a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/check_missing_group.ts b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/check_missing_group.ts index 8a2d2911915d7..8c5b75f00003a 100644 --- a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/check_missing_group.ts +++ b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/check_missing_group.ts @@ -69,9 +69,9 @@ export const checkMissingGroups = async ( ]; }); - logger.trace(`Request: ${JSON.stringify({ searches })}`); + logger.trace(() => `Request: ${JSON.stringify({ searches })}`); const response = await esClient.msearch({ searches }); - logger.trace(`Response: ${JSON.stringify(response)}`); + logger.trace(() => `Response: ${JSON.stringify(response)}`); const verifiedMissingGroups = response.responses .map((resp, index) => { diff --git a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_data.ts b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_data.ts index 9d1b8fdf9d0ae..c2717caf40344 100644 --- a/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_data.ts +++ b/x-pack/plugins/observability_solution/observability/server/lib/rules/custom_threshold/lib/get_data.ts @@ -215,10 +215,8 @@ export const getData = async ( fieldsExisted ), }; - logger.trace(`Request: ${JSON.stringify(request)}`); const body = await esClient.search(request); const { aggregations, _shards } = body; - logger.trace(`Response: ${JSON.stringify(body)}`); if (aggregations) { return handleResponse(aggregations, previousResults, _shards.successful); } else if (_shards.successful) { diff --git a/x-pack/plugins/observability_solution/observability/server/plugin.ts b/x-pack/plugins/observability_solution/observability/server/plugin.ts index 4b04ac032a82c..6bc21bf5dddf2 100644 --- a/x-pack/plugins/observability_solution/observability/server/plugin.ts +++ b/x-pack/plugins/observability_solution/observability/server/plugin.ts @@ -37,6 +37,7 @@ import { SharePluginSetup } from '@kbn/share-plugin/server'; import { SpacesPluginSetup, SpacesPluginStart } from '@kbn/spaces-plugin/server'; import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/server'; import { DataViewsServerPluginStart } from '@kbn/data-views-plugin/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { ObservabilityConfig } from '.'; import { casesFeatureId, observabilityFeatureId } from '../common'; import { @@ -112,6 +113,7 @@ export class ObservabilityPlugin implements Plugin { }), order: 1100, category: DEFAULT_APP_CATEGORIES.observability, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [casesFeatureId, 'kibana'], catalogue: [observabilityFeatureId], cases: [observabilityFeatureId], @@ -235,6 +237,7 @@ export class ObservabilityPlugin implements Plugin { }), order: 1000, category: DEFAULT_APP_CATEGORIES.observability, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [observabilityFeatureId], catalogue: [observabilityFeatureId], alerting: o11yRuleTypes, diff --git a/x-pack/plugins/observability_solution/observability/tsconfig.json b/x-pack/plugins/observability_solution/observability/tsconfig.json index 2ee43e3b26836..873a87c11d1a4 100644 --- a/x-pack/plugins/observability_solution/observability/tsconfig.json +++ b/x-pack/plugins/observability_solution/observability/tsconfig.json @@ -12,110 +12,109 @@ "../../../../typings/**/*", ], "kbn_references": [ - "@kbn/core", + "@kbn/rule-data-utils", + "@kbn/triggers-actions-ui-plugin", + "@kbn/i18n", + "@kbn/deeplinks-observability", + "@kbn/es-query", + "@kbn/observability-get-padded-alert-time-range-util", + "@kbn/share-plugin", "@kbn/data-plugin", - "@kbn/home-plugin", - "@kbn/kibana-react-plugin", + "@kbn/alerting-comparators", + "@kbn/guided-onboarding", + "@kbn/rison", "@kbn/kibana-utils-plugin", + "@kbn/spaces-plugin", + "@kbn/utility-types", + "@kbn/core-http-server", + "@kbn/core", + "@kbn/inspector-plugin", + "@kbn/shared-ux-page-kibana-template", + "@kbn/observability-ai-assistant-plugin", + "@kbn/shared-ux-router", + "@kbn/kibana-react-plugin", + "@kbn/react-kibana-context-render", + "@kbn/observability-shared-plugin", + "@kbn/react-kibana-context-theme", + "@kbn/shared-ux-link-redirect-app", "@kbn/usage-collection-plugin", - "@kbn/alerting-plugin", - "@kbn/licensing-plugin", + "@kbn/cases-components", "@kbn/cases-plugin", - "@kbn/lens-plugin", + "@kbn/stack-alerts-plugin", + "@kbn/core-ui-settings-browser-mocks", + "@kbn/alerts-ui-shared", + "@kbn/core-notifications-browser", + "@kbn/core-ui-settings-browser", "@kbn/rule-registry-plugin", - "@kbn/spaces-plugin", + "@kbn/alerts-grouping", + "@kbn/grouping", + "@kbn/data-views-plugin", + "@kbn/core-http-browser", "@kbn/timelines-plugin", - "@kbn/translations-plugin", - "@kbn/unified-search-plugin", - "@kbn/guided-onboarding-plugin", + "@kbn/visualization-ui-components", + "@kbn/event-annotation-components", + "@kbn/slo-schema", + "@kbn/event-annotation-common", + "@kbn/react-kibana-mount", + "@kbn/i18n-react", + "@kbn/expression-metric-vis-plugin", + "@kbn/charts-plugin", + "@kbn/alerting-plugin", + "@kbn/aiops-log-rate-analysis", + "@kbn/aiops-plugin", + "@kbn/field-types", + "@kbn/test-jest-helpers", "@kbn/discover-plugin", - "@kbn/i18n", - "@kbn/rule-data-utils", - "@kbn/inspector-plugin", - "@kbn/data-views-plugin", "@kbn/embeddable-plugin", - "@kbn/triggers-actions-ui-plugin", - "@kbn/security-plugin", - "@kbn/shared-ux-page-kibana-template", + "@kbn/lens-plugin", + "@kbn/osquery-plugin", + "@kbn/ui-actions-plugin", + "@kbn/unified-search-plugin", + "@kbn/lens-embeddable-utils", "@kbn/std", - "@kbn/i18n-react", - "@kbn/utility-types", - "@kbn/datemath", - "@kbn/core-ui-settings-browser", - "@kbn/es-query", - "@kbn/server-route-repository", + "@kbn/actions-plugin", + "@kbn/licensing-plugin", + "@kbn/core-chrome-browser", + "@kbn/navigation-plugin", + "@kbn/observability-alert-details", + "@kbn/investigation-shared", + "@kbn/observability-alerting-rule-utils", "@kbn/ui-theme", - "@kbn/test-jest-helpers", - "@kbn/config-schema", - "@kbn/features-plugin", - "@kbn/logging-mocks", - "@kbn/logging", - "@kbn/share-plugin", - "@kbn/core-notifications-browser", - "@kbn/guided-onboarding", - "@kbn/charts-plugin", + "@kbn/core-application-common", "@kbn/securitysolution-ecs", - "@kbn/shared-ux-router", - "@kbn/alerts-ui-shared", "@kbn/alerts-as-data-utils", - "@kbn/core-application-browser", - "@kbn/files-plugin", - "@kbn/core-theme-browser", - "@kbn/core-elasticsearch-server", - "@kbn/observability-shared-plugin", + "@kbn/datemath", + "@kbn/logs-shared-plugin", "@kbn/exploratory-view-plugin", - "@kbn/rison", - "@kbn/io-ts-utils", - "@kbn/observability-alert-details", - "@kbn/observability-get-padded-alert-time-range-util", - "@kbn/ui-actions-plugin", - "@kbn/field-types", - "@kbn/safer-lodash-set", - "@kbn/core-http-server", - "@kbn/cloud-plugin", - "@kbn/stack-alerts-plugin", - "@kbn/data-view-editor-plugin", - "@kbn/actions-plugin", "@kbn/core-capabilities-common", - "@kbn/observability-ai-assistant-plugin", - "@kbn/osquery-plugin", "@kbn/content-management-plugin", - "@kbn/embeddable-plugin", - "@kbn/aiops-plugin", - "@kbn/content-management-plugin", - "@kbn/deeplinks-observability", - "@kbn/core-application-common", - "@kbn/react-kibana-context-theme", - "@kbn/shared-ux-link-redirect-app", - "@kbn/lens-embeddable-utils", - "@kbn/serverless", - "@kbn/presentation-util-plugin", - "@kbn/es-types", - "@kbn/core-ui-settings-browser-mocks", + "@kbn/cloud-plugin", + "@kbn/data-view-editor-plugin", "@kbn/field-formats-plugin", - "@kbn/event-annotation-common", + "@kbn/home-plugin", "@kbn/data-view-field-editor-plugin", - "@kbn/cases-components", - "@kbn/aiops-log-rate-analysis", - "@kbn/alerting-comparators", - "@kbn/react-kibana-context-render", - "@kbn/react-kibana-mount", - "@kbn/core-chrome-browser", - "@kbn/navigation-plugin", - "@kbn/visualization-ui-components", - "@kbn/expression-metric-vis-plugin", - "@kbn/securitysolution-io-ts-utils", - "@kbn/event-annotation-components", - "@kbn/slo-schema", + "@kbn/guided-onboarding-plugin", + "@kbn/inventory-plugin", + "@kbn/investigate-plugin", "@kbn/license-management-plugin", - "@kbn/observability-alerting-rule-utils", + "@kbn/presentation-util-plugin", + "@kbn/security-plugin", + "@kbn/serverless", + "@kbn/core-application-browser", + "@kbn/core-theme-browser", + "@kbn/translations-plugin", + "@kbn/config-schema", + "@kbn/securitysolution-io-ts-utils", + "@kbn/core-elasticsearch-server", + "@kbn/logging", + "@kbn/safer-lodash-set", + "@kbn/features-plugin", + "@kbn/files-plugin", + "@kbn/server-route-repository", + "@kbn/io-ts-utils", "@kbn/core-ui-settings-server-mocks", - "@kbn/investigate-plugin", - "@kbn/investigation-shared", - "@kbn/grouping", - "@kbn/alerts-grouping", - "@kbn/core-http-browser", - "@kbn/logs-shared-plugin", + "@kbn/es-types", + "@kbn/logging-mocks", ], "exclude": [ "target/**/*" diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/public/api/index.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/public/api/index.ts index bf7ec4731baee..9530252e66119 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/public/api/index.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/public/api/index.ts @@ -11,7 +11,7 @@ import type { ReturnOf, RouteRepositoryClient, } from '@kbn/server-route-repository'; -import { formatRequest } from '@kbn/server-route-repository-utils'; +import { createRepositoryClient } from '@kbn/server-route-repository-client'; import type { ObservabilityAIAssistantServerRouteRepository } from '../../server'; type FetchOptions = Omit & { @@ -28,12 +28,12 @@ export type ObservabilityAIAssistantAPIClientOptions = Omit< export type ObservabilityAIAssistantAPIClient = RouteRepositoryClient< ObservabilityAIAssistantServerRouteRepository, ObservabilityAIAssistantAPIClientOptions ->; +>['fetch']; export type AutoAbortedObservabilityAIAssistantAPIClient = RouteRepositoryClient< ObservabilityAIAssistantServerRouteRepository, Omit ->; +>['fetch']; export type ObservabilityAIAssistantAPIEndpoint = keyof ObservabilityAIAssistantServerRouteRepository; @@ -47,19 +47,11 @@ export type ObservabilityAIAssistantAPIClientRequestParamsOf< TEndpoint extends ObservabilityAIAssistantAPIEndpoint > = ClientRequestParamsOf; -export function createCallObservabilityAIAssistantAPI(core: CoreStart | CoreSetup) { - return ((endpoint, options) => { - const { params } = options as unknown as { - params?: Partial>; - }; - - const { method, pathname, version } = formatRequest(endpoint, params?.path); - - return core.http[method](pathname, { - ...options, - body: params && params.body ? JSON.stringify(params.body) : undefined, - query: params?.query, - version, - }); - }) as ObservabilityAIAssistantAPIClient; +export function createCallObservabilityAIAssistantAPI( + core: CoreStart | CoreSetup +): ObservabilityAIAssistantAPIClient { + return createRepositoryClient< + ObservabilityAIAssistantServerRouteRepository, + ObservabilityAIAssistantAPIClientOptions + >(core).fetch; } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/plugin.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/plugin.ts index 8a6f414ec92de..50687920478af 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/plugin.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/plugin.ts @@ -20,6 +20,7 @@ import { ACTION_TASK_PARAMS_SAVED_OBJECT_TYPE, } from '@kbn/actions-plugin/server/constants/saved_objects'; import { firstValueFrom } from 'rxjs'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { OBSERVABILITY_AI_ASSISTANT_FEATURE_ID } from '../common/feature'; import type { ObservabilityAIAssistantConfig } from './config'; import { registerServerRoutes } from './routes/register_routes'; @@ -69,6 +70,7 @@ export class ObservabilityAIAssistantPlugin }), order: 8600, category: DEFAULT_APP_CATEGORIES.observability, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [OBSERVABILITY_AI_ASSISTANT_FEATURE_ID, 'kibana'], catalogue: [OBSERVABILITY_AI_ASSISTANT_FEATURE_ID], minimumLicense: 'enterprise', diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/process_openai_stream.ts b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/process_openai_stream.ts index 59dbd24451c09..e9dbd259182ba 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/process_openai_stream.ts +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/server/service/client/adapters/process_openai_stream.ts @@ -98,7 +98,7 @@ export function processOpenAiStream({ }), filter( (line): line is CreateChatCompletionResponseChunk => - 'object' in line && line.object === 'chat.completion.chunk' + 'object' in line && line.object === 'chat.completion.chunk' && line.choices.length > 0 ), map((chunk): ChatCompletionChunkEvent => { const delta = chunk.choices[0].delta; diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant/tsconfig.json b/x-pack/plugins/observability_solution/observability_ai_assistant/tsconfig.json index cd314e65fec9a..aeb103e041cae 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant/tsconfig.json +++ b/x-pack/plugins/observability_solution/observability_ai_assistant/tsconfig.json @@ -14,34 +14,34 @@ ], "kbn_references": [ "@kbn/i18n", - "@kbn/core-analytics-browser", + "@kbn/inference-plugin", "@kbn/logging", + "@kbn/kibana-utils-plugin", + "@kbn/core-analytics-browser", "@kbn/core", "@kbn/server-route-repository", - "@kbn/licensing-plugin", + "@kbn/server-route-repository-client", "@kbn/actions-plugin", + "@kbn/licensing-plugin", "@kbn/std", - "@kbn/kibana-utils-plugin", + "@kbn/utility-types-jest", "@kbn/kibana-react-plugin", "@kbn/shared-ux-utility", "@kbn/security-plugin", - "@kbn/utility-types-jest", "@kbn/config-schema", - "@kbn/io-ts-utils", "@kbn/utility-types", "@kbn/data-views-plugin", + "@kbn/io-ts-utils", "@kbn/rule-registry-plugin", "@kbn/alerting-plugin", "@kbn/spaces-plugin", "@kbn/task-manager-plugin", + "@kbn/core-elasticsearch-server", + "@kbn/core-ui-settings-server", "@kbn/apm-utils", "@kbn/features-plugin", "@kbn/cloud-plugin", "@kbn/serverless", - "@kbn/core-elasticsearch-server", - "@kbn/core-ui-settings-server", - "@kbn/server-route-repository-utils", - "@kbn/inference-plugin", ], "exclude": ["target/**/*"] } diff --git a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/functions/changes/index.tsx b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/functions/changes/index.tsx index 2797a78faff2f..5edce3c6b5976 100644 --- a/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/functions/changes/index.tsx +++ b/x-pack/plugins/observability_solution/observability_ai_assistant_app/public/functions/changes/index.tsx @@ -53,7 +53,7 @@ function toChangeListItem( item: LogChangeWithTimeseries | MetricChangeWithTimeseries ): ChangeListItem { return { - label: 'regex' in item ? item.regex : item.key, + label: 'regex' in item ? (item.regex as string) : item.key, timeseries: item.over_time, change: item.changes && item.changes.p_value !== undefined && item.changes.time !== undefined diff --git a/x-pack/plugins/observability_solution/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/configure.cy.ts b/x-pack/plugins/observability_solution/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/configure.cy.ts index d427f65fe5b8e..3a4ceba04f706 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/configure.cy.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/e2e/cypress/e2e/logs/custom_logs/configure.cy.ts @@ -5,8 +5,7 @@ * 2.0. */ -// Failing: See https://github.com/elastic/kibana/issues/186215 -describe.skip('[Logs onboarding] Custom logs - configure step', () => { +describe('[Logs onboarding] Custom logs - configure step', () => { describe('logFilePaths', () => { beforeEach(() => { cy.loginAsViewerUser(); diff --git a/x-pack/plugins/observability_solution/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts b/x-pack/plugins/observability_solution/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts index bd0af6f595b34..e9a2b896fbb1c 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/e2e/cypress/e2e/logs/system_logs.cy.ts @@ -5,7 +5,8 @@ * 2.0. */ -describe('[Logs onboarding] System logs', () => { +// Failing 9.0 version update: https://github.com/elastic/kibana/issues/192624 +describe.skip('[Logs onboarding] System logs', () => { describe('System integration', () => { beforeEach(() => { cy.deleteIntegration('system'); @@ -542,9 +543,7 @@ describe('[Logs onboarding] System logs', () => { }); }); - // Skpping this test because it's failing in the CI - // https://github.com/elastic/kibana/issues/176995 - xdescribe('when integration installation succeed', () => { + describe('when integration installation succeed', () => { beforeEach(() => { cy.deleteIntegration('system'); cy.intercept('GET', '/api/fleet/epm/packages/system').as('systemIntegrationInstall'); @@ -557,7 +556,7 @@ describe('[Logs onboarding] System logs', () => { cy.getByTestSubj('obltOnboardingExploreLogs').should('exist').click(); cy.url().should('include', '/app/observability-logs-explorer'); - cy.get('button').contains('[System] syslog').should('exist'); + cy.get('button').contains('[system] system.syslog').should('exist'); }); }); }); diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/application/quickstart_flows/otel_logs/index.tsx b/x-pack/plugins/observability_solution/observability_onboarding/public/application/quickstart_flows/otel_logs/index.tsx index d5101790a164a..57c92ea7ebc8d 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/application/quickstart_flows/otel_logs/index.tsx +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/application/quickstart_flows/otel_logs/index.tsx @@ -548,10 +548,8 @@ spec: curl --output elastic-distro-${agentVersion}-linux-$arch.tar.gz --url https://${AGENT_CDN_BASE_URL}/elastic-agent-${agentVersion}-linux-$arch.tar.gz --proto '=https' --tlsv1.2 -fOL && mkdir -p elastic-distro-${agentVersion}-linux-$arch && tar -xvf elastic-distro-${agentVersion}-linux-$arch.tar.gz -C "elastic-distro-${agentVersion}-linux-$arch" --strip-components=1 && cd elastic-distro-${agentVersion}-linux-$arch -sudo setcap 'cap_dac_read_search=ep' ./data/elastic-agent-*/elastic-agent - rm ./otel.yml && cp ./otel_samples/platformlogs_hostmetrics.yml ./otel.yml && mkdir -p ./data/otelcol && sed -i 's#\\\${env:STORAGE_DIR}#'"$PWD"/data/otelcol'#g' ./otel.yml && sed -i 's#\\\${env:ELASTIC_ENDPOINT}#${setup?.elasticsearchUrl}#g' ./otel.yml && sed -i 's/\\\${env:ELASTIC_API_KEY}/${apiKeyData?.apiKeyEncoded}/g' ./otel.yml`, - start: './otelcol --config otel.yml', + start: 'sudo ./otelcol --config otel.yml', type: 'copy', }, { diff --git a/x-pack/plugins/observability_solution/observability_onboarding/public/services/rest/create_call_api.ts b/x-pack/plugins/observability_solution/observability_onboarding/public/services/rest/create_call_api.ts index ec19a8ef7691b..3f3175aeb2516 100644 --- a/x-pack/plugins/observability_solution/observability_onboarding/public/services/rest/create_call_api.ts +++ b/x-pack/plugins/observability_solution/observability_onboarding/public/services/rest/create_call_api.ts @@ -29,12 +29,12 @@ export type ObservabilityOnboardingClientOptions = Omit< export type ObservabilityOnboardingClient = RouteRepositoryClient< ObservabilityOnboardingServerRouteRepository, ObservabilityOnboardingClientOptions ->; +>['fetch']; export type AutoAbortedObservabilityClient = RouteRepositoryClient< ObservabilityOnboardingServerRouteRepository, Omit ->; +>['fetch']; export type APIReturnType = ReturnOf< ObservabilityOnboardingServerRouteRepository, diff --git a/x-pack/plugins/observability_solution/profiling/e2e/cypress/e2e/profiling_views/functions.cy.ts b/x-pack/plugins/observability_solution/profiling/e2e/cypress/e2e/profiling_views/functions.cy.ts index 4c42069188b3a..0f006e80bb940 100644 --- a/x-pack/plugins/observability_solution/profiling/e2e/cypress/e2e/profiling_views/functions.cy.ts +++ b/x-pack/plugins/observability_solution/profiling/e2e/cypress/e2e/profiling_views/functions.cy.ts @@ -10,7 +10,8 @@ import { profilingPervCPUWattX86, } from '@kbn/observability-plugin/common'; -describe('Functions page', () => { +// Failing: See https://github.com/elastic/kibana/issues/192697 +describe.skip('Functions page', () => { const rangeFrom = '2023-04-18T00:00:00.000Z'; const rangeTo = '2023-04-18T00:00:30.000Z'; diff --git a/x-pack/plugins/observability_solution/profiling/server/feature.ts b/x-pack/plugins/observability_solution/profiling/server/feature.ts index 13e064364b7b8..039c6b3af37a1 100644 --- a/x-pack/plugins/observability_solution/profiling/server/feature.ts +++ b/x-pack/plugins/observability_solution/profiling/server/feature.ts @@ -7,6 +7,7 @@ import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; export const PROFILING_SERVER_FEATURE_ID = 'profiling'; @@ -17,6 +18,7 @@ export const PROFILING_FEATURE = { }), order: 1200, category: DEFAULT_APP_CATEGORIES.observability, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [PROFILING_SERVER_FEATURE_ID, 'ux', 'kibana'], // see x-pack/plugins/features/common/feature_kibana_privileges.ts privileges: { diff --git a/x-pack/plugins/observability_solution/slo/public/pages/slos/components/slo_item_actions.tsx b/x-pack/plugins/observability_solution/slo/public/pages/slos/components/slo_item_actions.tsx index b3b6dbc645a2c..1332a78c1e484 100644 --- a/x-pack/plugins/observability_solution/slo/public/pages/slos/components/slo_item_actions.tsx +++ b/x-pack/plugins/observability_solution/slo/public/pages/slos/components/slo_item_actions.tsx @@ -249,7 +249,6 @@ export function SloItemActions({ {i18n.translate('xpack.slo.item.actions.delete', { defaultMessage: 'Delete' })} {showRemoteLinkIcon} , - , { }), order: 1200, category: DEFAULT_APP_CATEGORIES.observability, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [sloFeatureId, 'kibana'], catalogue: [sloFeatureId, 'observability'], alerting: sloRuleTypes, diff --git a/x-pack/plugins/observability_solution/synthetics/e2e/config.ts b/x-pack/plugins/observability_solution/synthetics/e2e/config.ts index 06088cfcdd02a..4b2aef573d687 100644 --- a/x-pack/plugins/observability_solution/synthetics/e2e/config.ts +++ b/x-pack/plugins/observability_solution/synthetics/e2e/config.ts @@ -7,6 +7,7 @@ import { FtrConfigProviderContext } from '@kbn/test'; import { CA_CERT_PATH } from '@kbn/dev-utils'; +import { get } from 'lodash'; import { commonFunctionalServices } from '@kbn/ftr-common-functional-services'; import { commonFunctionalUIServices } from '@kbn/ftr-common-functional-ui-services'; import { readKibanaConfig } from './tasks/read_kibana_config'; @@ -24,9 +25,11 @@ async function config({ readConfigFile }: FtrConfigProviderContext) { const kibanaConfig = readKibanaConfig(); - const manifestUrl = process.env.SYNTHETICS_SERVICE_MANIFEST ?? kibanaConfig[MANIFEST_KEY]; - const serviceUsername = process.env.SYNTHETICS_SERVICE_USERNAME ?? kibanaConfig[SERVICE_USERNAME]; - const servicePassword = process.env.SYNTHETICS_SERVICE_PASSWORD ?? kibanaConfig[SERVICE_PASSWORD]; + const manifestUrl = process.env.SYNTHETICS_SERVICE_MANIFEST ?? get(kibanaConfig, MANIFEST_KEY); + const serviceUsername = + process.env.SYNTHETICS_SERVICE_USERNAME ?? get(kibanaConfig, SERVICE_USERNAME); + const servicePassword = + process.env.SYNTHETICS_SERVICE_PASSWORD ?? get(kibanaConfig, SERVICE_PASSWORD); return { ...kibanaCommonTestsConfig.getAll(), diff --git a/x-pack/plugins/observability_solution/synthetics/e2e/helpers/synthetics_runner.ts b/x-pack/plugins/observability_solution/synthetics/e2e/helpers/synthetics_runner.ts index 11c71943c4710..c985e87a4a6e2 100644 --- a/x-pack/plugins/observability_solution/synthetics/e2e/helpers/synthetics_runner.ts +++ b/x-pack/plugins/observability_solution/synthetics/e2e/helpers/synthetics_runner.ts @@ -130,7 +130,7 @@ export class SyntheticsRunner { dir: '.journeys/videos', }, }, - match: match === 'undefined' ? '' : match, + grepOpts: { match: match === 'undefined' ? '' : match }, pauseOnError: pauseOnError ?? !CI, screenshots: 'only-on-failure', reporter: TestReporter, diff --git a/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/detail_flyout.ts b/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/detail_flyout.ts index e51dd40bd840b..5159792f9217a 100644 --- a/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/detail_flyout.ts +++ b/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/detail_flyout.ts @@ -8,14 +8,10 @@ import { expect, journey, step } from '@elastic/synthetics'; import { syntheticsAppPageProvider } from '../page_objects/synthetics_app'; -const journeySkip = - (...params: Parameters) => - () => - journey(...params); -// TODO: skipped because failing on main and need to unblock CI -journeySkip('TestMonitorDetailFlyout', async ({ page, params }) => { +journey('TestMonitorDetailFlyout', async ({ page, params }) => { const syntheticsApp = syntheticsAppPageProvider({ page, kibanaUrl: params.kibanaUrl, params }); const monitorName = 'test-flyout-http-monitor'; + const locationId = 'us_central'; step('Go to monitor-management', async () => { await syntheticsApp.navigateToAddMonitor(); @@ -40,7 +36,7 @@ journeySkip('TestMonitorDetailFlyout', async ({ page, params }) => { step('open overview flyout', async () => { await syntheticsApp.navigateToOverview(); await syntheticsApp.assertText({ text: monitorName }); - await page.click(`[data-test-subj="${monitorName}-metric-item"]`); + await page.click(`[data-test-subj="${monitorName}-${locationId}-metric-item"]`); const flyoutHeader = await page.waitForSelector('.euiFlyoutHeader'); expect(await flyoutHeader.innerText()).toContain(monitorName); }); diff --git a/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/global_parameters.journey.ts b/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/global_parameters.journey.ts index 587806e136937..831f8d107f36a 100644 --- a/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/global_parameters.journey.ts +++ b/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/global_parameters.journey.ts @@ -10,12 +10,7 @@ import { byTestId } from '../../helpers/utils'; import { cleanTestParams } from './services/add_monitor'; import { syntheticsAppPageProvider } from '../page_objects/synthetics_app'; -const journeySkip = - (...params: Parameters) => - () => - journey(...params); -// See details: https://github.com/elastic/kibana/issues/191961 -journeySkip(`GlobalParameters`, async ({ page, params }) => { +journey(`GlobalParameters`, async ({ page, params }) => { const syntheticsApp = syntheticsAppPageProvider({ page, kibanaUrl: params.kibanaUrl, params }); before(async () => { @@ -64,7 +59,7 @@ journeySkip(`GlobalParameters`, async ({ page, params }) => { await page.click('[placeholder="Search..."]'); await page.fill('[placeholder="Search..."]', 'username'); await page.click('text=username'); - await page.click('[aria-label="Clear input"]'); + await page.click('[aria-label="Clear search input"]'); await page.click('[placeholder="Search..."]'); await page.fill('[placeholder="Search..."]', 'website'); await page.click('text=website username'); @@ -74,7 +69,7 @@ journeySkip(`GlobalParameters`, async ({ page, params }) => { await page.fill('[placeholder="Search..."]', 'extra'); await page.keyboard.press('Enter'); await page.click('text=No items found'); - await page.click('[aria-label="Clear input"]'); + await page.click('[aria-label="Clear search input"]'); }); step('Click text=Delete ParameterEdit Parameter >> :nth-match(button, 2)', async () => { @@ -91,7 +86,7 @@ journeySkip(`GlobalParameters`, async ({ page, params }) => { await page.click('text=staging'); await page.click('button:has-text("Tags")'); await page.click('[aria-label="Tags"] >> text=staging'); - await page.click('[aria-label="Clear input"]'); + await page.click('[aria-label="Clear search input"]'); }); step('Click text=Delete ParameterEdit Parameter >> button', async () => { await page.click('text=Delete ParameterEdit Parameter >> button'); diff --git a/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/overview_sorting.journey.ts b/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/overview_sorting.journey.ts index feafa1ea6cfdb..66515cbe910bc 100644 --- a/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/overview_sorting.journey.ts +++ b/x-pack/plugins/observability_solution/synthetics/e2e/synthetics/journeys/overview_sorting.journey.ts @@ -13,12 +13,7 @@ import { } from './services/add_monitor'; import { syntheticsAppPageProvider } from '../page_objects/synthetics_app'; -const journeySkip = - (...params: Parameters) => - () => - journey(...params); -// TODO: skipped because failing on main and need to unblock CI -journeySkip('OverviewSorting', async ({ page, params }) => { +journey('OverviewSorting', async ({ page, params }) => { const syntheticsApp = syntheticsAppPageProvider({ page, kibanaUrl: params.kibanaUrl, params }); const testMonitor1 = 'acb'; // second alpha, first created const testMonitor2 = 'aCd'; // third alpha, second created @@ -33,7 +28,7 @@ journeySkip('OverviewSorting', async ({ page, params }) => { await addTestMonitor(params.kibanaUrl, testMonitor3); }); - step('Go to monitor-management', async () => { + step('Go to overview page', async () => { await syntheticsApp.navigateToOverview(true, 15); }); diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/common/monitor_test_result/journey_screenshot_preview.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/common/monitor_test_result/journey_screenshot_preview.tsx index 16d961dfbb67f..10886b87bc3e3 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/common/monitor_test_result/journey_screenshot_preview.tsx +++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/common/monitor_test_result/journey_screenshot_preview.tsx @@ -47,21 +47,21 @@ export const JourneyScreenshotPreview: React.FC = ({ // Only render the dialog if the image is at least once clicked const [isImageEverClick, setIsImageEverClicked] = useState(false); - const onImgFocus: ScreenshotImageProps['onFocus'] = useCallback( + const onImgFocus = useCallback>( (_evt) => { setIsImagePopoverOpen(true); }, [setIsImagePopoverOpen] ); - const onImgBlur: ScreenshotImageProps['onBlur'] = useCallback( + const onImgBlur = useCallback>( (_evt) => { setIsImagePopoverOpen(false); }, [setIsImagePopoverOpen] ); - const onImgClick: ScreenshotImageProps['onClick'] = useCallback( + const onImgClick = useCallback>( (evt) => { evt.stopPropagation(); diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx index 76e52685736b1..691556a94278e 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx +++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitors_page/overview/overview/overview_grid.tsx @@ -199,7 +199,10 @@ export const OverviewGrid = memo(() => { style={{ ...style }} > {listData[listIndex].map((_, idx) => ( - + { expect(result).toEqual('https://elastic.co'); }); - it('returns empty value in case no param', () => { + it('returns same value in case no param', () => { const result = replaceStringWithParams('${homePageUrl}', {}, logger); - expect(result).toEqual(''); + expect(result).toEqual('${homePageUrl}'); }); it('works on objects', () => { @@ -76,6 +76,46 @@ describe('replaceStringWithParams', () => { expect(result).toEqual('Basic https://elastic.co https://elastic.co/product'); }); + it('works on multiple without spaces', () => { + const result = replaceStringWithParams( + 'Basic ${homePageUrl}${homePageUrl1}', + { homePageUrl: 'https://elastic.co', homePageUrl1: 'https://elastic.co/product' }, + logger + ); + + expect(result).toEqual('Basic https://elastic.cohttps://elastic.co/product'); + }); + + it('works on multiple without spaces and one missing', () => { + const result = replaceStringWithParams( + 'Basic ${homePageUrl}${homePageUrl1}', + { homePageUrl: 'https://elastic.co', homePageUrl2: 'https://elastic.co/product' }, + logger + ); + + expect(result).toEqual('Basic https://elastic.co${homePageUrl1}'); + }); + + it('works on multiple without with default', () => { + const result = replaceStringWithParams( + 'Basic ${homePageUrl}${homePageUrl1:test}', + { homePageUrl: 'https://elastic.co', homePageUrl2: 'https://elastic.co/product' }, + logger + ); + + expect(result).toEqual('Basic https://elastic.cotest'); + }); + + it('works on multiple with multiple defaults', () => { + const result = replaceStringWithParams( + 'Basic ${homePageUrl:test}${homePageUrl1:test4}', + { homePageUrl3: 'https://elastic.co', homePageUrl2: 'https://elastic.co/product' }, + logger + ); + + expect(result).toEqual('Basic testtest4'); + }); + it('works with default value', () => { const result = replaceStringWithParams( 'Basic ${homePageUrl:https://elastic.co} ${homePageUrl1}', @@ -143,6 +183,36 @@ describe('replaceStringWithParams', () => { expect(result).toEqual('Basic ${} value'); }); + it('works with ${host.name} for missing params', () => { + const result = replaceStringWithParams( + 'Basic ${host.name} value', + { homePageUrl1: 'https://elastic.co/product' }, + logger + ); + + expect(result).toEqual('Basic ${host.name} value'); + }); + + it('works with ${host.name} one missing params', () => { + const result = replaceStringWithParams( + 'Basic ${host.name} ${homePageUrl1} value', + { homePageUrl1: 'https://elastic.co/product' }, + logger + ); + + expect(result).toEqual('Basic ${host.name} https://elastic.co/product value'); + }); + + it('works with ${host.name} just missing params', () => { + const result = replaceStringWithParams( + '${host.name} ${homePageUrl1}', + { homePageUrl1: 'https://elastic.co/product' }, + logger + ); + + expect(result).toEqual('${host.name} https://elastic.co/product'); + }); + it('works with } ${abc} as part of value', () => { const result = replaceStringWithParams( 'Basic } ${homePageUrl1} value', @@ -162,4 +232,10 @@ describe('replaceStringWithParams', () => { expect(result).toEqual('Basic https://elastic.co/product { value'); }); + + it("returns value as string | null when no params and it's an object", () => { + const result = replaceStringWithParams({}, { param: '1' }, logger); + + expect(result).toEqual({}); + }); }); diff --git a/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/formatting_utils.ts b/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/formatting_utils.ts index 57d742d08deb0..be6dd40e738dc 100644 --- a/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/formatting_utils.ts +++ b/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/formatting_utils.ts @@ -6,6 +6,7 @@ */ import { Logger } from '@kbn/logging'; +import { isEmpty } from 'lodash'; import { ConfigKey, MonitorFields } from '../../../common/runtime_types'; import { ParsedVars, replaceVarsWithParams } from './lightweight_param_formatter'; import variableParser from './variable_parser'; @@ -20,7 +21,7 @@ export const replaceStringWithParams = ( params: Record, logger?: Logger ) => { - if (!value || typeof value === 'boolean') { + if (!value || typeof value === 'boolean' || isEmpty(params)) { return value as string | null; } @@ -42,6 +43,10 @@ export const replaceStringWithParams = ( const parsedVars: ParsedVars = variableParser.parse(value); + if (allParamsAreMissing(parsedVars, params)) { + return value as string | null; + } + return replaceVarsWithParams(parsedVars, params); } catch (e) { logger?.error(`error parsing vars for value ${JSON.stringify(value)}, ${e}`); @@ -50,6 +55,19 @@ export const replaceStringWithParams = ( return value as string | null; }; +const allParamsAreMissing = (parsedVars: ParsedVars, params: Record) => { + const hasDefault = parsedVars.some( + (parsedVar) => parsedVar.type === 'var' && parsedVar.content.default + ); + if (hasDefault) { + return false; + } + const varKeys = parsedVars + .filter((parsedVar) => parsedVar.type === 'var') + .map((v) => (typeof v.content === 'string' ? v.content : v.content.name)); + return varKeys.every((v) => !params[v]); +}; + const SHELL_PARAMS_REGEX = /\$\{[a-zA-Z_][a-zA-Z0-9\._\-?:]*\}/g; export const hasNoParams = (strVal: string) => { diff --git a/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/lightweight_param_formatter.test.ts b/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/lightweight_param_formatter.test.ts index facfd9d5e6536..7d59c5dd90c87 100644 --- a/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/lightweight_param_formatter.test.ts +++ b/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/lightweight_param_formatter.test.ts @@ -162,4 +162,11 @@ describe('LightweightParamFormatter', () => { const result = replaceVarsWithParams(formatter, params); expect(result).toEqual('https://default:1234'); }); + it('wraps content name when no default', () => { + const result = replaceVarsWithParams( + [{ type: 'var', content: { name: 'missing', default: null } }], + {} + ); + expect(result).toEqual('${missing}'); + }); }); diff --git a/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/lightweight_param_formatter.ts b/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/lightweight_param_formatter.ts index e7ee00433cc87..511a5c2ac1aa3 100644 --- a/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/lightweight_param_formatter.ts +++ b/x-pack/plugins/observability_solution/synthetics/server/synthetics_service/formatters/lightweight_param_formatter.ts @@ -16,7 +16,7 @@ export function replaceVarsWithParams(vars: ParsedVars, params: Record targetLength) { + return str; } + targetLength -= str.length; + padString += padString.repeat(targetLength); + return str + padString.slice(0, targetLength); } -peg$subclass(pegSyntaxError, Error); +peg$SyntaxError.prototype.format = function (sources) { + let str = 'Error: ' + this.message; + if (this.location) { + let src = null; + let k; + for (k = 0; k < sources.length; k++) { + if (sources[k].source === this.location.source) { + src = sources[k].text.split(/\r\n|\n|\r/g); + break; + } + } + const s = this.location.start; + const offsetS = + this.location.source && typeof this.location.source.offset === 'function' + ? this.location.source.offset(s) + : s; + const loc = this.location.source + ':' + offsetS.line + ':' + offsetS.column; + if (src) { + const e = this.location.end; + const filler = peg$padEnd('', offsetS.line.toString().length, ' '); + const line = src[s.line - 1]; + const last = s.line === e.line ? e.column : line.length + 1; + const hatLen = last - s.column || 1; + str += + '\n --> ' + + loc + + '\n' + + filler + + ' |\n' + + offsetS.line + + ' | ' + + line + + '\n' + + filler + + ' | ' + + peg$padEnd('', s.column - 1, ' ') + + peg$padEnd('', hatLen, '^'); + } else { + str += '\n at ' + loc; + } + } + return str; +}; -pegSyntaxError.buildMessage = function (expected, found) { +peg$SyntaxError.buildMessage = function (expected, found) { const DESCRIBE_EXPECTATION_FNS = { literal: function (expectation) { return '"' + literalEscape(expectation.text) + '"'; }, class: function (expectation) { - let escapedParts = ''; - let i; - - for (i = 0; i < expectation.parts.length; i++) { - escapedParts += - expectation.parts[i] instanceof Array - ? classEscape(expectation.parts[i][0]) + '-' + classEscape(expectation.parts[i][1]) - : classEscape(expectation.parts[i]); - } + const escapedParts = expectation.parts.map(function (part) { + return Array.isArray(part) + ? classEscape(part[0]) + '-' + classEscape(part[1]) + : classEscape(part); + }); - return '[' + (expectation.inverted ? '^' : '') + escapedParts + ']'; + return '[' + (expectation.inverted ? '^' : '') + escapedParts.join('') + ']'; }, - // eslint-disable-next-line no-unused-vars - any: function (expectation) { + any: function () { return 'any character'; }, - // eslint-disable-next-line no-unused-vars - end: function (expectation) { + end: function () { return 'end of input'; }, @@ -111,14 +158,10 @@ pegSyntaxError.buildMessage = function (expected, found) { } function describeExpected(expected) { - const descriptions = new Array(expected.length); + const descriptions = expected.map(describeExpectation); let i; let j; - for (i = 0; i < expected.length; i++) { - descriptions[i] = describeExpectation(expected[i]); - } - descriptions.sort(); if (descriptions.length > 0) { @@ -152,22 +195,43 @@ pegSyntaxError.buildMessage = function (expected, found) { return 'Expected ' + describeExpected(expected) + ' but ' + describeFound(found) + ' found.'; }; -function pegParse(input, options) { - options = options !== void 0 ? options : {}; +function peg$parse(input, options) { + options = options !== undefined ? options : {}; const peg$FAILED = {}; + const peg$source = options.grammarSource; const peg$startRuleFunctions = { Exps: peg$parseExps }; let peg$startRuleFunction = peg$parseExps; - const peg$c0 = function (e) { - return e.map((x) => x[0]); + const peg$c0 = '${'; + const peg$c1 = '}'; + const peg$c2 = ':'; + const peg$c3 = '\\'; + const peg$c4 = '$'; + + const peg$r0 = /^[^}:\\\r\n]/; + const peg$r1 = /^[^}\\\r\n]/; + const peg$r2 = /^[^$]/; + const peg$r3 = /^[^{]/; + const peg$r4 = /^[ \t\n\r]/; + + const peg$e0 = peg$literalExpectation('${', false); + const peg$e1 = peg$literalExpectation('}', false); + const peg$e2 = peg$literalExpectation(':', false); + const peg$e3 = peg$classExpectation(['}', ':', '\\', '\r', '\n'], true, false); + const peg$e4 = peg$literalExpectation('\\', false); + const peg$e5 = peg$classExpectation(['}', '\\', '\r', '\n'], true, false); + const peg$e6 = peg$classExpectation(['$'], true, false); + const peg$e7 = peg$literalExpectation('$', false); + const peg$e8 = peg$classExpectation(['{'], true, false); + const peg$e9 = peg$otherExpectation('whitespace'); + const peg$e10 = peg$classExpectation([' ', '\t', '\n', '\r'], false, false); + + const peg$f0 = function (e) { + return e; }; - const peg$c1 = '${'; - const peg$c2 = peg$literalExpectation('${', false); - const peg$c3 = '}'; - const peg$c4 = peg$literalExpectation('}', false); - const peg$c5 = function (varCont) { + const peg$f1 = function (varCont) { return { type: 'var', content: { @@ -176,52 +240,44 @@ function pegParse(input, options) { }, }; }; - const peg$c6 = function (varCont) { + const peg$f2 = function (varCont) { return { type: 'varname', content: varCont.map((c) => c.char || c).join('') }; }; - const peg$c7 = ':'; - const peg$c8 = peg$literalExpectation(':', false); - const peg$c9 = function (defCont) { + const peg$f3 = function (defCont) { return { type: 'vardefault', content: defCont.join('') }; }; - const peg$c10 = /^[^}:\\\r\n]/; - const peg$c11 = peg$classExpectation(['}', ':', '\\', '\r', '\n'], true, false); - const peg$c12 = '\\'; - const peg$c13 = peg$literalExpectation('\\', false); - const peg$c14 = function () { + const peg$f4 = function () { + return { type: 'char', char: '\\' }; + }; + const peg$f5 = function () { + return { type: 'char', char: '\x7d' }; + }; + const peg$f6 = function (sequence) { + return sequence.char; + }; + const peg$f7 = function () { return { type: 'char', char: '\\' }; }; - const peg$c15 = function () { + const peg$f8 = function () { return { type: 'char', char: '\x7d' }; }; - const peg$c16 = function (sequence) { + const peg$f9 = function (sequence) { return sequence.char; }; - const peg$c17 = /^[^}\\\r\n]/; - const peg$c18 = peg$classExpectation(['}', '\\', '\r', '\n'], true, false); - const peg$c19 = function (nonVarCont) { + const peg$f10 = function (nonVarCont) { return { type: 'nonvar', content: nonVarCont.map((c) => c.char || c).join('') }; }; - const peg$c20 = /^[^$]/; - const peg$c21 = peg$classExpectation(['$'], true, false); - const peg$c22 = '$'; - const peg$c23 = peg$literalExpectation('$', false); - const peg$c24 = /^[^{]/; - const peg$c25 = peg$classExpectation(['{'], true, false); - const peg$c26 = peg$otherExpectation('whitespace'); - const peg$c27 = /^[ \t\n\r]/; - const peg$c28 = peg$classExpectation([' ', '\t', '\n', '\r'], false, false); - - let peg$currPos = 0; - let peg$savedPos = 0; + let peg$currPos = options.peg$currPos | 0; + // eslint-disable-next-line no-unused-vars + let peg$savedPos = peg$currPos; const peg$posDetailsCache = [{ line: 1, column: 1 }]; - let peg$maxFailPos = 0; - let peg$maxFailExpected = []; - let peg$silentFails = 0; + let peg$maxFailPos = peg$currPos; + let peg$maxFailExpected = options.peg$maxFailExpected || []; + let peg$silentFails = options.peg$silentFails | 0; let peg$result; - if ('startRule' in options) { + if (options.startRule) { if (!(options.startRule in peg$startRuleFunctions)) { throw new Error('Can\'t start parsing from rule "' + options.startRule + '".'); } @@ -229,31 +285,6 @@ function pegParse(input, options) { peg$startRuleFunction = peg$startRuleFunctions[options.startRule]; } - // eslint-disable-next-line no-unused-vars - function text() { - return input.substring(peg$savedPos, peg$currPos); - } - // eslint-disable-next-line no-unused-vars - function location() { - return peg$computeLocation(peg$savedPos, peg$currPos); - } - // eslint-disable-next-line no-unused-vars - function expected(description, location) { - location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos); - - throw peg$buildStructuredError( - [peg$otherExpectation(description)], - input.substring(peg$savedPos, peg$currPos), - location - ); - } - // eslint-disable-next-line no-unused-vars - function error(message, location) { - location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos); - - throw peg$buildSimpleError(message, location); - } - function peg$literalExpectation(text, ignoreCase) { return { type: 'literal', text: text, ignoreCase: ignoreCase }; } @@ -262,11 +293,6 @@ function pegParse(input, options) { return { type: 'class', parts: parts, inverted: inverted, ignoreCase: ignoreCase }; } - // eslint-disable-next-line no-unused-vars - function peg$anyExpectation() { - return { type: 'any' }; - } - function peg$endExpectation() { return { type: 'end' }; } @@ -282,9 +308,13 @@ function pegParse(input, options) { if (details) { return details; } else { - p = pos - 1; - while (!peg$posDetailsCache[p]) { - p--; + if (pos >= peg$posDetailsCache.length) { + p = peg$posDetailsCache.length - 1; + } else { + p = pos; + while (!peg$posDetailsCache[--p]) { + /* empty */ + } } details = peg$posDetailsCache[p]; @@ -305,15 +335,17 @@ function pegParse(input, options) { } peg$posDetailsCache[pos] = details; + return details; } } - function peg$computeLocation(startPos, endPos) { + function peg$computeLocation(startPos, endPos, offset) { const startPosDetails = peg$computePosDetails(startPos); const endPosDetails = peg$computePosDetails(endPos); - return { + const res = { + source: peg$source, start: { offset: startPos, line: startPosDetails.line, @@ -325,6 +357,11 @@ function pegParse(input, options) { column: endPosDetails.column, }, }; + if (offset && peg$source && typeof peg$source.offset === 'function') { + res.start = peg$source.offset(res.start); + res.end = peg$source.offset(res.end); + } + return res; } function peg$fail(expected) { @@ -340,15 +377,10 @@ function pegParse(input, options) { peg$maxFailExpected.push(expected); } - function peg$buildSimpleError(message, location) { - // eslint-disable-next-line new-cap - return new pegSyntaxError(message, null, null, location); - } - function peg$buildStructuredError(expected, found, location) { // eslint-disable-next-line new-cap - return new pegSyntaxError( - pegSyntaxError.buildMessage(expected, found), + return new peg$SyntaxError( + peg$SyntaxError.buildMessage(expected, found), expected, found, location @@ -373,7 +405,7 @@ function pegParse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$c0(s1); + s1 = peg$f0(s1); } s0 = s1; @@ -382,29 +414,10 @@ function pegParse(input, options) { function peg$parseExp() { let s0; - let s1; - s0 = []; - s1 = peg$parseVar(); - if (s1 !== peg$FAILED) { - while (s1 !== peg$FAILED) { - s0.push(s1); - s1 = peg$parseVar(); - } - } else { - s0 = peg$FAILED; - } + s0 = peg$parseVar(); if (s0 === peg$FAILED) { - s0 = []; - s1 = peg$parseNonVar(); - if (s1 !== peg$FAILED) { - while (s1 !== peg$FAILED) { - s0.push(s1); - s1 = peg$parseNonVar(); - } - } else { - s0 = peg$FAILED; - } + s0 = peg$parseNonVar(); } return s0; @@ -413,58 +426,46 @@ function pegParse(input, options) { function peg$parseVar() { let s0; let s1; - let s2; let s3; let s4; let s5; s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c1) { - s1 = peg$c1; + if (input.substr(peg$currPos, 2) === peg$c0) { + s1 = peg$c0; peg$currPos += 2; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c2); + peg$fail(peg$e0); } } if (s1 !== peg$FAILED) { - s2 = peg$parse_(); - if (s2 !== peg$FAILED) { - s3 = []; - s4 = peg$parseVarInner(); - if (s4 !== peg$FAILED) { - while (s4 !== peg$FAILED) { - s3.push(s4); - s4 = peg$parseVarInner(); - } - } else { - s3 = peg$FAILED; + peg$parse_(); + s3 = []; + s4 = peg$parseVarInner(); + if (s4 !== peg$FAILED) { + while (s4 !== peg$FAILED) { + s3.push(s4); + s4 = peg$parseVarInner(); } - if (s3 !== peg$FAILED) { - s4 = peg$parse_(); - if (s4 !== peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 125) { - s5 = peg$c3; - peg$currPos++; - } else { - s5 = peg$FAILED; - if (peg$silentFails === 0) { - peg$fail(peg$c4); - } - } - if (s5 !== peg$FAILED) { - peg$savedPos = s0; - s1 = peg$c5(s3); - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } - } else { - peg$currPos = s0; - s0 = peg$FAILED; + } else { + s3 = peg$FAILED; + } + if (s3 !== peg$FAILED) { + s4 = peg$parse_(); + if (input.charCodeAt(peg$currPos) === 125) { + s5 = peg$c1; + peg$currPos++; + } else { + s5 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$e1); } + } + if (s5 !== peg$FAILED) { + peg$savedPos = s0; + s0 = peg$f1(s3); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -493,13 +494,8 @@ function pegParse(input, options) { if (s2 === peg$FAILED) { s2 = null; } - if (s2 !== peg$FAILED) { - s1 = [s1, s2]; - s0 = s1; - } else { - peg$currPos = s0; - s0 = peg$FAILED; - } + s1 = [s1, s2]; + s0 = s1; } else { peg$currPos = s0; s0 = peg$FAILED; @@ -526,7 +522,7 @@ function pegParse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$c6(s1); + s1 = peg$f2(s1); } s0 = s1; @@ -541,12 +537,12 @@ function pegParse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 58) { - s1 = peg$c7; + s1 = peg$c2; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c8); + peg$fail(peg$e2); } } if (s1 !== peg$FAILED) { @@ -562,8 +558,7 @@ function pegParse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$c9(s2); - s0 = s1; + s0 = peg$f3(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -582,13 +577,13 @@ function pegParse(input, options) { let s2; let s3; - if (peg$c10.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r0.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c11); + peg$fail(peg$e3); } } if (s0 === peg$FAILED) { @@ -597,40 +592,39 @@ function pegParse(input, options) { if (s1 !== peg$FAILED) { s2 = peg$currPos; if (input.charCodeAt(peg$currPos) === 92) { - s3 = peg$c12; + s3 = peg$c3; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c13); + peg$fail(peg$e4); } } if (s3 !== peg$FAILED) { peg$savedPos = s2; - s3 = peg$c14(); + s3 = peg$f4(); } s2 = s3; if (s2 === peg$FAILED) { s2 = peg$currPos; if (input.charCodeAt(peg$currPos) === 125) { - s3 = peg$c3; + s3 = peg$c1; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c4); + peg$fail(peg$e1); } } if (s3 !== peg$FAILED) { peg$savedPos = s2; - s3 = peg$c15(); + s3 = peg$f5(); } s2 = s3; } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$c16(s2); - s0 = s1; + s0 = peg$f6(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -650,13 +644,13 @@ function pegParse(input, options) { let s2; let s3; - if (peg$c17.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r1.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c18); + peg$fail(peg$e5); } } if (s0 === peg$FAILED) { @@ -665,40 +659,39 @@ function pegParse(input, options) { if (s1 !== peg$FAILED) { s2 = peg$currPos; if (input.charCodeAt(peg$currPos) === 92) { - s3 = peg$c12; + s3 = peg$c3; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c13); + peg$fail(peg$e4); } } if (s3 !== peg$FAILED) { peg$savedPos = s2; - s3 = peg$c14(); + s3 = peg$f7(); } s2 = s3; if (s2 === peg$FAILED) { s2 = peg$currPos; if (input.charCodeAt(peg$currPos) === 125) { - s3 = peg$c3; + s3 = peg$c1; peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c4); + peg$fail(peg$e1); } } if (s3 !== peg$FAILED) { peg$savedPos = s2; - s3 = peg$c15(); + s3 = peg$f8(); } s2 = s3; } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$c16(s2); - s0 = s1; + s0 = peg$f9(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -730,7 +723,7 @@ function pegParse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$c19(s1); + s1 = peg$f10(s1); } s0 = s1; @@ -751,13 +744,13 @@ function pegParse(input, options) { function peg$parseNotDollar() { let s0; - if (peg$c20.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r2.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c21); + peg$fail(peg$e6); } } @@ -772,35 +765,35 @@ function pegParse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 36) { - s1 = peg$c22; + s1 = peg$c4; peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c23); + peg$fail(peg$e7); } } if (s1 !== peg$FAILED) { s2 = []; - if (peg$c24.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); + s3 = input.charAt(peg$currPos); + if (peg$r3.test(s3)) { peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c25); + peg$fail(peg$e8); } } if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$c24.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); + s3 = input.charAt(peg$currPos); + if (peg$r3.test(s3)) { peg$currPos++; } else { s3 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c25); + peg$fail(peg$e8); } } } @@ -829,33 +822,31 @@ function pegParse(input, options) { peg$silentFails++; // eslint-disable-next-line prefer-const s0 = []; - if (peg$c27.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); + s1 = input.charAt(peg$currPos); + if (peg$r4.test(s1)) { peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c28); + peg$fail(peg$e10); } } while (s1 !== peg$FAILED) { s0.push(s1); - if (peg$c27.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); + s1 = input.charAt(peg$currPos); + if (peg$r4.test(s1)) { peg$currPos++; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c28); + peg$fail(peg$e10); } } } peg$silentFails--; - if (s0 === peg$FAILED) { - s1 = peg$FAILED; - if (peg$silentFails === 0) { - peg$fail(peg$c26); - } + s1 = peg$FAILED; + if (peg$silentFails === 0) { + peg$fail(peg$e9); } return s0; @@ -865,12 +856,12 @@ function pegParse(input, options) { let s0; if (input.charCodeAt(peg$currPos) === 92) { - s0 = peg$c12; + s0 = peg$c3; peg$currPos++; } else { s0 = peg$FAILED; if (peg$silentFails === 0) { - peg$fail(peg$c13); + peg$fail(peg$e4); } } @@ -880,6 +871,15 @@ function pegParse(input, options) { // eslint-disable-next-line prefer-const peg$result = peg$startRuleFunction(); + if (options.peg$library) { + return /** @type {any} */ ({ + peg$result, + peg$currPos, + peg$FAILED, + peg$maxFailExpected, + peg$maxFailPos, + }); + } if (peg$result !== peg$FAILED && peg$currPos === input.length) { return peg$result; } else { @@ -897,7 +897,72 @@ function pegParse(input, options) { } } -export default { - SyntaxError: pegSyntaxError, - parse: pegParse, -}; +export default { parse: peg$parse }; + +/** + Exps + = e:Exp+ { + return e; + } + + Exp + = Var / NonVar + + Var + = "${" _ varCont:VarInner+ _ "}" { + return { type: "var", content: {name: varCont[0][0].content, default: varCont[0][1] ? varCont[0][1].content : null} } + } + + VarInner + = VarName VarDefault? + + VarName + = varCont:VarNameChar+ { + return { type: "varname", content: varCont.map(c => c.char || c).join('') } + } + + VarDefault + = ":" defCont:VarDefaultChar+ { + return { type: "vardefault", content: defCont.join('')} + } + + VarNameChar + = [^}:\\\r\n] + / Escape + sequence:( + "\\" { return {type: "char", char: "\\"}; } + / "}" { return {type: "char", char: "\x7d"}; } + ) + { return sequence.char; } + + VarDefaultChar + = [^}\\\r\n] + / Escape + sequence:( + "\\" { return {type: "char", char: "\\"}; } + / "}" { return {type: "char", char: "\x7d"}; } + ) + { return sequence.char; } + + NonVar + = nonVarCont:NonVarCont+ { + return { type: "nonvar", content: nonVarCont.map(c => c.char || c).join('') } + } + + NonVarCont + = DollarNotVarStart / NotDollar + + NotDollar + = [^$] + + DollarNotVarStart + = "$" [^{]+ + + _ "whitespace" + = [ \t\n\r]* + + Escape + = "\\" + + + */ diff --git a/x-pack/plugins/observability_solution/uptime/e2e/README.md b/x-pack/plugins/observability_solution/uptime/e2e/README.md index ab7ebdf591d89..eaca49c558375 100644 --- a/x-pack/plugins/observability_solution/uptime/e2e/README.md +++ b/x-pack/plugins/observability_solution/uptime/e2e/README.md @@ -10,7 +10,7 @@ with an example run command when it finishes. ### Run the tests -From the same directory you can now run `node node e2e.js --runner`. +From the same directory you can now run `node e2e.js --runner`. In addition to the usual flags like `--grep`, you can also specify `--no-headless` in order to view your tests as you debug/develop. @@ -22,11 +22,11 @@ script for standing up the test server. ### Start the server -From `~/x-pack/plugins/observability_solution/synthetics/scripts`, run `node uptime_e2e.js --server`. Wait for the server to startup. It will provide you +From `~/x-pack/plugins/observability_solution/uptime/scripts`, run `node uptime_e2e.js --server`. Wait for the server to startup. It will provide you with an example run command when it finishes. ### Run the tests -From the same directory you can now run `node node uptime_e2e.js --runner`. +From the same directory you can now run `node uptime_e2e.js --runner`. In addition to the usual flags like `--grep`, you can also specify `--no-headless` in order to view your tests as you debug/develop. diff --git a/x-pack/plugins/observability_solution/uptime/e2e/helpers/synthetics_runner.ts b/x-pack/plugins/observability_solution/uptime/e2e/helpers/synthetics_runner.ts index 2a1ebce4126f2..c9d1f485afbf2 100644 --- a/x-pack/plugins/observability_solution/uptime/e2e/helpers/synthetics_runner.ts +++ b/x-pack/plugins/observability_solution/uptime/e2e/helpers/synthetics_runner.ts @@ -124,7 +124,7 @@ export class SyntheticsRunner { dir: '.journeys/videos', }, }, - match: match === 'undefined' ? '' : match, + grepOpts: { match: match === 'undefined' ? '' : match }, pauseOnError, screenshots: 'only-on-failure', reporter: TestReporter, diff --git a/x-pack/plugins/observability_solution/uptime/e2e/uptime/journeys/uptime.journey.ts b/x-pack/plugins/observability_solution/uptime/e2e/uptime/journeys/uptime.journey.ts index f3916cd4eab12..81559169deff3 100644 --- a/x-pack/plugins/observability_solution/uptime/e2e/uptime/journeys/uptime.journey.ts +++ b/x-pack/plugins/observability_solution/uptime/e2e/uptime/journeys/uptime.journey.ts @@ -9,7 +9,7 @@ import { journey, step, before } from '@elastic/synthetics'; import { byTestId, waitForLoadingToFinish } from '../../helpers/utils'; import { recordVideo } from '../../helpers/record_video'; -journey('uptime', ({ page, params }) => { +journey('UptimeOverview', ({ page, params }) => { recordVideo(page); before(async () => { @@ -17,7 +17,7 @@ journey('uptime', ({ page, params }) => { }); step('Go to Kibana', async () => { - await page.goto(`${params.kibanaUrl}/app/uptime?dateRangeStart=now-5y&dateRangeEnd=now`, { + await page.goto(`${params.kibanaUrl}/app/uptime?dateRangeStart=2018-01-01&dateRangeEnd=now`, { waitUntil: 'networkidle', }); }); diff --git a/x-pack/plugins/observability_solution/ux/e2e/helpers/synthetics_runner.ts b/x-pack/plugins/observability_solution/ux/e2e/helpers/synthetics_runner.ts index 062564019b281..e191d5fc101f7 100644 --- a/x-pack/plugins/observability_solution/ux/e2e/helpers/synthetics_runner.ts +++ b/x-pack/plugins/observability_solution/ux/e2e/helpers/synthetics_runner.ts @@ -128,7 +128,7 @@ export class SyntheticsRunner { dir: '.journeys/videos', }, }, - match: match === 'undefined' ? '' : match, + grepOpts: { match: match === 'undefined' ? '' : match }, pauseOnError, screenshots: 'only-on-failure', reporter: TestReporter, diff --git a/x-pack/plugins/observability_solution/ux/public/services/rest/create_call_apm_api.ts b/x-pack/plugins/observability_solution/ux/public/services/rest/create_call_apm_api.ts index 1f9fd67049328..0fe003ece56ab 100644 --- a/x-pack/plugins/observability_solution/ux/public/services/rest/create_call_apm_api.ts +++ b/x-pack/plugins/observability_solution/ux/public/services/rest/create_call_apm_api.ts @@ -22,12 +22,12 @@ export type APMClientOptions = Omit; +export type APMClient = RouteRepositoryClient['fetch']; export type AutoAbortedAPMClient = RouteRepositoryClient< APMServerRouteRepository, Omit ->; +>['fetch']; export type APIReturnType = ReturnOf< APMServerRouteRepository, @@ -43,7 +43,10 @@ export type APIClientRequestParamsOf = ClientRequ export type AbstractAPMRepository = ServerRouteRepository; -export type AbstractAPMClient = RouteRepositoryClient; +export type AbstractAPMClient = RouteRepositoryClient< + AbstractAPMRepository, + APMClientOptions +>['fetch']; export let callApmApi: APMClient = () => { throw new Error('callApmApi has to be initialized before used. Call createCallApmApi first.'); diff --git a/x-pack/plugins/osquery/public/packs/form/shards/shards_percentage_field.tsx b/x-pack/plugins/osquery/public/packs/form/shards/shards_percentage_field.tsx index 4afb27570689e..8e1a8ace67932 100644 --- a/x-pack/plugins/osquery/public/packs/form/shards/shards_percentage_field.tsx +++ b/x-pack/plugins/osquery/public/packs/form/shards/shards_percentage_field.tsx @@ -33,7 +33,7 @@ const ShardsPercentageFieldComponent = ({ defaultValue: 100, }); - const handleChange: EuiRangeProps['onChange'] = useCallback( + const handleChange = useCallback>( (e) => { const numberValue = (e.target as { valueAsNumber: number }).valueAsNumber ? (e.target as { valueAsNumber: number }).valueAsNumber diff --git a/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx b/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx index 48f3024d499c3..53d55aef7475c 100644 --- a/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx +++ b/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx @@ -427,7 +427,7 @@ const DocsColumnResults: React.FC = ({ actionId, - {lastResultsData?.docCount ?? 0} + {(lastResultsData?.docCount as number) ?? 0} @@ -487,7 +487,7 @@ const ErrorsColumnResults: React.FC = ({ - {errorsData?.total ?? 0} + {(errorsData?.total as number) ?? 0} diff --git a/x-pack/plugins/osquery/public/saved_queries/saved_queries_dropdown.tsx b/x-pack/plugins/osquery/public/saved_queries/saved_queries_dropdown.tsx index 5a5e052362ee4..c82c9f7a7ed56 100644 --- a/x-pack/plugins/osquery/public/saved_queries/saved_queries_dropdown.tsx +++ b/x-pack/plugins/osquery/public/saved_queries/saved_queries_dropdown.tsx @@ -120,7 +120,7 @@ const SavedQueriesDropdownComponent: React.FC = ({ return ( } fullWidth diff --git a/x-pack/plugins/osquery/server/utils/register_features.ts b/x-pack/plugins/osquery/server/utils/register_features.ts index 5af2335489dff..46db233a6dce4 100644 --- a/x-pack/plugins/osquery/server/utils/register_features.ts +++ b/x-pack/plugins/osquery/server/utils/register_features.ts @@ -7,6 +7,7 @@ import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { packSavedObjectType, packAssetSavedObjectType, @@ -22,6 +23,7 @@ export const registerFeatures = (features: SetupPlugins['features']) => { defaultMessage: 'Osquery', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [PLUGIN_ID, 'kibana'], catalogue: [PLUGIN_ID], order: 2300, diff --git a/x-pack/plugins/reporting/server/features.ts b/x-pack/plugins/reporting/server/features.ts index 7c87f19ca011a..5fb03f7428b26 100644 --- a/x-pack/plugins/reporting/server/features.ts +++ b/x-pack/plugins/reporting/server/features.ts @@ -8,6 +8,7 @@ import { DEFAULT_APP_CATEGORIES, type Logger } from '@kbn/core/server'; import { i18n } from '@kbn/i18n'; import type { FeaturesPluginSetup } from '@kbn/features-plugin/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; interface FeatureRegistrationOpts { features: FeaturesPluginSetup; @@ -37,6 +38,7 @@ export function registerFeatures({ defaultMessage: 'Reporting', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], app: [], privileges: { all: { savedObject: { all: [], read: [] }, ui: [] }, diff --git a/x-pack/plugins/reporting/server/plugin.test.ts b/x-pack/plugins/reporting/server/plugin.test.ts index de576fe95d006..2322794836989 100644 --- a/x-pack/plugins/reporting/server/plugin.test.ts +++ b/x-pack/plugins/reporting/server/plugin.test.ts @@ -186,6 +186,7 @@ describe('Reporting Plugin', () => { id: 'reporting', name: 'Reporting', category: DEFAULT_APP_CATEGORIES.management, + scope: ['spaces', 'security'], app: [], privileges: { all: { savedObject: { all: [], read: [] }, ui: [] }, diff --git a/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts b/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts index 78043a961a1fd..854cebc9b0bf9 100644 --- a/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts +++ b/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts @@ -65,16 +65,18 @@ const augmentAlerts = ({ intendedTimestamp: Date | undefined; }) => { const commonRuleFields = getCommonAlertFields(options); + const currentDate = new Date(); + const timestampOverrideOrCurrent = currentTimeOverride ?? currentDate; return alerts.map((alert) => { return { ...alert, _source: { - [ALERT_RULE_EXECUTION_TIMESTAMP]: new Date(), - [ALERT_START]: currentTimeOverride ?? new Date(), - [ALERT_LAST_DETECTED]: currentTimeOverride ?? new Date(), + [ALERT_RULE_EXECUTION_TIMESTAMP]: currentDate, + [ALERT_START]: timestampOverrideOrCurrent, + [ALERT_LAST_DETECTED]: timestampOverrideOrCurrent, [ALERT_INTENDED_TIMESTAMP]: intendedTimestamp ? intendedTimestamp - : currentTimeOverride ?? new Date(), + : timestampOverrideOrCurrent, [VERSION]: kibanaVersion, ...(options?.maintenanceWindowIds?.length ? { [ALERT_MAINTENANCE_WINDOW_IDS]: options.maintenanceWindowIds } diff --git a/x-pack/plugins/saved_objects_tagging/server/features.ts b/x-pack/plugins/saved_objects_tagging/server/features.ts index aaaf030f2c27e..30c5fc7b910f6 100644 --- a/x-pack/plugins/saved_objects_tagging/server/features.ts +++ b/x-pack/plugins/saved_objects_tagging/server/features.ts @@ -8,6 +8,7 @@ import { i18n } from '@kbn/i18n'; import { DEFAULT_APP_CATEGORIES } from '@kbn/core/server'; import { KibanaFeatureConfig } from '@kbn/features-plugin/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { tagSavedObjectTypeName, tagManagementSectionId, tagFeatureId } from '../common/constants'; export const savedObjectsTaggingFeature: KibanaFeatureConfig = { @@ -16,6 +17,7 @@ export const savedObjectsTaggingFeature: KibanaFeatureConfig = { defaultMessage: 'Tag Management', }), category: DEFAULT_APP_CATEGORIES.management, + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], order: 1800, app: [], management: { diff --git a/x-pack/plugins/search_indices/common/doc_links.ts b/x-pack/plugins/search_indices/common/doc_links.ts new file mode 100644 index 0000000000000..dbffa8f9f0f33 --- /dev/null +++ b/x-pack/plugins/search_indices/common/doc_links.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DocLinks } from '@kbn/doc-links'; + +class SearchIndicesDocLinks { + public apiReference: string = ''; + + constructor() {} + + setDocLinks(newDocLinks: DocLinks) { + this.apiReference = newDocLinks.apiReference; + } +} +export const docLinks = new SearchIndicesDocLinks(); diff --git a/x-pack/plugins/search_indices/kibana.jsonc b/x-pack/plugins/search_indices/kibana.jsonc index 7f23aa80fef15..303a264d2bafd 100644 --- a/x-pack/plugins/search_indices/kibana.jsonc +++ b/x-pack/plugins/search_indices/kibana.jsonc @@ -20,6 +20,7 @@ ], "requiredBundles": [ "kibanaReact", + "esUiShared" ] } } diff --git a/x-pack/plugins/search_indices/public/analytics/constants.ts b/x-pack/plugins/search_indices/public/analytics/constants.ts index 77e177bf78063..bfbe476db7a30 100644 --- a/x-pack/plugins/search_indices/public/analytics/constants.ts +++ b/x-pack/plugins/search_indices/public/analytics/constants.ts @@ -7,5 +7,7 @@ export enum AnalyticsEvents { startPageOpened = 'start_page_opened', + startPageShowCodeClick = 'start_page_show_code', + startPageShowCreateIndexUIClick = 'start_page_show_create_index_ui', startCreateIndexClick = 'start_create_index', } diff --git a/x-pack/plugins/search_indices/public/assets/curl.svg b/x-pack/plugins/search_indices/public/assets/curl.svg new file mode 100644 index 0000000000000..e922b12283f7d --- /dev/null +++ b/x-pack/plugins/search_indices/public/assets/curl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/x-pack/plugins/search_indices/public/assets/javascript.svg b/x-pack/plugins/search_indices/public/assets/javascript.svg new file mode 100644 index 0000000000000..6d514f5448c50 --- /dev/null +++ b/x-pack/plugins/search_indices/public/assets/javascript.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/x-pack/plugins/search_indices/public/assets/python.svg b/x-pack/plugins/search_indices/public/assets/python.svg new file mode 100644 index 0000000000000..bd8a27810c575 --- /dev/null +++ b/x-pack/plugins/search_indices/public/assets/python.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/x-pack/plugins/search_indices/public/code_examples/create_index.ts b/x-pack/plugins/search_indices/public/code_examples/create_index.ts new file mode 100644 index 0000000000000..ec11283b2185f --- /dev/null +++ b/x-pack/plugins/search_indices/public/code_examples/create_index.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { CreateIndexCodeExamples } from '../types'; + +import { CurlExamples } from './curl'; +import { JavascriptServerlessExamples } from './javascript'; +import { PythonServerlessExamples } from './python'; +import { ConsoleExamples } from './sense'; + +export const DefaultServerlessCodeExamples: CreateIndexCodeExamples = { + sense: ConsoleExamples.default, + curl: CurlExamples.default, + python: PythonServerlessExamples.default, + javascript: JavascriptServerlessExamples.default, +}; + +export const DenseVectorSeverlessCodeExamples: CreateIndexCodeExamples = { + sense: ConsoleExamples.dense_vector, + curl: CurlExamples.dense_vector, + python: PythonServerlessExamples.dense_vector, + javascript: JavascriptServerlessExamples.dense_vector, +}; diff --git a/x-pack/plugins/search_indices/public/code_examples/curl.ts b/x-pack/plugins/search_indices/public/code_examples/curl.ts new file mode 100644 index 0000000000000..c5ee1d581250c --- /dev/null +++ b/x-pack/plugins/search_indices/public/code_examples/curl.ts @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { API_KEY_PLACEHOLDER, INDEX_PLACEHOLDER } from '../constants'; +import { CodeLanguage, CreateIndexLanguageExamples } from '../types'; + +export const CURL_INFO: CodeLanguage = { + id: 'curl', + title: i18n.translate('xpack.searchIndices.codingLanguages.curl', { defaultMessage: 'cURL' }), + icon: 'curl.svg', + codeBlockLanguage: 'shell', +}; + +export const CurlExamples: CreateIndexLanguageExamples = { + default: { + createIndex: ({ elasticsearchURL, apiKey, indexName }) => `curl PUT '${elasticsearchURL}/${ + indexName ?? INDEX_PLACEHOLDER + }' \ +--header 'Authorization: ApiKey ${apiKey ?? API_KEY_PLACEHOLDER}' \ +--header 'Content-Type: application/json'`, + }, + dense_vector: { + createIndex: ({ elasticsearchURL, apiKey, indexName }) => `curl PUT '${elasticsearchURL}/${ + indexName ?? INDEX_PLACEHOLDER + }' \ +--header 'Authorization: ApiKey ${apiKey ?? API_KEY_PLACEHOLDER}' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "mappings": { + "properties":{ + "vector":{ + "type": "dense_vector", + "dims": 3 + }, + "text":{ + "type":"text" + } + } + } +}'`, + }, +}; diff --git a/x-pack/plugins/search_indices/public/code_examples/index.ts b/x-pack/plugins/search_indices/public/code_examples/index.ts new file mode 100644 index 0000000000000..fc4019b45a6da --- /dev/null +++ b/x-pack/plugins/search_indices/public/code_examples/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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { CURL_INFO } from './curl'; +import { JAVASCRIPT_INFO } from './javascript'; +import { PYTHON_INFO } from './python'; + +export const Languages = { + curl: CURL_INFO, + python: PYTHON_INFO, + javascript: JAVASCRIPT_INFO, +}; + +export const LanguageOptions = Object.values(Languages); + +export type AvailableLanguages = keyof typeof Languages; diff --git a/x-pack/plugins/search_indices/public/code_examples/javascript.ts b/x-pack/plugins/search_indices/public/code_examples/javascript.ts new file mode 100644 index 0000000000000..26b7b5e8111ac --- /dev/null +++ b/x-pack/plugins/search_indices/public/code_examples/javascript.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { API_KEY_PLACEHOLDER, INDEX_PLACEHOLDER } from '../constants'; +import { CodeLanguage, CreateIndexLanguageExamples } from '../types'; + +export const JAVASCRIPT_INFO: CodeLanguage = { + id: 'javascript', + title: i18n.translate('xpack.searchIndices.codingLanguages.javascript', { + defaultMessage: 'Javascript', + }), + icon: 'javascript.svg', + codeBlockLanguage: 'javascript', +}; + +const SERVERLESS_INSTALL_CMD = `npm install @elastic/elasticsearch-serverless`; + +export const JavascriptServerlessExamples: CreateIndexLanguageExamples = { + default: { + installCommand: SERVERLESS_INSTALL_CMD, + createIndex: ({ + elasticsearchURL, + apiKey, + indexName, + }) => `import { Client } from "@elastic/elasticsearch-serverless" + +const client = new Client({ + node: '${elasticsearchURL}', + auth: { + apiKey: "${apiKey ?? API_KEY_PLACEHOLDER}" + } +}); + +client.indices.create({ + index: "${indexName ?? INDEX_PLACEHOLDER}", +});`, + }, + dense_vector: { + installCommand: SERVERLESS_INSTALL_CMD, + createIndex: ({ + elasticsearchURL, + apiKey, + indexName, + }) => `import { Client } from "@elastic/elasticsearch-serverless" + +const client = new Client({ + node: '${elasticsearchURL}', + auth: { + apiKey: "${apiKey ?? API_KEY_PLACEHOLDER}" + } +}); + +client.indices.create({ + index: "${indexName ?? INDEX_PLACEHOLDER}", + mappings: { + properties: { + vector: { type: "dense_vector", dims: 3 }, + text: { type: "text"} + }, + }, +});`, + }, +}; diff --git a/x-pack/plugins/search_indices/public/code_examples/python.ts b/x-pack/plugins/search_indices/public/code_examples/python.ts new file mode 100644 index 0000000000000..0d9e778ca1060 --- /dev/null +++ b/x-pack/plugins/search_indices/public/code_examples/python.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { API_KEY_PLACEHOLDER, INDEX_PLACEHOLDER } from '../constants'; +import { CodeLanguage, CodeSnippetParameters, CreateIndexLanguageExamples } from '../types'; + +export const PYTHON_INFO: CodeLanguage = { + id: 'python', + title: i18n.translate('xpack.searchIndices.codingLanguages.python', { defaultMessage: 'Python' }), + icon: 'python.svg', + codeBlockLanguage: 'python', +}; + +const SERVERLESS_PYTHON_INSTALL_CMD = 'pip install elasticsearch-serverless'; + +export const PythonServerlessExamples: CreateIndexLanguageExamples = { + default: { + installCommand: SERVERLESS_PYTHON_INSTALL_CMD, + createIndex: ({ + elasticsearchURL, + apiKey, + indexName, + }: CodeSnippetParameters) => `from elasticsearch-serverless import Elasticsearch + +client = Elasticsearch( + "${elasticsearchURL}", + api_key="${apiKey ?? API_KEY_PLACEHOLDER}" +) + +client.indices.create( + index="${indexName ?? INDEX_PLACEHOLDER}" +)`, + }, + dense_vector: { + installCommand: SERVERLESS_PYTHON_INSTALL_CMD, + createIndex: ({ + elasticsearchURL, + apiKey, + indexName, + }: CodeSnippetParameters) => `from elasticsearch-serverless import Elasticsearch + +client = Elasticsearch( + "${elasticsearchURL}", + api_key="${apiKey ?? API_KEY_PLACEHOLDER}" +) + +client.indices.create( + index="${indexName ?? INDEX_PLACEHOLDER}" + mappings={ + "properties": { + "vector": {"type": "dense_vector", "dims": 3 }, + "text": {"type": "text"} + } + } +)`, + }, +}; diff --git a/x-pack/plugins/search_indices/public/code_examples/sense.ts b/x-pack/plugins/search_indices/public/code_examples/sense.ts new file mode 100644 index 0000000000000..ad7b5834c9d26 --- /dev/null +++ b/x-pack/plugins/search_indices/public/code_examples/sense.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { INDEX_PLACEHOLDER } from '../constants'; +import { CreateIndexLanguageExamples } from '../types'; + +export const ConsoleExamples: CreateIndexLanguageExamples = { + default: { + createIndex: ({ indexName }) => `PUT /${indexName ?? INDEX_PLACEHOLDER}`, + }, + dense_vector: { + createIndex: ({ indexName }) => `PUT /${indexName ?? INDEX_PLACEHOLDER} +{ + "mappings": { + "properties":{ + "vector":{ + "type": "dense_vector", + "dims": 3 + }, + "text":{ + "type":"text" + } + } + } +}`, + }, +}; diff --git a/x-pack/plugins/search_indices/public/components/indices/delete_index_modal.tsx b/x-pack/plugins/search_indices/public/components/indices/delete_index_modal.tsx new file mode 100644 index 0000000000000..de9c887adb538 --- /dev/null +++ b/x-pack/plugins/search_indices/public/components/indices/delete_index_modal.tsx @@ -0,0 +1,75 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React, { Fragment, useEffect } from 'react'; +import { i18n } from '@kbn/i18n'; +import { EuiConfirmModal } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { useDeleteIndex } from '../../hooks/api/use_delete_index'; +interface DeleteIndexModelProps { + onCancel: () => void; + indexName: string; + navigateToIndexListPage: () => void; +} +export const DeleteIndexModal: React.FC = ({ + onCancel, + indexName, + navigateToIndexListPage, +}) => { + const { mutate, isLoading, isSuccess } = useDeleteIndex(indexName); + useEffect(() => { + if (isSuccess) { + navigateToIndexListPage(); + } + }, [navigateToIndexListPage, isSuccess]); + return ( + mutate()} + isLoading={isLoading} + buttonColor="danger" + confirmButtonDisabled={false} + cancelButtonText={i18n.translate( + 'xpack.searchIndices.indexActionsMenu.deleteIndex.confirmModal.cancelButtonText', + { + defaultMessage: 'Cancel', + } + )} + confirmButtonText={i18n.translate( + 'xpack.searchIndices.indexActionsMenu.deleteIndex.confirmModal.confirmButtonText', + { + defaultMessage: 'Delete index', + } + )} + > + +

    + +

    +
      +
    • {indexName}
    • +
    + +

    + +

    +
    +
    + ); +}; diff --git a/x-pack/plugins/search_indices/public/components/indices/details_page.tsx b/x-pack/plugins/search_indices/public/components/indices/details_page.tsx index ed8ad6325f45f..afa798814d864 100644 --- a/x-pack/plugins/search_indices/public/components/indices/details_page.tsx +++ b/x-pack/plugins/search_indices/public/components/indices/details_page.tsx @@ -5,18 +5,36 @@ * 2.0. */ -import { EuiPageSection, EuiSpacer, EuiButton, EuiPageTemplate } from '@elastic/eui'; -import React, { useCallback, useMemo } from 'react'; +import { + EuiPageSection, + EuiSpacer, + EuiButton, + EuiPageTemplate, + EuiFlexItem, + EuiFlexGroup, + EuiPopover, + EuiButtonIcon, + EuiContextMenuItem, + EuiContextMenuPanel, + EuiText, + EuiIcon, + EuiButtonEmpty, +} from '@elastic/eui'; +import React, { useCallback, useMemo, useState } from 'react'; import { useParams } from 'react-router-dom'; import { FormattedMessage } from '@kbn/i18n-react'; +import { i18n } from '@kbn/i18n'; +import { SectionLoading } from '@kbn/es-ui-shared-plugin/public'; import { useIndex } from '../../hooks/api/use_index'; import { useKibana } from '../../hooks/use_kibana'; +import { DeleteIndexModal } from './delete_index_modal'; +import { IndexloadingError } from './details_page_loading_error'; export const SearchIndexDetailsPage = () => { const indexName = decodeURIComponent(useParams<{ indexName: string }>().indexName); - const { console: consolePlugin, application } = useKibana().services; + const { console: consolePlugin, docLinks, application } = useKibana().services; + const { data: index, refetch, isSuccess, isInitialLoading } = useIndex(indexName); - const { data: index } = useIndex(indexName); const embeddableConsole = useMemo( () => (consolePlugin?.EmbeddableConsole ? : null), [consolePlugin] @@ -24,6 +42,61 @@ export const SearchIndexDetailsPage = () => { const navigateToIndexListPage = useCallback(() => { application.navigateToApp('management', { deepLinkId: 'index_management' }); }, [application]); + + const refetchIndex = useCallback(() => { + refetch(); + }, [refetch]); + const [showMoreOptions, setShowMoreOptions] = useState(false); + const [isShowingDeleteModal, setShowDeleteIndexModal] = useState(false); + const moreOptionsPopover = ( + setShowMoreOptions(!showMoreOptions)} + button={ + setShowMoreOptions(!showMoreOptions)} + size="m" + data-test-subj="moreOptionsActionButton" + aria-label={i18n.translate('xpack.searchIndices.moreOptions.ariaLabel', { + defaultMessage: 'More options', + })} + /> + } + > + } + onClick={() => { + setShowDeleteIndexModal(!isShowingDeleteModal); + }} + size="s" + color="danger" + data-test-subj="moreOptionsDeleteIndex" + > + + {i18n.translate('xpack.searchIndices.moreOptions.deleteIndexLabel', { + defaultMessage: 'Delete Index', + })} + +
    , + ]} + /> + + ); + if (isInitialLoading) { + return ( + + {i18n.translate('xpack.searchIndices.loadingDescription', { + defaultMessage: 'Loading index details…', + })} + + ); + } + return ( { grow={false} bottomBorder={false} > - - - + ) : ( + <> + + navigateToIndexListPage()} + > + + + + + + + {i18n.translate('xpack.searchIndices.indexActionsMenu.apiReference.docLink', { + defaultMessage: 'API Reference', + })} + + + {moreOptionsPopover} + , + ]} /> - - - - + + + {isShowingDeleteModal && ( + setShowDeleteIndexModal(!isShowingDeleteModal)} + indexName={indexName} + navigateToIndexListPage={navigateToIndexListPage} + /> + )} -
    +
    + + )} {embeddableConsole} ); diff --git a/x-pack/plugins/search_indices/public/components/indices/details_page_loading_error.tsx b/x-pack/plugins/search_indices/public/components/indices/details_page_loading_error.tsx new file mode 100644 index 0000000000000..2b02f6c9e1716 --- /dev/null +++ b/x-pack/plugins/search_indices/public/components/indices/details_page_loading_error.tsx @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { + EuiButton, + EuiButtonEmpty, + EuiFlexGroup, + EuiFlexItem, + EuiPageTemplate, + EuiText, +} from '@elastic/eui'; +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n-react'; +interface IndexloadingErrorProps { + indexName: string; + navigateToIndexListPage: () => void; + reloadFunction: () => void; +} +export const IndexloadingError = ({ + indexName, + navigateToIndexListPage, + reloadFunction, +}: IndexloadingErrorProps) => ( + + + + } + body={ + + + + } + actions={ + + + navigateToIndexListPage()} + data-test-subj="loadingErrorBackToIndicesButton" + > + + + + + + + + + + } + /> +); diff --git a/x-pack/plugins/search_indices/public/components/shared/language_selector.tsx b/x-pack/plugins/search_indices/public/components/shared/language_selector.tsx new file mode 100644 index 0000000000000..8d6717bb90541 --- /dev/null +++ b/x-pack/plugins/search_indices/public/components/shared/language_selector.tsx @@ -0,0 +1,56 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useMemo } from 'react'; +import { EuiIcon, EuiSuperSelect, EuiText, EuiFlexGroup } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +import { useAssetBasePath } from '../../hooks/use_asset_base_path'; +import { AvailableLanguages } from '../../code_examples'; +import { CodeLanguage } from '../../types'; + +export interface LanguageSelectorProps { + selectedLanguage: AvailableLanguages; + options: CodeLanguage[]; + onSelectLanguage: (value: AvailableLanguages) => void; +} + +export const LanguageSelector = ({ + selectedLanguage, + options, + onSelectLanguage, +}: LanguageSelectorProps) => { + const assetBasePath = useAssetBasePath(); + const languageOptions = useMemo( + () => + options.map((lang) => ({ + value: lang.id as AvailableLanguages, + 'aria-label': i18n.translate('xpack.searchIndices.codeLanguage.selectChangeAriaLabel', { + defaultMessage: + 'Change language of code examples to {language} for every instance on this page', + values: { + language: lang.title, + }, + }), + 'data-test-subj': `lang-option-${lang.id}`, + inputDisplay: ( + + + {lang.title} + + ), + })), + [assetBasePath, options] + ); + return ( + + options={languageOptions} + valueOfSelected={selectedLanguage} + onChange={(value) => onSelectLanguage(value)} + /> + ); +}; diff --git a/x-pack/plugins/search_indices/public/components/start/code_sample.tsx b/x-pack/plugins/search_indices/public/components/start/code_sample.tsx new file mode 100644 index 0000000000000..017424e287a61 --- /dev/null +++ b/x-pack/plugins/search_indices/public/components/start/code_sample.tsx @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { + EuiCodeBlock, + EuiFlexItem, + EuiPanel, + EuiSpacer, + EuiText, + EuiThemeProvider, +} from '@elastic/eui'; + +export interface CodeSampleProps { + title: string; + language: string; + code: string; +} + +export const CodeSample = ({ title, language, code }: CodeSampleProps) => { + return ( + + + {title} + + + + + + {code} + + + + + ); +}; diff --git a/x-pack/plugins/search_indices/public/components/start/create_index.tsx b/x-pack/plugins/search_indices/public/components/start/create_index.tsx index 8bbee0168f730..ae191481e5da4 100644 --- a/x-pack/plugins/search_indices/public/components/start/create_index.tsx +++ b/x-pack/plugins/search_indices/public/components/start/create_index.tsx @@ -14,34 +14,39 @@ import { EuiForm, EuiFormRow, EuiIcon, + EuiSpacer, EuiText, - EuiTitle, + EuiToolTip, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import type { UserStartPrivilegesResponse } from '../../../common'; import { AnalyticsEvents } from '../../analytics/constants'; import { useUsageTracker } from '../../hooks/use_usage_tracker'; -import { isValidIndexName, generateRandomIndexName } from '../../utils/indices'; +import { isValidIndexName } from '../../utils/indices'; import { useCreateIndex } from './hooks/use_create_index'; -interface CreateIndexFormState { - indexName: string; -} +import { CreateIndexFormState } from './types'; -function initCreateIndexState(): CreateIndexFormState { - return { - indexName: generateRandomIndexName(), - }; -} +const CREATE_INDEX_CONTENT = i18n.translate( + 'xpack.searchIndices.startPage.createIndex.action.text', + { + defaultMessage: 'Create my index', + } +); export interface CreateIndexFormProps { + formState: CreateIndexFormState; + setFormState: React.Dispatch>; userPrivileges?: UserStartPrivilegesResponse; } -export const CreateIndexForm = ({ userPrivileges }: CreateIndexFormProps) => { - const [formState, setFormState] = useState(initCreateIndexState()); +export const CreateIndexForm = ({ + userPrivileges, + formState, + setFormState, +}: CreateIndexFormProps) => { const [indexNameHasError, setIndexNameHasError] = useState(false); const usageTracker = useUsageTracker(); const { createIndex, isLoading } = useCreateIndex(); @@ -62,95 +67,90 @@ export const CreateIndexForm = ({ userPrivileges }: CreateIndexFormProps) => { }; return ( - - - - - -

    - {i18n.translate('xpack.searchIndices.startPage.createIndex.title', { - defaultMessage: 'Create your first index', - })} -

    -
    -
    - - <> - -
    - -

    - {i18n.translate('xpack.searchIndices.startPage.createIndex.description', { - defaultMessage: - 'An index stores your data and defines the schema, or field mappings, for your searches', - })} -

    -
    - + + - + + + + + {userPrivileges?.privileges?.canCreateIndex === false ? ( + + {i18n.translate('xpack.searchIndices.startPage.createIndex.permissionTooltip', { + defaultMessage: 'You do not have permission to create an index.', + })} +

    } - )} - /> -
    - - + > + + {CREATE_INDEX_CONTENT} + + + ) : ( - {i18n.translate('xpack.searchIndices.startPage.createIndex.action.text', { - defaultMessage: 'Create my index', - })} + {CREATE_INDEX_CONTENT} - - - {userPrivileges?.privileges?.canCreateApiKeys && ( - - - -

    - {i18n.translate( - 'xpack.searchIndices.startPage.createIndex.apiKeyCreation.description', - { - defaultMessage: "We'll create an API key for this index", - } - )} -

    -
    -
    - )} -
    -
    + )} + + + {userPrivileges?.privileges?.canCreateApiKeys && ( + + + +

    + {i18n.translate( + 'xpack.searchIndices.startPage.createIndex.apiKeyCreation.description', + { + defaultMessage: "We'll create an API key for this index", + } + )} +

    +
    +
    + )} +
    ); diff --git a/x-pack/plugins/search_indices/public/components/start/create_index_code.tsx b/x-pack/plugins/search_indices/public/components/start/create_index_code.tsx new file mode 100644 index 0000000000000..b58bf6c0926f1 --- /dev/null +++ b/x-pack/plugins/search_indices/public/components/start/create_index_code.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import React, { useMemo, useState } from 'react'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { TryInConsoleButton } from '@kbn/try-in-console'; + +import { useKibana } from '../../hooks/use_kibana'; +import { CodeSample } from './code_sample'; +import { CreateIndexFormState } from './types'; +import { ELASTICSEARCH_URL_PLACEHOLDER } from '../../constants'; + +import { Languages, AvailableLanguages, LanguageOptions } from '../../code_examples'; +import { DenseVectorSeverlessCodeExamples } from '../../code_examples/create_index'; + +import { LanguageSelector } from '../shared/language_selector'; + +export interface CreateIndexCodeViewProps { + createIndexForm: CreateIndexFormState; +} + +// TODO: this will be dynamic based on stack / es3 & onboarding token +const SelectedCodeExamples = DenseVectorSeverlessCodeExamples; + +export const CreateIndexCodeView = ({ createIndexForm }: CreateIndexCodeViewProps) => { + const { application, cloud, share, console: consolePlugin } = useKibana().services; + // TODO: initing this should be dynamic and possibly saved in the form state + const [selectedLanguage, setSelectedLanguage] = useState('python'); + const codeParams = useMemo(() => { + return { + indexName: createIndexForm.indexName || undefined, + elasticsearchURL: cloud?.elasticsearchUrl ?? ELASTICSEARCH_URL_PLACEHOLDER, + }; + }, [createIndexForm.indexName, cloud]); + const selectedCodeExample = useMemo(() => { + return SelectedCodeExamples[selectedLanguage]; + }, [selectedLanguage]); + + return ( + + + + setSelectedLanguage(value)} + /> + + + + + + {selectedCodeExample.installCommand && ( + + )} + + + ); +}; diff --git a/x-pack/plugins/search_indices/public/components/start/elasticsearch_start.tsx b/x-pack/plugins/search_indices/public/components/start/elasticsearch_start.tsx index 18d0bb90b1f0f..131948d1a0377 100644 --- a/x-pack/plugins/search_indices/public/components/start/elasticsearch_start.tsx +++ b/x-pack/plugins/search_indices/public/components/start/elasticsearch_start.tsx @@ -5,8 +5,18 @@ * 2.0. */ -import React, { useEffect } from 'react'; -import { EuiFlexGroup, EuiFlexItem, EuiIcon, EuiPanel, EuiSpacer, EuiTitle } from '@elastic/eui'; +import React, { useCallback, useEffect, useState } from 'react'; +import { + EuiButtonGroup, + EuiFlexGroup, + EuiFlexItem, + EuiForm, + EuiIcon, + EuiPanel, + EuiSpacer, + EuiText, + EuiTitle, +} from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import type { IndicesStatusResponse, UserStartPrivilegesResponse } from '../../../common'; @@ -14,20 +24,59 @@ import type { IndicesStatusResponse, UserStartPrivilegesResponse } from '../../. import { AnalyticsEvents } from '../../analytics/constants'; import { useUsageTracker } from '../../hooks/use_usage_tracker'; +import { generateRandomIndexName } from '../../utils/indices'; import { CreateIndexForm } from './create_index'; +import { CreateIndexCodeView } from './create_index_code'; +import { CreateIndexFormState } from './types'; -const MAX_WIDTH = '600px'; +function initCreateIndexState(): CreateIndexFormState { + return { + indexName: generateRandomIndexName(), + }; +} + +const MAX_WIDTH = '650px'; +enum CreateIndexView { + UI = 'ui', + Code = 'code', +} export interface ElasticsearchStartProps { indicesData?: IndicesStatusResponse; userPrivileges?: UserStartPrivilegesResponse; } export const ElasticsearchStart = ({ userPrivileges }: ElasticsearchStartProps) => { + const [createIndexView, setCreateIndexView] = useState( + userPrivileges?.privileges.canCreateIndex === false ? CreateIndexView.Code : CreateIndexView.UI + ); + const [formState, setFormState] = useState(initCreateIndexState()); const usageTracker = useUsageTracker(); useEffect(() => { usageTracker.load(AnalyticsEvents.startPageOpened); }, [usageTracker]); + useEffect(() => { + if (userPrivileges === undefined) return; + if (userPrivileges.privileges.canCreateIndex === false) { + setCreateIndexView(CreateIndexView.Code); + } + }, [userPrivileges]); + const onChangeView = useCallback( + (id) => { + switch (id) { + case CreateIndexView.UI: + usageTracker.click(AnalyticsEvents.startPageShowCreateIndexUIClick); + setCreateIndexView(CreateIndexView.UI); + return; + case CreateIndexView.Code: + usageTracker.click(AnalyticsEvents.startPageShowCodeClick); + setCreateIndexView(CreateIndexView.Code); + return; + } + }, + [usageTracker] + ); + return ( - + + + + + +

    + {i18n.translate('xpack.searchIndices.startPage.createIndex.title', { + defaultMessage: 'Create your first index', + })} +

    +
    +
    + + + +
    + +

    + {i18n.translate('xpack.searchIndices.startPage.createIndex.description', { + defaultMessage: + 'An index stores your data and defines the schema, or field mappings, for your searches', + })} +

    +
    + {createIndexView === CreateIndexView.UI && ( + + )} + {createIndexView === CreateIndexView.Code && ( + + )} +
    +
    ); diff --git a/x-pack/plugins/search_indices/public/components/start/start_page.tsx b/x-pack/plugins/search_indices/public/components/start/start_page.tsx index f26d78302e636..4a848f580d22f 100644 --- a/x-pack/plugins/search_indices/public/components/start/start_page.tsx +++ b/x-pack/plugins/search_indices/public/components/start/start_page.tsx @@ -44,7 +44,9 @@ export const ElasticsearchStartPage = () => { {isInitialLoading && } {hasIndicesStatusFetchError && } - + {!isInitialLoading && !hasIndicesStatusFetchError && ( + + )} {embeddableConsole} diff --git a/x-pack/plugins/search_indices/public/components/start/types.ts b/x-pack/plugins/search_indices/public/components/start/types.ts new file mode 100644 index 0000000000000..6b6c1c8e38f61 --- /dev/null +++ b/x-pack/plugins/search_indices/public/components/start/types.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export interface CreateIndexFormState { + indexName: string; +} diff --git a/x-pack/plugins/search_indices/public/constants.ts b/x-pack/plugins/search_indices/public/constants.ts new file mode 100644 index 0000000000000..54652954964aa --- /dev/null +++ b/x-pack/plugins/search_indices/public/constants.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export enum QueryKeys { + FetchIndex = 'fetchIndex', + FetchSearchIndicesStatus = 'fetchSearchIndicesStatus', + FetchUserStartPrivileges = 'fetchUserStartPrivileges', +} + +export enum MutationKeys { + SearchIndicesCreateIndex = 'searchIndicesCreateIndex', +} + +export const ELASTICSEARCH_URL_PLACEHOLDER = 'https://your_deployment_url'; +export const API_KEY_PLACEHOLDER = 'YOUR_API_KEY'; +export const INDEX_PLACEHOLDER = 'my-index'; diff --git a/x-pack/plugins/search_indices/public/hooks/api/use_create_index.ts b/x-pack/plugins/search_indices/public/hooks/api/use_create_index.ts index 4dcb98002b997..b00384e2bc521 100644 --- a/x-pack/plugins/search_indices/public/hooks/api/use_create_index.ts +++ b/x-pack/plugins/search_indices/public/hooks/api/use_create_index.ts @@ -9,6 +9,7 @@ import { useMutation } from '@tanstack/react-query'; import { POST_CREATE_INDEX_ROUTE } from '../../../common/routes'; import { CreateIndexRequest, CreateIndexResponse } from '../../../common/types'; +import { MutationKeys } from '../../constants'; import { useKibana } from '../use_kibana'; @@ -16,7 +17,7 @@ export const useCreateIndex = () => { const { http } = useKibana().services; const { mutate: createIndex, ...rest } = useMutation({ - mutationKey: ['searchIndicesCreateIndex'], + mutationKey: [MutationKeys.SearchIndicesCreateIndex], mutationFn: async (input: CreateIndexRequest) => http.post(POST_CREATE_INDEX_ROUTE, { body: JSON.stringify(input), diff --git a/x-pack/plugins/search_indices/public/hooks/api/use_delete_index.ts b/x-pack/plugins/search_indices/public/hooks/api/use_delete_index.ts new file mode 100644 index 0000000000000..9e1162a6ac390 --- /dev/null +++ b/x-pack/plugins/search_indices/public/hooks/api/use_delete_index.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { AcknowledgedResponseBase } from '@elastic/elasticsearch/lib/api/types'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { QueryKeys } from '../../constants'; +import { useKibana } from '../use_kibana'; + +export const useDeleteIndex = (indexName: string) => { + const { http } = useKibana().services; + const indices = [indexName]; + const body = JSON.stringify({ + indices, + }); + const queryClient = useQueryClient(); + + const result = useMutation({ + mutationFn: async () => { + const response = await http.post( + `/api/index_management/indices/delete`, + { + body, + } + ); + return response.acknowledged; + }, + onSuccess: () => { + queryClient.invalidateQueries([QueryKeys.FetchIndex, indexName]); + }, + }); + return { ...result }; +}; diff --git a/x-pack/plugins/search_indices/public/hooks/api/use_index.ts b/x-pack/plugins/search_indices/public/hooks/api/use_index.ts index 65a8710589393..8b72308e44dfe 100644 --- a/x-pack/plugins/search_indices/public/hooks/api/use_index.ts +++ b/x-pack/plugins/search_indices/public/hooks/api/use_index.ts @@ -5,20 +5,21 @@ * 2.0. */ -import type { Index } from '@kbn/index-management'; +import type { Index } from '@kbn/index-management-shared-types'; import { useQuery } from '@tanstack/react-query'; +import { QueryKeys } from '../../constants'; import { useKibana } from '../use_kibana'; const POLLING_INTERVAL = 15 * 1000; export const useIndex = (indexName: string) => { const { http } = useKibana().services; - const queryKey = ['fetchIndex', indexName]; + const queryKey = [QueryKeys.FetchIndex, indexName]; const result = useQuery({ queryKey, refetchInterval: POLLING_INTERVAL, refetchIntervalInBackground: true, refetchOnWindowFocus: 'always', - retry: true, + retry: 3, queryFn: () => http.fetch(`/internal/index_management/indices/${encodeURIComponent(indexName)}`), }); diff --git a/x-pack/plugins/search_indices/public/hooks/api/use_indices_status.ts b/x-pack/plugins/search_indices/public/hooks/api/use_indices_status.ts index 81bd4579539e8..0ac7f3acd2e3c 100644 --- a/x-pack/plugins/search_indices/public/hooks/api/use_indices_status.ts +++ b/x-pack/plugins/search_indices/public/hooks/api/use_indices_status.ts @@ -9,6 +9,7 @@ import { useQuery } from '@tanstack/react-query'; import { GET_STATUS_ROUTE } from '../../../common/routes'; import type { IndicesStatusResponse } from '../../../common/types'; +import { QueryKeys } from '../../constants'; import { useKibana } from '../use_kibana'; @@ -21,7 +22,7 @@ export const useIndicesStatusQuery = (pollingInterval = DEFAULT_INDICES_POLLING_ refetchIntervalInBackground: true, refetchOnWindowFocus: 'always', retry: true, - queryKey: ['fetchSearchIndicesStatus'], + queryKey: [QueryKeys.FetchSearchIndicesStatus], queryFn: () => http.get(GET_STATUS_ROUTE), }); }; diff --git a/x-pack/plugins/search_indices/public/hooks/api/use_user_permissions.ts b/x-pack/plugins/search_indices/public/hooks/api/use_user_permissions.ts index a0a84e0148560..d3f4f34887157 100644 --- a/x-pack/plugins/search_indices/public/hooks/api/use_user_permissions.ts +++ b/x-pack/plugins/search_indices/public/hooks/api/use_user_permissions.ts @@ -9,13 +9,14 @@ import { useQuery } from '@tanstack/react-query'; import { GET_USER_PRIVILEGES_ROUTE } from '../../../common/routes'; import type { UserStartPrivilegesResponse } from '../../../common/types'; +import { QueryKeys } from '../../constants'; import { useKibana } from '../use_kibana'; export const useUserPrivilegesQuery = () => { const { http } = useKibana().services; return useQuery({ - queryKey: ['fetchUserStartPrivileges'], + queryKey: [QueryKeys.FetchUserStartPrivileges], queryFn: () => http.get(GET_USER_PRIVILEGES_ROUTE), }); }; diff --git a/x-pack/plugins/search_indices/public/hooks/use_asset_base_path.ts b/x-pack/plugins/search_indices/public/hooks/use_asset_base_path.ts new file mode 100644 index 0000000000000..e3c60417cd521 --- /dev/null +++ b/x-pack/plugins/search_indices/public/hooks/use_asset_base_path.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { PLUGIN_ID } from '../../common'; +import { useKibana } from './use_kibana'; + +export const useAssetBasePath = () => { + const { http } = useKibana().services; + return http.basePath.prepend(`/plugins/${PLUGIN_ID}/assets`); +}; diff --git a/x-pack/plugins/search_indices/public/types.ts b/x-pack/plugins/search_indices/public/types.ts index fba8e9fb8fbd5..8e7853543f76f 100644 --- a/x-pack/plugins/search_indices/public/types.ts +++ b/x-pack/plugins/search_indices/public/types.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { CloudStart } from '@kbn/cloud-plugin/public'; import type { ConsolePluginStart } from '@kbn/console-plugin/public'; import type { AppMountParameters, CoreStart } from '@kbn/core/public'; import type { NavigationPublicPluginStart } from '@kbn/navigation-plugin/public'; @@ -23,6 +24,7 @@ export interface AppPluginStartDependencies { export interface SearchIndicesAppPluginStartDependencies { console?: ConsolePluginStart; + cloud?: CloudStart; share: SharePluginStart; usageCollection?: UsageCollectionStart; } @@ -41,3 +43,34 @@ export interface AppUsageTracker { count: (eventName: string | string[]) => void; load: (eventName: string | string[]) => void; } + +export interface CodeSnippetParameters { + indexName?: string; + apiKey?: string; + elasticsearchURL: string; +} +export type CodeSnippetFunction = (params: CodeSnippetParameters) => string; + +export interface CodeLanguage { + id: string; + title: string; + icon: string; + codeBlockLanguage: string; +} + +export interface CreateIndexCodeDefinition { + installCommand?: string; + createIndex: CodeSnippetFunction; +} + +export interface CreateIndexCodeExamples { + sense: CreateIndexCodeDefinition; + curl: CreateIndexCodeDefinition; + python: CreateIndexCodeDefinition; + javascript: CreateIndexCodeDefinition; +} + +export interface CreateIndexLanguageExamples { + default: CreateIndexCodeDefinition; + dense_vector: CreateIndexCodeDefinition; +} diff --git a/x-pack/plugins/search_indices/tsconfig.json b/x-pack/plugins/search_indices/tsconfig.json index 849fecad1b297..c3623afcc0f29 100644 --- a/x-pack/plugins/search_indices/tsconfig.json +++ b/x-pack/plugins/search_indices/tsconfig.json @@ -27,7 +27,11 @@ "@kbn/share-plugin", "@kbn/kibana-utils-plugin", "@kbn/shared-ux-router", - "@kbn/index-management", + "@kbn/es-ui-shared-plugin", + "@kbn/doc-links", + "@kbn/index-management-shared-types", + "@kbn/try-in-console", + "@kbn/cloud-plugin", ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/search_inference_endpoints/common/constants.ts b/x-pack/plugins/search_inference_endpoints/common/constants.ts index 186901659dd29..b76246aa53a49 100644 --- a/x-pack/plugins/search_inference_endpoints/common/constants.ts +++ b/x-pack/plugins/search_inference_endpoints/common/constants.ts @@ -6,7 +6,7 @@ */ export const PLUGIN_ID = 'searchInferenceEndpoints'; -export const PLUGIN_NAME = 'InferenceEndpoints'; +export const PLUGIN_NAME = 'Inference Endpoints'; export const INFERENCE_ENDPOINTS_QUERY_KEY = 'inferenceEndpointsQueryKey'; export const TRAINED_MODEL_STATS_QUERY_KEY = 'trainedModelStats'; diff --git a/x-pack/plugins/search_inference_endpoints/kibana.jsonc b/x-pack/plugins/search_inference_endpoints/kibana.jsonc index 6cdca96205588..e7ba67795f7bf 100644 --- a/x-pack/plugins/search_inference_endpoints/kibana.jsonc +++ b/x-pack/plugins/search_inference_endpoints/kibana.jsonc @@ -12,11 +12,12 @@ ], "requiredPlugins": [ "actions", + "features", "share", ], "optionalPlugins": [ - "cloud", - "console", + "cloud", + "console", "ml" ], "requiredBundles": [ diff --git a/x-pack/plugins/search_inference_endpoints/server/plugin.ts b/x-pack/plugins/search_inference_endpoints/server/plugin.ts index 74a877824956f..425820495e997 100644 --- a/x-pack/plugins/search_inference_endpoints/server/plugin.ts +++ b/x-pack/plugins/search_inference_endpoints/server/plugin.ts @@ -5,20 +5,30 @@ * 2.0. */ -import { CoreSetup, CoreStart, Logger, Plugin, PluginInitializerContext } from '@kbn/core/server'; +import { + CoreSetup, + CoreStart, + DEFAULT_APP_CATEGORIES, + Logger, + Plugin, + PluginInitializerContext, +} from '@kbn/core/server'; +import { KibanaFeatureScope } from '@kbn/features-plugin/common'; import { defineRoutes } from './routes'; import { SearchInferenceEndpointsPluginSetup, + SearchInferenceEndpointsPluginSetupDependencies, SearchInferenceEndpointsPluginStart, SearchInferenceEndpointsPluginStartDependencies, } from './types'; +import { PLUGIN_ID, PLUGIN_NAME } from '../common/constants'; export class SearchInferenceEndpointsPlugin implements Plugin< SearchInferenceEndpointsPluginSetup, SearchInferenceEndpointsPluginStart, - {}, + SearchInferenceEndpointsPluginSetupDependencies, SearchInferenceEndpointsPluginStartDependencies > { @@ -32,13 +42,45 @@ export class SearchInferenceEndpointsPlugin core: CoreSetup< SearchInferenceEndpointsPluginStartDependencies, SearchInferenceEndpointsPluginStart - > + >, + plugins: SearchInferenceEndpointsPluginSetupDependencies ) { this.logger.debug('searchInferenceEndpoints: Setup'); const router = core.http.createRouter(); defineRoutes({ logger: this.logger, router }); + plugins.features.registerKibanaFeature({ + id: PLUGIN_ID, + minimumLicense: 'enterprise', + name: PLUGIN_NAME, + order: 0, + category: DEFAULT_APP_CATEGORIES.enterpriseSearch, + app: ['kibana', PLUGIN_ID], + scope: [KibanaFeatureScope.Spaces, KibanaFeatureScope.Security], + catalogue: [PLUGIN_ID], + privileges: { + all: { + app: ['kibana', PLUGIN_ID], + api: [], + catalogue: [PLUGIN_ID], + savedObject: { + all: [], + read: [], + }, + ui: [], + }, + read: { + disabled: true, + savedObject: { + all: [], + read: [], + }, + ui: [], + }, + }, + }); + return {}; } diff --git a/x-pack/plugins/search_inference_endpoints/server/types.ts b/x-pack/plugins/search_inference_endpoints/server/types.ts index fcc6ffa55ec0f..2c481d4516a8c 100644 --- a/x-pack/plugins/search_inference_endpoints/server/types.ts +++ b/x-pack/plugins/search_inference_endpoints/server/types.ts @@ -6,6 +6,7 @@ */ import { PluginStartContract as ActionsPluginStartContract } from '@kbn/actions-plugin/server'; +import { FeaturesPluginSetup, FeaturesPluginStart } from '@kbn/features-plugin/server'; // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface SearchInferenceEndpointsPluginSetup {} @@ -14,6 +15,11 @@ export interface SearchInferenceEndpointsPluginStart {} export interface SearchInferenceEndpointsPluginStartDependencies { actions: ActionsPluginStartContract; + features: FeaturesPluginStart; +} + +export interface SearchInferenceEndpointsPluginSetupDependencies { + features: FeaturesPluginSetup; } export * from '../common/types'; diff --git a/x-pack/plugins/search_inference_endpoints/tsconfig.json b/x-pack/plugins/search_inference_endpoints/tsconfig.json index e915df9529b6b..5c7965b2d8b89 100644 --- a/x-pack/plugins/search_inference_endpoints/tsconfig.json +++ b/x-pack/plugins/search_inference_endpoints/tsconfig.json @@ -29,7 +29,8 @@ "@kbn/doc-links", "@kbn/console-plugin", "@kbn/test-jest-helpers", - "@kbn/kibana-utils-plugin" + "@kbn/kibana-utils-plugin", + "@kbn/features-plugin" ], "exclude": [ "target/**/*", diff --git a/x-pack/plugins/search_playground/public/components/message_list/retrieval_docs_flyout.tsx b/x-pack/plugins/search_playground/public/components/message_list/retrieval_docs_flyout.tsx index 38ddc9cc4458a..25e57782b391f 100644 --- a/x-pack/plugins/search_playground/public/components/message_list/retrieval_docs_flyout.tsx +++ b/x-pack/plugins/search_playground/public/components/message_list/retrieval_docs_flyout.tsx @@ -74,7 +74,7 @@ export const RetrievalDocsFlyout: React.FC = ({ ), render: (value: unknown) => ( - {value} + {value as React.ReactNode} ), }, diff --git a/x-pack/plugins/security/public/nav_control/nav_control_component.test.tsx b/x-pack/plugins/security/public/nav_control/nav_control_component.test.tsx index 7c8e91b75f392..08799c1ef910e 100644 --- a/x-pack/plugins/security/public/nav_control/nav_control_component.test.tsx +++ b/x-pack/plugins/security/public/nav_control/nav_control_component.test.tsx @@ -186,7 +186,7 @@ describe('SecurityNavControl', () => { }); it('should render additional user menu links registered by other plugins and should render the default Edit Profile link as the first link when no custom profile link is provided', async () => { - const DummyComponent = () =>
    Dummy Component
    ; + const DummyComponent =
    Dummy Component
    ; const wrapper = shallow( { "name": "link3", }, Object { - "content": [Function], + "content":
    + Dummy Component +
    , "data-test-subj": "userMenuLink__dummyComponent", "href": "", "icon": & { content?: ReactNode }; interface ContextMenuProps { items: ContextMenuItem[]; diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/model/rule_schema/rule_schemas.gen.ts b/x-pack/plugins/security_solution/common/api/detection_engine/model/rule_schema/rule_schemas.gen.ts index c207f86639b73..2d3dbcd3f436f 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/model/rule_schema/rule_schemas.gen.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/model/rule_schema/rule_schemas.gen.ts @@ -597,7 +597,7 @@ export const EsqlRuleUpdateProps = SharedUpdateProps.merge(EsqlRuleCreateFields) export type EsqlRulePatchProps = z.infer; export const EsqlRulePatchProps = SharedPatchProps.merge(EsqlRulePatchFields.partial()); -const TypeSpecificCreatePropsInternal = z.discriminatedUnion('type', [ +export const TypeSpecificCreatePropsInternal = z.discriminatedUnion('type', [ EqlRuleCreateFields, QueryRuleCreateFields, SavedQueryRuleCreateFields, @@ -612,7 +612,7 @@ export type TypeSpecificCreateProps = z.infer; -const TypeSpecificPatchPropsInternal = z.union([ +export const TypeSpecificPatchPropsInternal = z.union([ EqlRulePatchFields, QueryRulePatchFields, SavedQueryRulePatchFields, @@ -627,7 +627,7 @@ export type TypeSpecificPatchProps = z.infer; -const TypeSpecificResponseInternal = z.discriminatedUnion('type', [ +export const TypeSpecificResponseInternal = z.discriminatedUnion('type', [ EqlRuleResponseFields, QueryRuleResponseFields, SavedQueryRuleResponseFields, @@ -641,7 +641,7 @@ const TypeSpecificResponseInternal = z.discriminatedUnion('type', [ export type TypeSpecificResponse = z.infer; export const TypeSpecificResponse = TypeSpecificResponseInternal as z.ZodType; -const RuleCreatePropsInternal = z.discriminatedUnion('type', [ +export const RuleCreatePropsInternal = z.discriminatedUnion('type', [ EqlRuleCreateProps, QueryRuleCreateProps, SavedQueryRuleCreateProps, @@ -655,7 +655,7 @@ const RuleCreatePropsInternal = z.discriminatedUnion('type', [ export type RuleCreateProps = z.infer; export const RuleCreateProps = RuleCreatePropsInternal as z.ZodType; -const RuleUpdatePropsInternal = z.discriminatedUnion('type', [ +export const RuleUpdatePropsInternal = z.discriminatedUnion('type', [ EqlRuleUpdateProps, QueryRuleUpdateProps, SavedQueryRuleUpdateProps, @@ -669,7 +669,7 @@ const RuleUpdatePropsInternal = z.discriminatedUnion('type', [ export type RuleUpdateProps = z.infer; export const RuleUpdateProps = RuleUpdatePropsInternal as z.ZodType; -const RulePatchPropsInternal = z.union([ +export const RulePatchPropsInternal = z.union([ EqlRulePatchProps, QueryRulePatchProps, SavedQueryRulePatchProps, @@ -683,7 +683,7 @@ const RulePatchPropsInternal = z.union([ export type RulePatchProps = z.infer; export const RulePatchProps = RulePatchPropsInternal as z.ZodType; -const RuleResponseInternal = z.discriminatedUnion('type', [ +export const RuleResponseInternal = z.discriminatedUnion('type', [ EqlRule, QueryRule, SavedQueryRule, diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/model/diff/diffable_rule/diffable_rule.test.ts b/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/model/diff/diffable_rule/diffable_rule.test.ts new file mode 100644 index 0000000000000..dd84d769606c2 --- /dev/null +++ b/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/model/diff/diffable_rule/diffable_rule.test.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { DiffableFieldsByTypeUnion, DiffableAllFields, DiffableRuleTypes } from './diffable_rule'; + +describe('Diffable rule schema', () => { + describe('DiffableAllFields', () => { + it('includes all possible rules types listed in the diffable rule schemas', () => { + const diffableAllFieldsRuleTypes = DiffableAllFields.shape.type.options.map((x) => x.value); + const diffableRuleTypes = DiffableRuleTypes.options.map((x) => x.value); + expect(diffableAllFieldsRuleTypes).toStrictEqual(diffableRuleTypes); + }); + }); + + describe('DiffableRule', () => { + it('includes all possible rules types listed in the diffable rule schemas', () => { + const diffableRuleTypes = DiffableFieldsByTypeUnion.options.map((x) => x.shape.type.value); + const ruleTypes = DiffableRuleTypes.options.map((x) => x.value); + expect(diffableRuleTypes).toStrictEqual(ruleTypes); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/model/diff/diffable_rule/diffable_rule.ts b/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/model/diff/diffable_rule/diffable_rule.ts index 0a85dddc89723..d0a4aa12533e0 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/model/diff/diffable_rule/diffable_rule.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/model/diff/diffable_rule/diffable_rule.ts @@ -6,12 +6,14 @@ */ import { z } from '@kbn/zod'; - import { + AlertSuppression, AnomalyThreshold, EventCategoryOverride, HistoryWindowStart, + InvestigationFields, InvestigationGuide, + KqlQueryLanguage, MachineLearningJobId, MaxSignals, NewTermsFields, @@ -37,6 +39,7 @@ import { ThreatIndicatorPath, ThreatMapping, Threshold, + ThresholdAlertSuppression, TiebreakerField, TimestampField, } from '../../../../model/rule_schema'; @@ -88,6 +91,7 @@ export const DiffableCommonFields = z.object({ max_signals: MaxSignals, // Optional fields + investigation_fields: InvestigationFields.optional(), rule_name_override: RuleNameOverrideObject.optional(), // NOTE: new field timestamp_override: TimestampOverrideObject.optional(), // NOTE: new field timeline_template: TimelineTemplateReference.optional(), // NOTE: new field @@ -99,6 +103,7 @@ export const DiffableCustomQueryFields = z.object({ type: z.literal('query'), kql_query: RuleKqlQuery, // NOTE: new field data_source: RuleDataSource.optional(), // NOTE: new field + alert_suppression: AlertSuppression.optional(), }); export type DiffableSavedQueryFields = z.infer; @@ -106,6 +111,7 @@ export const DiffableSavedQueryFields = z.object({ type: z.literal('saved_query'), kql_query: RuleKqlQuery, // NOTE: new field data_source: RuleDataSource.optional(), // NOTE: new field + alert_suppression: AlertSuppression.optional(), }); export type DiffableEqlFields = z.infer; @@ -116,6 +122,7 @@ export const DiffableEqlFields = z.object({ event_category_override: EventCategoryOverride.optional(), timestamp_field: TimestampField.optional(), tiebreaker_field: TiebreakerField.optional(), + alert_suppression: AlertSuppression.optional(), }); // this is a new type of rule, no prebuilt rules created yet. @@ -124,6 +131,7 @@ export type DiffableEsqlFields = z.infer; export const DiffableEsqlFields = z.object({ type: z.literal('esql'), esql_query: RuleEsqlQuery, // NOTE: new field + alert_suppression: AlertSuppression.optional(), }); export type DiffableThreatMatchFields = z.infer; @@ -135,6 +143,8 @@ export const DiffableThreatMatchFields = z.object({ threat_mapping: ThreatMapping, data_source: RuleDataSource.optional(), // NOTE: new field threat_indicator_path: ThreatIndicatorPath.optional(), + threat_language: KqlQueryLanguage.optional(), + alert_suppression: AlertSuppression.optional(), }); export type DiffableThresholdFields = z.infer; @@ -143,6 +153,7 @@ export const DiffableThresholdFields = z.object({ kql_query: RuleKqlQuery, // NOTE: new field threshold: Threshold, data_source: RuleDataSource.optional(), // NOTE: new field + alert_suppression: ThresholdAlertSuppression.optional(), }); export type DiffableMachineLearningFields = z.infer; @@ -150,6 +161,7 @@ export const DiffableMachineLearningFields = z.object({ type: z.literal('machine_learning'), machine_learning_job_id: MachineLearningJobId, anomaly_threshold: AnomalyThreshold, + alert_suppression: AlertSuppression.optional(), }); export type DiffableNewTermsFields = z.infer; @@ -159,6 +171,7 @@ export const DiffableNewTermsFields = z.object({ new_terms_fields: NewTermsFields, history_window_start: HistoryWindowStart, data_source: RuleDataSource.optional(), // NOTE: new field + alert_suppression: AlertSuppression.optional(), }); /** @@ -188,36 +201,48 @@ export const DiffableNewTermsFields = z.object({ * top-level fields. */ +export const DiffableFieldsByTypeUnion = z.discriminatedUnion('type', [ + DiffableCustomQueryFields, + DiffableSavedQueryFields, + DiffableEqlFields, + DiffableEsqlFields, + DiffableThreatMatchFields, + DiffableThresholdFields, + DiffableMachineLearningFields, + DiffableNewTermsFields, +]); + export type DiffableRule = z.infer; -const DiffableRule = z.intersection( - DiffableCommonFields, - z.discriminatedUnion('type', [ - DiffableCustomQueryFields, - DiffableSavedQueryFields, - DiffableEqlFields, - DiffableEsqlFields, - DiffableThreatMatchFields, - DiffableThresholdFields, - DiffableMachineLearningFields, - DiffableNewTermsFields, - ]) -); +export const DiffableRule = z.intersection(DiffableCommonFields, DiffableFieldsByTypeUnion); + +/** + * Union of all possible rule types + */ +export type DiffableRuleTypes = z.infer; +export const DiffableRuleTypes = z.union([ + DiffableCustomQueryFields.shape.type, + DiffableSavedQueryFields.shape.type, + DiffableEqlFields.shape.type, + DiffableEsqlFields.shape.type, + DiffableThreatMatchFields.shape.type, + DiffableThresholdFields.shape.type, + DiffableMachineLearningFields.shape.type, + DiffableNewTermsFields.shape.type, +]); /** * This is a merge of all fields from all rule types into a single TS type. * This is NOT a union discriminated by rule type, as DiffableRule is. */ -export type DiffableAllFields = DiffableCommonFields & - Omit & - Omit & - Omit & - Omit & - Omit & - Omit & - Omit & - Omit & - DiffableRuleTypeField; - -interface DiffableRuleTypeField { - type: DiffableRule['type']; -} +export type DiffableAllFields = z.infer; +export const DiffableAllFields = DiffableCommonFields.merge( + DiffableCustomQueryFields.omit({ type: true }) +) + .merge(DiffableSavedQueryFields.omit({ type: true })) + .merge(DiffableEqlFields.omit({ type: true })) + .merge(DiffableEsqlFields.omit({ type: true })) + .merge(DiffableThreatMatchFields.omit({ type: true })) + .merge(DiffableThresholdFields.omit({ type: true })) + .merge(DiffableMachineLearningFields.omit({ type: true })) + .merge(DiffableNewTermsFields.omit({ type: true })) + .merge(z.object({ type: DiffableRuleTypes })); diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/perform_rule_upgrade/perform_rule_upgrade_route.test.ts b/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/perform_rule_upgrade/perform_rule_upgrade_route.test.ts index b58a254f9dc49..7f7a64006adbf 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/perform_rule_upgrade/perform_rule_upgrade_route.test.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/perform_rule_upgrade/perform_rule_upgrade_route.test.ts @@ -4,15 +4,16 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ - import { expectParseError, expectParseSuccess, stringifyZodError } from '@kbn/zod-helpers'; import { - PickVersionValues, RuleUpgradeSpecifier, UpgradeSpecificRulesRequest, UpgradeAllRulesRequest, PerformRuleUpgradeResponseBody, PerformRuleUpgradeRequestBody, + RuleFieldsToUpgrade, + DiffableUpgradableFields, + PickVersionValues, } from './perform_rule_upgrade_route'; describe('Perform Rule Upgrade Route Schemas', () => { @@ -38,6 +39,130 @@ describe('Perform Rule Upgrade Route Schemas', () => { }); }); + describe('RuleFieldsToUpgrade', () => { + it('contains only upgradable fields defined in the diffable rule schemas', () => { + expect(Object.keys(RuleFieldsToUpgrade.shape)).toStrictEqual( + Object.keys(DiffableUpgradableFields.shape) + ); + }); + + describe('correctly validates valid and invalid inputs', () => { + it('validates 5 valid cases: BASE, CURRENT, TARGET, MERGED, RESOLVED', () => { + const validInputs = [ + { + name: { + pick_version: 'BASE', + }, + }, + { + description: { + pick_version: 'CURRENT', + }, + }, + { + risk_score: { + pick_version: 'TARGET', + }, + }, + { + note: { + pick_version: 'MERGED', + }, + }, + { + references: { + pick_version: 'RESOLVED', + resolved_value: ['www.example.com'], + }, + }, + ]; + + validInputs.forEach((input) => { + const result = RuleFieldsToUpgrade.safeParse(input); + expectParseSuccess(result); + expect(result.data).toEqual(input); + }); + }); + + it('does not validate invalid combination of pick_version and resolved_value', () => { + const input = { + references: { + pick_version: 'MERGED', + resolved_value: ['www.example.com'], + }, + }; + const result = RuleFieldsToUpgrade.safeParse(input); + expectParseError(result); + expect(stringifyZodError(result.error)).toMatchInlineSnapshot( + `"references: Unrecognized key(s) in object: 'resolved_value'"` + ); + }); + + it('invalidates incorrect types of resolved_values provided to multiple fields', () => { + const input = { + references: { + pick_version: 'RESOLVED', + resolved_value: 'www.example.com', + }, + tags: { + pick_version: 'RESOLVED', + resolved_value: 4, + }, + }; + const result = RuleFieldsToUpgrade.safeParse(input); + expectParseError(result); + expect(stringifyZodError(result.error)).toMatchInlineSnapshot( + `"tags.resolved_value: Expected array, received number, references.resolved_value: Expected array, received string"` + ); + }); + + it('invalidates unknown fields', () => { + const input = { + unknown_field: { + pick_version: 'CURRENT', + }, + }; + const result = RuleFieldsToUpgrade.safeParse(input); + expectParseError(result); + expect(stringifyZodError(result.error)).toMatchInlineSnapshot( + `"Unrecognized key(s) in object: 'unknown_field'"` + ); + }); + + it('invalidates rule fields not part of RuleFieldsToUpgrade', () => { + const input = { + type: { + pick_version: 'BASE', + }, + rule_id: { + pick_version: 'CURRENT', + }, + version: { + pick_version: 'TARGET', + }, + author: { + pick_version: 'MERGED', + }, + license: { + pick_version: 'RESOLVED', + resolved_value: 'Elastic License', + }, + concurrent_searches: { + pick_version: 'TARGET', + }, + items_per_search: { + pick_version: 'TARGET', + }, + }; + const result = RuleFieldsToUpgrade.safeParse(input); + expectParseError(result); + expect(stringifyZodError(result.error)).toMatchInlineSnapshot( + `"Unrecognized key(s) in object: 'type', 'rule_id', 'version', 'author', 'license', 'concurrent_searches', 'items_per_search'"` + ); + }); + }); + }); + describe('RuleUpgradeSpecifier', () => { const validSpecifier = { rule_id: 'rule-1', @@ -52,7 +177,7 @@ describe('Perform Rule Upgrade Route Schemas', () => { expect(result.data).toEqual(validSpecifier); }); - test('validates a valid upgrade specifier with a fields property', () => { + test('validates a valid upgrade specifier with a valid field property', () => { const specifierWithFields = { ...validSpecifier, fields: { @@ -66,6 +191,39 @@ describe('Perform Rule Upgrade Route Schemas', () => { expect(result.data).toEqual(specifierWithFields); }); + test('rejects an upgrade specifier with an invalid fields property', () => { + const specifierWithFields = { + ...validSpecifier, + fields: { + unknown_field: { + pick_version: 'CURRENT', + }, + }, + }; + const result = RuleUpgradeSpecifier.safeParse(specifierWithFields); + expectParseError(result); + expect(stringifyZodError(result.error)).toMatchInlineSnapshot( + `"fields: Unrecognized key(s) in object: 'unknown_field'"` + ); + }); + + test('rejects an upgrade specifier with a field property with an invalid type', () => { + const specifierWithFields = { + ...validSpecifier, + fields: { + name: { + pick_version: 'CURRENT', + resolved_value: 'My name', + }, + }, + }; + const result = RuleUpgradeSpecifier.safeParse(specifierWithFields); + expectParseError(result); + expect(stringifyZodError(result.error)).toMatchInlineSnapshot( + `"fields.name: Unrecognized key(s) in object: 'resolved_value'"` + ); + }); + test('rejects upgrade specifier with invalid pick_version rule_id', () => { const invalid = { ...validSpecifier, rule_id: 123 }; const result = RuleUpgradeSpecifier.safeParse(invalid); @@ -167,38 +325,38 @@ describe('Perform Rule Upgrade Route Schemas', () => { ); }); }); -}); -describe('PerformRuleUpgradeResponseBody', () => { - const validResponse = { - summary: { - total: 1, - succeeded: 1, - skipped: 0, - failed: 0, - }, - results: { - updated: [], - skipped: [], - }, - errors: [], - }; - - test('validates a correct perform rule upgrade response', () => { - const result = PerformRuleUpgradeResponseBody.safeParse(validResponse); - expectParseSuccess(result); - expect(result.data).toEqual(validResponse); - }); + describe('PerformRuleUpgradeResponseBody', () => { + const validResponse = { + summary: { + total: 1, + succeeded: 1, + skipped: 0, + failed: 0, + }, + results: { + updated: [], + skipped: [], + }, + errors: [], + }; - test('rejects missing required fields', () => { - const propsToDelete = Object.keys(validResponse); - propsToDelete.forEach((deletedProp) => { - const invalidResponse = Object.fromEntries( - Object.entries(validResponse).filter(([key]) => key !== deletedProp) - ); - const result = PerformRuleUpgradeResponseBody.safeParse(invalidResponse); - expectParseError(result); - expect(stringifyZodError(result.error)).toMatchInlineSnapshot(`"${deletedProp}: Required"`); + test('validates a correct perform rule upgrade response', () => { + const result = PerformRuleUpgradeResponseBody.safeParse(validResponse); + expectParseSuccess(result); + expect(result.data).toEqual(validResponse); + }); + + test('rejects missing required fields', () => { + const propsToDelete = Object.keys(validResponse); + propsToDelete.forEach((deletedProp) => { + const invalidResponse = Object.fromEntries( + Object.entries(validResponse).filter(([key]) => key !== deletedProp) + ); + const result = PerformRuleUpgradeResponseBody.safeParse(invalidResponse); + expectParseError(result); + expect(stringifyZodError(result.error)).toMatchInlineSnapshot(`"${deletedProp}: Required"`); + }); }); }); }); diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/perform_rule_upgrade/perform_rule_upgrade_route.ts b/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/perform_rule_upgrade/perform_rule_upgrade_route.ts index 0c290c9968caa..c7d3227ef03f3 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/perform_rule_upgrade/perform_rule_upgrade_route.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/prebuilt_rules/perform_rule_upgrade/perform_rule_upgrade_route.ts @@ -6,77 +6,61 @@ */ import { z } from '@kbn/zod'; - -import { - RuleSignatureId, - RuleVersion, - RuleName, - RuleTagArray, - RuleDescription, - Severity, - SeverityMapping, - RiskScore, - RiskScoreMapping, - RuleReferenceArray, - RuleFalsePositiveArray, - ThreatArray, - InvestigationGuide, - SetupGuide, - RelatedIntegrationArray, - RequiredFieldArray, - MaxSignals, - BuildingBlockType, - RuleIntervalFrom, - RuleInterval, - RuleExceptionList, - RuleNameOverride, - TimestampOverride, - TimestampOverrideFallbackDisabled, - TimelineTemplateId, - TimelineTemplateTitle, - IndexPatternArray, - DataViewId, - RuleQuery, - QueryLanguage, - RuleFilterArray, - SavedQueryId, - KqlQueryLanguage, -} from '../../model/rule_schema/common_attributes.gen'; -import { - MachineLearningJobId, - AnomalyThreshold, -} from '../../model/rule_schema/specific_attributes/ml_attributes.gen'; -import { - ThreatQuery, - ThreatMapping, - ThreatIndex, - ThreatFilters, - ThreatIndicatorPath, -} from '../../model/rule_schema/specific_attributes/threat_match_attributes.gen'; -import { - NewTermsFields, - HistoryWindowStart, -} from '../../model/rule_schema/specific_attributes/new_terms_attributes.gen'; +import { mapValues } from 'lodash'; import { RuleResponse } from '../../model/rule_schema/rule_schemas.gen'; -import { AggregatedPrebuiltRuleError } from '../model'; +import { AggregatedPrebuiltRuleError, DiffableAllFields } from '../model'; +import { RuleSignatureId, RuleVersion } from '../../model'; export type PickVersionValues = z.infer; export const PickVersionValues = z.enum(['BASE', 'CURRENT', 'TARGET', 'MERGED']); export type PickVersionValuesEnum = typeof PickVersionValues.enum; export const PickVersionValuesEnum = PickVersionValues.enum; -const createUpgradeFieldSchema = (fieldSchema: T) => - z - .discriminatedUnion('pick_version', [ - z.object({ +/** + * Fields upgradable by the /upgrade/_perform endpoint. + * Specific fields are omitted because they are not upgradeable, and + * handled under the hood by endpoint logic. + * See: https://github.com/elastic/kibana/issues/186544 + */ +export type DiffableUpgradableFields = z.infer; +export const DiffableUpgradableFields = DiffableAllFields.omit({ + type: true, + rule_id: true, + version: true, + author: true, + license: true, +}); + +export type FieldUpgradeSpecifier = z.infer< + ReturnType>> +>; +const fieldUpgradeSpecifier = (fieldSchema: T) => + z.discriminatedUnion('pick_version', [ + z + .object({ pick_version: PickVersionValues, - }), - z.object({ + }) + .strict(), + z + .object({ pick_version: z.literal('RESOLVED'), resolved_value: fieldSchema, - }), - ]) - .optional(); + }) + .strict(), + ]); + +type FieldUpgradeSpecifiers = { + [Field in keyof TFields]?: FieldUpgradeSpecifier; +}; + +export type RuleFieldsToUpgrade = FieldUpgradeSpecifiers; +export const RuleFieldsToUpgrade = z + .object( + mapValues(DiffableUpgradableFields.shape, (fieldSchema) => { + return fieldUpgradeSpecifier(fieldSchema).optional(); + }) + ) + .strict(); export type RuleUpgradeSpecifier = z.infer; export const RuleUpgradeSpecifier = z.object({ @@ -86,52 +70,7 @@ export const RuleUpgradeSpecifier = z.object({ pick_version: PickVersionValues.optional(), // Fields that can be customized during the upgrade workflow // as decided in: https://github.com/elastic/kibana/issues/186544 - fields: z - .object({ - name: createUpgradeFieldSchema(RuleName), - tags: createUpgradeFieldSchema(RuleTagArray), - description: createUpgradeFieldSchema(RuleDescription), - severity: createUpgradeFieldSchema(Severity), - severity_mapping: createUpgradeFieldSchema(SeverityMapping), - risk_score: createUpgradeFieldSchema(RiskScore), - risk_score_mapping: createUpgradeFieldSchema(RiskScoreMapping), - references: createUpgradeFieldSchema(RuleReferenceArray), - false_positives: createUpgradeFieldSchema(RuleFalsePositiveArray), - threat: createUpgradeFieldSchema(ThreatArray), - note: createUpgradeFieldSchema(InvestigationGuide), - setup: createUpgradeFieldSchema(SetupGuide), - related_integrations: createUpgradeFieldSchema(RelatedIntegrationArray), - required_fields: createUpgradeFieldSchema(RequiredFieldArray), - max_signals: createUpgradeFieldSchema(MaxSignals), - building_block_type: createUpgradeFieldSchema(BuildingBlockType), - from: createUpgradeFieldSchema(RuleIntervalFrom), - interval: createUpgradeFieldSchema(RuleInterval), - exceptions_list: createUpgradeFieldSchema(RuleExceptionList), - rule_name_override: createUpgradeFieldSchema(RuleNameOverride), - timestamp_override: createUpgradeFieldSchema(TimestampOverride), - timestamp_override_fallback_disabled: createUpgradeFieldSchema( - TimestampOverrideFallbackDisabled - ), - timeline_id: createUpgradeFieldSchema(TimelineTemplateId), - timeline_title: createUpgradeFieldSchema(TimelineTemplateTitle), - index: createUpgradeFieldSchema(IndexPatternArray), - data_view_id: createUpgradeFieldSchema(DataViewId), - query: createUpgradeFieldSchema(RuleQuery), - language: createUpgradeFieldSchema(QueryLanguage), - filters: createUpgradeFieldSchema(RuleFilterArray), - saved_id: createUpgradeFieldSchema(SavedQueryId), - machine_learning_job_id: createUpgradeFieldSchema(MachineLearningJobId), - anomaly_threshold: createUpgradeFieldSchema(AnomalyThreshold), - threat_query: createUpgradeFieldSchema(ThreatQuery), - threat_mapping: createUpgradeFieldSchema(ThreatMapping), - threat_index: createUpgradeFieldSchema(ThreatIndex), - threat_filters: createUpgradeFieldSchema(ThreatFilters), - threat_indicator_path: createUpgradeFieldSchema(ThreatIndicatorPath), - threat_language: createUpgradeFieldSchema(KqlQueryLanguage), - new_terms_fields: createUpgradeFieldSchema(NewTermsFields), - history_window_start: createUpgradeFieldSchema(HistoryWindowStart), - }) - .optional(), + fields: RuleFieldsToUpgrade.optional(), }); export type UpgradeSpecificRulesRequest = z.infer; diff --git a/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/bulk_actions/bulk_actions_route.gen.ts b/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/bulk_actions/bulk_actions_route.gen.ts index 52a52442df42f..0f5b191a0fcd9 100644 --- a/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/bulk_actions/bulk_actions_route.gen.ts +++ b/x-pack/plugins/security_solution/common/api/detection_engine/rule_management/bulk_actions/bulk_actions_route.gen.ts @@ -284,7 +284,7 @@ export const BulkActionEditPayloadTimeline = z.object({ }), }); -const BulkActionEditPayloadInternal = z.union([ +export const BulkActionEditPayloadInternal = z.union([ BulkActionEditPayloadTags, BulkActionEditPayloadIndexPatterns, BulkActionEditPayloadInvestigationFields, diff --git a/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/diff/convert_rule_to_diffable.ts b/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/diff/convert_rule_to_diffable.ts index f19d8b41be40b..45b4612e83c8e 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/diff/convert_rule_to_diffable.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/prebuilt_rules/diff/convert_rule_to_diffable.ts @@ -142,6 +142,7 @@ const extractDiffableCommonFields = ( max_signals: rule.max_signals ?? DEFAULT_MAX_SIGNALS, // --------------------- OPTIONAL FIELDS + investigation_fields: rule.investigation_fields, rule_name_override: extractRuleNameOverrideObject(rule), timestamp_override: extractTimestampOverrideObject(rule), timeline_template: extractTimelineTemplateReference(rule), @@ -156,6 +157,7 @@ const extractDiffableCustomQueryFields = ( type: rule.type, kql_query: extractRuleKqlQuery(rule.query, rule.language, rule.filters, rule.saved_id), data_source: extractRuleDataSource(rule.index, rule.data_view_id), + alert_suppression: rule.alert_suppression, }; }; @@ -166,6 +168,7 @@ const extractDiffableSavedQueryFieldsFromRuleObject = ( type: rule.type, kql_query: extractRuleKqlQuery(rule.query, rule.language, rule.filters, rule.saved_id), data_source: extractRuleDataSource(rule.index, rule.data_view_id), + alert_suppression: rule.alert_suppression, }; }; @@ -179,6 +182,7 @@ const extractDiffableEqlFieldsFromRuleObject = ( event_category_override: rule.event_category_override, timestamp_field: rule.timestamp_field, tiebreaker_field: rule.tiebreaker_field, + alert_suppression: rule.alert_suppression, }; }; @@ -188,6 +192,7 @@ const extractDiffableEsqlFieldsFromRuleObject = ( return { type: rule.type, esql_query: extractRuleEsqlQuery(rule.query, rule.language), + alert_suppression: rule.alert_suppression, }; }; @@ -206,6 +211,8 @@ const extractDiffableThreatMatchFieldsFromRuleObject = ( threat_index: rule.threat_index, threat_mapping: rule.threat_mapping, threat_indicator_path: rule.threat_indicator_path, + threat_language: rule.threat_language, + alert_suppression: rule.alert_suppression, }; }; @@ -217,6 +224,7 @@ const extractDiffableThresholdFieldsFromRuleObject = ( kql_query: extractRuleKqlQuery(rule.query, rule.language, rule.filters, rule.saved_id), data_source: extractRuleDataSource(rule.index, rule.data_view_id), threshold: rule.threshold, + alert_suppression: rule.alert_suppression, }; }; @@ -227,6 +235,7 @@ const extractDiffableMachineLearningFieldsFromRuleObject = ( type: rule.type, machine_learning_job_id: rule.machine_learning_job_id, anomaly_threshold: rule.anomaly_threshold, + alert_suppression: rule.alert_suppression, }; }; @@ -239,5 +248,6 @@ const extractDiffableNewTermsFieldsFromRuleObject = ( data_source: extractRuleDataSource(rule.index, rule.data_view_id), new_terms_fields: rule.new_terms_fields, history_window_start: rule.history_window_start, + alert_suppression: rule.alert_suppression, }; }; diff --git a/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules/installation_and_upgrade.md b/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules/installation_and_upgrade.md index beda8a9517830..e5479ec502865 100644 --- a/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules/installation_and_upgrade.md +++ b/x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules/installation_and_upgrade.md @@ -631,13 +631,9 @@ Given no prebuilt rules are installed in Kibana And there are X prebuilt rules of all types available to install When user opens the Add Rules page Then all X rules available for installation should be displayed in the table -When user opens the rule preview for the 1st rule -Then the preview should open -And all properties of the 1st rule should be displayed in the correct tab and section of the preview (see examples of rule properties above) -When user selects the 2nd rule in the table -Then the preview should be updated -And all properties of the 2nd rule should be displayed in the correct tab and section of the preview (see examples of rule properties above) -And user should be able to repeat this for all X rules +When user opens a rule preview for any rule +Then the preview should appear +And all properties of a rule should be displayed in the correct tab and section of the preview (see examples of rule properties above) ``` #### **Scenario: Tabs and sections without content should be hidden in preview before installing** @@ -783,15 +779,11 @@ And for all of the installed rules there are new versions available And user is on the Rule Management page When user opens the Rule Updates table Then all X rules available for upgrade should be displayed in the table -When user opens the rule preview for the 1st rule -Then the preview should open +When user opens a rule preview for any rule +Then the preview should appear And the "Updates" tab should be active When user selects the "Overview" tab -Then all properties of the new version of the 1st rule should be displayed in the correct tab and section of the preview (see examples of rule properties above) -When user selects the 2nd rule in the table -Then the preview should be updated -And all properties of the new version of the 2nd rule should be displayed in the correct tab and section of the preview (see examples of rule properties above) -And user should be able to repeat this for all X rules +Then all properties of the new version of a rule should be displayed in the correct tab and section of the preview (see examples of rule properties above) ``` #### **Scenario: Tabs and sections without content should be hidden in preview before upgrading** diff --git a/x-pack/plugins/security_solution/public/app/components/onboarding/onboarding_page_service.ts b/x-pack/plugins/security_solution/public/app/components/onboarding/onboarding_page_service.ts index ea5beab4608d2..16448b92d3a4f 100644 --- a/x-pack/plugins/security_solution/public/app/components/onboarding/onboarding_page_service.ts +++ b/x-pack/plugins/security_solution/public/app/components/onboarding/onboarding_page_service.ts @@ -13,22 +13,26 @@ import type { StepId } from '../../../common/components/landing_page/onboarding/ export class OnboardingPageService { private productTypesSubject$: BehaviorSubject; private projectsUrlSubject$: BehaviorSubject; + private usersUrlSubject$: BehaviorSubject; private projectFeaturesUrlSubject$: BehaviorSubject; private availableStepsSubject$: BehaviorSubject; public productTypes$: Observable; public projectsUrl$: Observable; + public usersUrl$: Observable; public projectFeaturesUrl$: Observable; public availableSteps$: Observable; constructor() { this.productTypesSubject$ = new BehaviorSubject(undefined); this.projectsUrlSubject$ = new BehaviorSubject(undefined); + this.usersUrlSubject$ = new BehaviorSubject(undefined); this.projectFeaturesUrlSubject$ = new BehaviorSubject(undefined); this.availableStepsSubject$ = new BehaviorSubject([]); this.productTypes$ = this.productTypesSubject$.asObservable(); this.projectsUrl$ = this.projectsUrlSubject$.asObservable(); + this.usersUrl$ = this.usersUrlSubject$.asObservable(); this.projectFeaturesUrl$ = this.projectFeaturesUrlSubject$.asObservable(); this.availableSteps$ = this.availableStepsSubject$.asObservable(); } @@ -39,6 +43,9 @@ export class OnboardingPageService { setProjectFeaturesUrl(projectFeaturesUrl: string | undefined) { this.projectFeaturesUrlSubject$.next(projectFeaturesUrl); } + setUsersUrl(userUrl: string | undefined) { + this.usersUrlSubject$.next(userUrl); + } setProjectsUrl(projectsUrl: string | undefined) { this.projectsUrlSubject$.next(projectsUrl); } diff --git a/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/ml_links.ts b/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/ml_links.ts index 76611868f4a3a..a87fc8e7d4f21 100644 --- a/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/ml_links.ts +++ b/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/ml_links.ts @@ -62,6 +62,7 @@ export const mlNavCategories: SolutionLinkCategory[] = [ ExternalPageName.mlAnomalyDetection, ExternalPageName.mlAnomalyExplorer, ExternalPageName.mlSingleMetricViewer, + ExternalPageName.mlSuppliedConfigurations, ExternalPageName.mlSettings, ], }, @@ -137,6 +138,12 @@ export const mlNavLinks: SolutionNavLink[] = [ landingIcon: IconVisualizationLazy, description: i18n.SINGLE_METRIC_VIEWER_DESC, }, + { + id: ExternalPageName.mlSuppliedConfigurations, + title: i18n.SUPPLIED_CONFIGURATIONS_TITLE, + landingIcon: IconJobsLazy, + description: i18n.SUPPLIED_CONFIGURATIONS_DESC, + }, { id: ExternalPageName.mlSettings, title: i18n.SETTINGS_TITLE, diff --git a/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/ml_translations.ts b/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/ml_translations.ts index 5563ff8b8b5b5..c8005b57298d6 100644 --- a/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/ml_translations.ts +++ b/x-pack/plugins/security_solution/public/app/solution_navigation/links/sections/ml_translations.ts @@ -111,6 +111,18 @@ export const SINGLE_METRIC_VIEWER_DESC = i18n.translate( defaultMessage: 'Single metric viewer page', } ); +export const SUPPLIED_CONFIGURATIONS_TITLE = i18n.translate( + 'xpack.securitySolution.navLinks.ml.suppliedConfigurations.title', + { + defaultMessage: 'Supplied configurations', + } +); +export const SUPPLIED_CONFIGURATIONS_DESC = i18n.translate( + 'xpack.securitySolution.navLinks.ml.suppliedConfigurations.desc', + { + defaultMessage: 'Supplied configurations page', + } +); export const SETTINGS_TITLE = i18n.translate('xpack.securitySolution.navLinks.ml.settings.title', { defaultMessage: 'Settings', }); diff --git a/x-pack/plugins/security_solution/public/assistant/content/prompts/system/index.tsx b/x-pack/plugins/security_solution/public/assistant/content/prompts/system/index.tsx deleted file mode 100644 index ee9d4018365c5..0000000000000 --- a/x-pack/plugins/security_solution/public/assistant/content/prompts/system/index.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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { - PromptTypeEnum, - type PromptResponse, -} from '@kbn/elastic-assistant-common/impl/schemas/prompts/bulk_crud_prompts_route.gen'; -import { APP_UI_ID } from '../../../../../common'; -import { - DEFAULT_SYSTEM_PROMPT_NAME, - DEFAULT_SYSTEM_PROMPT_NON_I18N, - SUPERHERO_SYSTEM_PROMPT_NAME, - SUPERHERO_SYSTEM_PROMPT_NON_I18N, -} from './translations'; - -/** - * Base System Prompts for Security Solution. - */ -export const BASE_SECURITY_SYSTEM_PROMPTS: PromptResponse[] = [ - { - id: 'default-system-prompt', - content: DEFAULT_SYSTEM_PROMPT_NON_I18N, - name: DEFAULT_SYSTEM_PROMPT_NAME, - promptType: PromptTypeEnum.system, - isDefault: true, - isNewConversationDefault: true, - consumer: APP_UI_ID, - }, - { - id: 'CB9FA555-B59F-4F71-AFF9-8A891AC5BC28', - content: SUPERHERO_SYSTEM_PROMPT_NON_I18N, - name: SUPERHERO_SYSTEM_PROMPT_NAME, - promptType: PromptTypeEnum.system, - consumer: APP_UI_ID, - isDefault: true, - }, -]; diff --git a/x-pack/plugins/security_solution/public/assistant/content/prompts/system/translations.ts b/x-pack/plugins/security_solution/public/assistant/content/prompts/system/translations.ts deleted file mode 100644 index b132a8e83770a..0000000000000 --- a/x-pack/plugins/security_solution/public/assistant/content/prompts/system/translations.ts +++ /dev/null @@ -1,60 +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; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; - -export const YOU_ARE_A_HELPFUL_EXPERT_ASSISTANT = i18n.translate( - 'xpack.securitySolution.assistant.content.prompts.system.youAreAHelpfulExpertAssistant', - { - defaultMessage: - 'You are a helpful, expert assistant who answers questions about Elastic Security.', - } -); - -export const IF_YOU_DONT_KNOW_THE_ANSWER = i18n.translate( - 'xpack.securitySolution.assistant.content.prompts.system.ifYouDontKnowTheAnswer', - { - defaultMessage: 'Do not answer questions unrelated to Elastic Security.', - } -); - -export const SUPERHERO_PERSONALITY = i18n.translate( - 'xpack.securitySolution.assistant.content.prompts.system.superheroPersonality', - { - defaultMessage: - 'Provide the most detailed and relevant answer possible, as if you were relaying this information back to a cyber security expert.', - } -); - -export const FORMAT_OUTPUT_CORRECTLY = i18n.translate( - 'xpack.securitySolution.assistant.content.prompts.system.outputFormatting', - { - defaultMessage: - 'If you answer a question related to KQL, EQL, or ES|QL, it should be immediately usable within an Elastic Security timeline; please always format the output correctly with back ticks. Any answer provided for Query DSL should also be usable in a security timeline. This means you should only ever include the "filter" portion of the query.', - } -); - -export const DEFAULT_SYSTEM_PROMPT_NON_I18N = `${YOU_ARE_A_HELPFUL_EXPERT_ASSISTANT} ${IF_YOU_DONT_KNOW_THE_ANSWER} -${FORMAT_OUTPUT_CORRECTLY}`; - -export const DEFAULT_SYSTEM_PROMPT_NAME = i18n.translate( - 'xpack.securitySolution.assistant.content.prompts.system.defaultSystemPromptName', - { - defaultMessage: 'Default system prompt', - } -); - -export const SUPERHERO_SYSTEM_PROMPT_NON_I18N = `${YOU_ARE_A_HELPFUL_EXPERT_ASSISTANT} ${IF_YOU_DONT_KNOW_THE_ANSWER} -${SUPERHERO_PERSONALITY} -${FORMAT_OUTPUT_CORRECTLY}`; - -export const SUPERHERO_SYSTEM_PROMPT_NAME = i18n.translate( - 'xpack.securitySolution.assistant.content.prompts.system.superheroSystemPromptName', - { - defaultMessage: 'Enhanced system prompt', - } -); diff --git a/x-pack/plugins/security_solution/public/assistant/get_comments/index.tsx b/x-pack/plugins/security_solution/public/assistant/get_comments/index.tsx index efbb56ebcf540..b3be6370e905d 100644 --- a/x-pack/plugins/security_solution/public/assistant/get_comments/index.tsx +++ b/x-pack/plugins/security_solution/public/assistant/get_comments/index.tsx @@ -5,8 +5,7 @@ * 2.0. */ -import type { EuiCommentProps } from '@elastic/eui'; -import type { Conversation, ClientMessage } from '@kbn/elastic-assistant'; +import type { ClientMessage, GetAssistantMessages } from '@kbn/elastic-assistant'; import { EuiAvatar, EuiLoadingSpinner } from '@elastic/eui'; import React from 'react'; @@ -14,7 +13,7 @@ import { AssistantAvatar } from '@kbn/elastic-assistant'; import type { Replacements } from '@kbn/elastic-assistant-common'; import { replaceAnonymizedValuesWithOriginalValues } from '@kbn/elastic-assistant-common'; import styled from '@emotion/styled'; -import type { UserAvatar } from '@kbn/elastic-assistant/impl/assistant_context'; +import type { EuiPanelProps } from '@elastic/eui/src/components/panel'; import { StreamComment } from './stream'; import { CommentActions } from '../comment_actions'; import * as i18n from './translations'; @@ -52,7 +51,7 @@ const transformMessageWithReplacements = ({ }; }; -export const getComments = ({ +export const getComments: GetAssistantMessages = ({ abortStream, currentConversation, isFetchingResponse, @@ -61,16 +60,8 @@ export const getComments = ({ showAnonymizedValues, currentUserAvatar, setIsStreaming, -}: { - abortStream: () => void; - currentConversation?: Conversation; - isFetchingResponse: boolean; - refetchCurrentConversation: ({ isStreamRefetch }: { isStreamRefetch?: boolean }) => void; - regenerateMessage: (conversationId: string) => void; - showAnonymizedValues: boolean; - currentUserAvatar?: UserAvatar; - setIsStreaming: (isStreaming: boolean) => void; -}): EuiCommentProps[] => { + systemPromptContent, +}) => { if (!currentConversation) return []; const regenerateMessageOfConversation = () => { @@ -122,6 +113,32 @@ export const getComments = ({ }; return [ + ...(systemPromptContent && currentConversation.messages.length + ? [ + { + username: i18n.SYSTEM, + timelineAvatar: ( + + ), + timestamp: + currentConversation.messages[0].timestamp.length === 0 + ? new Date().toLocaleString() + : new Date(currentConversation.messages[0].timestamp).toLocaleString(), + children: ( + ({ content: '' } as unknown as ContentMessage)} + // we never need to append to a code block in the system comment, which is what this index is used for + index={999} + /> + ), + }, + ] + : []), ...currentConversation.messages.map((message, index) => { const isLastComment = index === currentConversation.messages.length - 1; const isUser = message.role === 'user'; @@ -139,7 +156,7 @@ export const getComments = ({ : new Date(message.timestamp).toLocaleString() ), username: isUser ? i18n.YOU : i18n.ASSISTANT, - eventColor: message.isError ? 'danger' : undefined, + eventColor: message.isError ? ('danger' as EuiPanelProps['color']) : undefined, }; const isControlsEnabled = isLastComment && !isUser; diff --git a/x-pack/plugins/security_solution/public/assistant/get_comments/translations.ts b/x-pack/plugins/security_solution/public/assistant/get_comments/translations.ts index fbccef68f7398..62614dbfaf77d 100644 --- a/x-pack/plugins/security_solution/public/assistant/get_comments/translations.ts +++ b/x-pack/plugins/security_solution/public/assistant/get_comments/translations.ts @@ -7,6 +7,10 @@ import { i18n } from '@kbn/i18n'; +export const SYSTEM = i18n.translate('xpack.securitySolution.assistant.getComments.system', { + defaultMessage: 'System', +}); + export const ASSISTANT = i18n.translate('xpack.securitySolution.assistant.getComments.assistant', { defaultMessage: 'Assistant', }); diff --git a/x-pack/plugins/security_solution/public/assistant/provider.test.tsx b/x-pack/plugins/security_solution/public/assistant/provider.test.tsx index 0534df76aaf6e..a96623b8567a8 100644 --- a/x-pack/plugins/security_solution/public/assistant/provider.test.tsx +++ b/x-pack/plugins/security_solution/public/assistant/provider.test.tsx @@ -5,28 +5,14 @@ * 2.0. */ -import React from 'react'; import { act, renderHook } from '@testing-library/react-hooks'; import { httpServiceMock, type HttpSetupMock } from '@kbn/core-http-browser-mocks'; import type { Storage } from '@kbn/kibana-utils-plugin/public'; -import { AssistantProvider, createConversations } from './provider'; +import { createConversations } from './provider'; import { coreMock } from '@kbn/core/public/mocks'; -import { useKibana as mockUseKibana } from '../common/lib/kibana/__mocks__'; import { loadAllActions as loadConnectors } from '@kbn/triggers-actions-ui-plugin/public/common/constants'; -import { useKibana } from '../common/lib/kibana'; -import { render, waitFor } from '@testing-library/react'; -import { TestProviders } from '../common/mock'; -import { useAssistantAvailability } from './use_assistant_availability'; -import { - bulkUpdatePrompts, - getPrompts, - getUserConversations, -} from '@kbn/elastic-assistant/impl/assistant/api'; -import { BASE_SECURITY_SYSTEM_PROMPTS } from './content/prompts/system'; -const mockedUseKibana = mockUseKibana(); jest.mock('./use_assistant_availability'); -jest.mock('../common/lib/kibana'); jest.mock('@kbn/elastic-assistant/impl/assistant/api'); jest.mock('../common/hooks/use_license', () => ({ @@ -224,85 +210,3 @@ describe('createConversations', () => { }); }); }); -describe('AssistantProvider', () => { - beforeEach(() => { - jest.clearAllMocks(); - (useKibana as jest.Mock).mockReturnValue({ - ...mockedUseKibana, - services: { - ...mockedUseKibana.services, - }, - }); - jest.mocked(useAssistantAvailability).mockReturnValue({ - hasAssistantPrivilege: true, - hasConnectorsAllPrivilege: true, - hasConnectorsReadPrivilege: true, - hasUpdateAIAssistantAnonymization: true, - isAssistantEnabled: true, - }); - - (getUserConversations as jest.Mock).mockResolvedValue({ - page: 1, - perPage: 5, - total: 5, - data: [], - }); - (getPrompts as jest.Mock).mockResolvedValue({ - page: 1, - perPage: 5, - total: 0, - data: [], - }); - }); - it('should not render the assistant when no prompts have been returned', async () => { - const { queryByTestId } = render( - - - , - { - wrapper: TestProviders, - } - ); - expect(queryByTestId('ourAssistant')).toBeNull(); - }); - it('should render the assistant when prompts are returned', async () => { - (getPrompts as jest.Mock).mockResolvedValue({ - page: 1, - perPage: 5, - total: 2, - data: BASE_SECURITY_SYSTEM_PROMPTS, - }); - const { getByTestId } = render( - - - , - { - wrapper: TestProviders, - } - ); - await waitFor(() => { - expect(getByTestId('ourAssistant')).not.toBeNull(); - }); - }); - it('should render the assistant once prompts have been created', async () => { - (bulkUpdatePrompts as jest.Mock).mockResolvedValue({ - success: true, - attributes: { - results: { - created: BASE_SECURITY_SYSTEM_PROMPTS, - }, - }, - }); - const { getByTestId } = render( - - - , - { - wrapper: TestProviders, - } - ); - await waitFor(() => { - expect(getByTestId('ourAssistant')).not.toBeNull(); - }); - }); -}); diff --git a/x-pack/plugins/security_solution/public/assistant/provider.tsx b/x-pack/plugins/security_solution/public/assistant/provider.tsx index dbfbb026ab2d3..54d4e47edb684 100644 --- a/x-pack/plugins/security_solution/public/assistant/provider.tsx +++ b/x-pack/plugins/security_solution/public/assistant/provider.tsx @@ -5,7 +5,7 @@ * 2.0. */ import type { FC, PropsWithChildren } from 'react'; -import React, { useEffect, useState } from 'react'; +import React, { useEffect } from 'react'; import { parse } from '@kbn/datemath'; import type { Storage } from '@kbn/kibana-utils-plugin/public'; import { i18n } from '@kbn/i18n'; @@ -30,7 +30,6 @@ import { useAssistantTelemetry } from './use_assistant_telemetry'; import { getComments } from './get_comments'; import { LOCAL_STORAGE_KEY, augmentMessageCodeBlocks } from './helpers'; import { BASE_SECURITY_QUICK_PROMPTS } from './content/quick_prompts'; -import { BASE_SECURITY_SYSTEM_PROMPTS } from './content/prompts/system'; import { useBaseConversations } from './use_conversation_store'; import { PROMPT_CONTEXTS } from './content/prompt_contexts'; import { useAssistantAvailability } from './use_assistant_availability'; @@ -117,7 +116,7 @@ export const createConversations = async ( }; export const createBasePrompts = async (notifications: NotificationsStart, http: HttpSetup) => { - const promptsToCreate = [...BASE_SECURITY_QUICK_PROMPTS, ...BASE_SECURITY_SYSTEM_PROMPTS]; + const promptsToCreate = [...BASE_SECURITY_QUICK_PROMPTS]; // post bulk create const bulkResult = await bulkUpdatePrompts( @@ -176,8 +175,6 @@ export const AssistantProvider: FC> = ({ children }) storage, ]); - const [basePromptsLoaded, setBasePromptsLoaded] = useState(false); - useEffect(() => { const createSecurityPrompts = once(async () => { if ( @@ -197,8 +194,6 @@ export const AssistantProvider: FC> = ({ children }) // eslint-disable-next-line no-empty } catch (e) {} } - - setBasePromptsLoaded(true); }); createSecurityPrompts(); }, [ @@ -212,9 +207,6 @@ export const AssistantProvider: FC> = ({ children }) const { signalIndexName } = useSignalIndex(); const alertsIndexPattern = signalIndexName ?? undefined; const toasts = useAppToasts() as unknown as IToasts; // useAppToasts is the current, non-deprecated method of getting the toasts service in the Security Solution, but it doesn't return the IToasts interface (defined by core) - // Because our conversations need an assigned system prompt at create time, - // we want to make sure the prompts are there before creating the first conversation - // however if there is an error fetching the prompts, we don't want to block the app return ( > = ({ children }) toasts={toasts} currentAppId={currentAppId ?? 'securitySolutionUI'} > - {basePromptsLoaded ? children : null} + {children} ); }; diff --git a/x-pack/plugins/security_solution/public/attack_discovery/attack_discovery_panel/view_in_ai_assistant/use_view_in_ai_assistant.test.ts b/x-pack/plugins/security_solution/public/attack_discovery/attack_discovery_panel/view_in_ai_assistant/use_view_in_ai_assistant.test.ts index cc7058c8f3fe6..372bce5dcbf2c 100644 --- a/x-pack/plugins/security_solution/public/attack_discovery/attack_discovery_panel/view_in_ai_assistant/use_view_in_ai_assistant.test.ts +++ b/x-pack/plugins/security_solution/public/attack_discovery/attack_discovery_panel/view_in_ai_assistant/use_view_in_ai_assistant.test.ts @@ -16,12 +16,12 @@ import { useViewInAiAssistant } from './use_view_in_ai_assistant'; jest.mock('@kbn/elastic-assistant'); jest.mock('../../../assistant/use_assistant_availability'); jest.mock('../../get_attack_discovery_markdown/get_attack_discovery_markdown'); - +const mockUseAssistantOverlay = useAssistantOverlay as jest.Mock; describe('useViewInAiAssistant', () => { beforeEach(() => { jest.clearAllMocks(); - (useAssistantOverlay as jest.Mock).mockReturnValue({ + mockUseAssistantOverlay.mockReturnValue({ promptContextId: 'prompt-context-id', showAssistantOverlay: jest.fn(), }); @@ -83,4 +83,16 @@ describe('useViewInAiAssistant', () => { expect(result.current.disabled).toBe(true); }); + + it('uses the title + last 5 of the attack discovery id as the conversation title', () => { + renderHook(() => + useViewInAiAssistant({ + attackDiscovery: mockAttackDiscovery, + }) + ); + + expect(mockUseAssistantOverlay.mock.calls[0][1]).toEqual( + 'Malware Attack With Credential Theft Attempt - b72b1' + ); + }); }); diff --git a/x-pack/plugins/security_solution/public/attack_discovery/attack_discovery_panel/view_in_ai_assistant/use_view_in_ai_assistant.ts b/x-pack/plugins/security_solution/public/attack_discovery/attack_discovery_panel/view_in_ai_assistant/use_view_in_ai_assistant.ts index 8016e1b45b408..33cc2d74423a1 100644 --- a/x-pack/plugins/security_solution/public/attack_discovery/attack_discovery_panel/view_in_ai_assistant/use_view_in_ai_assistant.ts +++ b/x-pack/plugins/security_solution/public/attack_discovery/attack_discovery_panel/view_in_ai_assistant/use_view_in_ai_assistant.ts @@ -33,9 +33,11 @@ export const useViewInAiAssistant = ({ }), [attackDiscovery] ); + + const lastFive = attackDiscovery.id ? ` - ${attackDiscovery.id.slice(-5)}` : ''; const { promptContextId, showAssistantOverlay: showOverlay } = useAssistantOverlay( category, - attackDiscovery.title, // conversation title + attackDiscovery.title + lastFive, // conversation title attackDiscovery.title, // description used in context pill getPromptContext, attackDiscovery.id ?? null, // accept the UUID default for this prompt context diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/insights_tab_csp.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/insights_tab_csp.tsx new file mode 100644 index 0000000000000..fa91a99c858a8 --- /dev/null +++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/insights_tab_csp.tsx @@ -0,0 +1,65 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { memo } from 'react'; +import { EuiButtonGroup, EuiSpacer } from '@elastic/eui'; +import type { EuiButtonGroupOptionProps } from '@elastic/eui/src/components/button/button_group/button_group'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { useExpandableFlyoutState } from '@kbn/expandable-flyout'; +import { MisconfigurationFindingsDetailsTable } from './misconfiguration_findings_details_table'; + +enum InsightsTabCspTab { + MISCONFIGURATION = 'misconfigurationTabId', +} + +const insightsButtons: EuiButtonGroupOptionProps[] = [ + { + id: InsightsTabCspTab.MISCONFIGURATION, + label: ( + + ), + 'data-test-subj': 'misconfigurationTabDataTestId', + }, +]; + +/** + * Insights view displayed in the document details expandable flyout left section + */ +export const InsightsTabCsp = memo( + ({ name, fieldName }: { name: string; fieldName: 'host.name' | 'user.name' }) => { + const panels = useExpandableFlyoutState(); + const activeInsightsId = panels.left?.path?.subTab ?? 'misconfigurationTabId'; + + return ( + <> + {}} + buttonSize="compressed" + isFullWidth + data-test-subj={'insightButtonGroupsTestId'} + /> + + + + ); + } +); + +InsightsTabCsp.displayName = 'InsightsTab'; diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/misconfiguration_findings_details_table.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/misconfiguration_findings_details_table.tsx new file mode 100644 index 0000000000000..1362e0e42e6ba --- /dev/null +++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/csp_details/misconfiguration_findings_details_table.tsx @@ -0,0 +1,184 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { memo, useState } from 'react'; +import type { Criteria, EuiBasicTableColumn } from '@elastic/eui'; +import { EuiSpacer, EuiIcon, EuiPanel, EuiLink, EuiText, EuiBasicTable } from '@elastic/eui'; +import { useMisconfigurationFindings } from '@kbn/cloud-security-posture/src/hooks/use_misconfiguration_findings'; +import { i18n } from '@kbn/i18n'; +import type { CspFinding, CspFindingResult } from '@kbn/cloud-security-posture-common'; +import { buildEntityFlyoutPreviewQuery } from '@kbn/cloud-security-posture-common'; +import { euiThemeVars } from '@kbn/ui-theme'; +import { DistributionBar } from '@kbn/security-solution-distribution-bar'; +import { useNavigateFindings } from '@kbn/cloud-security-posture/src/hooks/use_navigate_findings'; +import type { CspBenchmarkRuleMetadata } from '@kbn/cloud-security-posture-common/schema/rules/latest'; +import { CspEvaluationBadge } from '@kbn/cloud-security-posture'; + +type MisconfigurationFindingDetailFields = Pick; + +const getFindingsStats = (passedFindingsStats: number, failedFindingsStats: number) => { + if (passedFindingsStats === 0 && failedFindingsStats === 0) return []; + return [ + { + key: i18n.translate( + 'xpack.securitySolution.flyout.right.insights.misconfigurations.passedFindingsText', + { + defaultMessage: 'Passed findings', + } + ), + count: passedFindingsStats, + color: euiThemeVars.euiColorSuccess, + }, + { + key: i18n.translate( + 'xpack.securitySolution.flyout.right.insights.misconfigurations.failedFindingsText', + { + defaultMessage: 'Failed findings', + } + ), + count: failedFindingsStats, + color: euiThemeVars.euiColorVis9, + }, + ]; +}; + +/** + * Insights view displayed in the document details expandable flyout left section + */ +export const MisconfigurationFindingsDetailsTable = memo( + ({ fieldName, queryName }: { fieldName: 'host.name' | 'user.name'; queryName: string }) => { + const { data } = useMisconfigurationFindings({ + query: buildEntityFlyoutPreviewQuery(fieldName, queryName), + sort: [], + enabled: true, + pageSize: 1, + }); + + const passedFindings = data?.count.passed || 0; + const failedFindings = data?.count.failed || 0; + + const [pageIndex, setPageIndex] = useState(0); + const [pageSize, setPageSize] = useState(10); + + const findingsPagination = (findings: MisconfigurationFindingDetailFields[]) => { + let pageOfItems; + + if (!pageIndex && !pageSize) { + pageOfItems = findings; + } else { + const startIndex = pageIndex * pageSize; + pageOfItems = findings?.slice( + startIndex, + Math.min(startIndex + pageSize, findings?.length) + ); + } + + return { + pageOfItems, + totalItemCount: findings?.length, + }; + }; + + const { pageOfItems, totalItemCount } = findingsPagination(data?.rows || []); + + const pagination = { + pageIndex, + pageSize, + totalItemCount, + pageSizeOptions: [10, 25, 100], + }; + + const onTableChange = ({ page }: Criteria) => { + if (page) { + const { index, size } = page; + setPageIndex(index); + setPageSize(size); + } + }; + + const navToFindings = useNavigateFindings(); + + const navToFindingsByHostName = (hostName: string) => { + navToFindings({ 'host.name': hostName }, ['rule.name']); + }; + + const navToFindingsByRuleAndResourceId = (ruleId: string, resourceId: string) => { + navToFindings({ 'rule.id': ruleId, 'resource.id': resourceId }); + }; + + const columns: Array> = [ + { + field: 'rule', + name: '', + width: '5%', + render: (rule: CspBenchmarkRuleMetadata, finding: MisconfigurationFindingDetailFields) => ( + { + navToFindingsByRuleAndResourceId(rule?.id, finding?.resource?.id); + }} + > + + + ), + }, + { + field: 'result', + render: (result: CspFindingResult) => , + name: i18n.translate( + 'xpack.securitySolution.flyout.left.insights.misconfigurations.table.resultColumnName', + { + defaultMessage: 'Result', + } + ), + width: '10%', + }, + { + field: 'rule', + render: (rule: CspBenchmarkRuleMetadata) => {rule?.name}, + name: i18n.translate( + 'xpack.securitySolution.flyout.left.insights.misconfigurations.table.ruleColumnName', + { + defaultMessage: 'Rule', + } + ), + width: '90%', + }, + ]; + + return ( + <> + + { + navToFindingsByHostName(queryName); + }} + > + {i18n.translate( + 'xpack.securitySolution.flyout.left.insights.misconfigurations.tableTitle', + { + defaultMessage: 'Misconfigurations', + } + )} + + + + + + + + + ); + } +); + +MisconfigurationFindingsDetailsTable.displayName = 'MisconfigurationFindingsDetailsTable'; diff --git a/x-pack/plugins/security_solution/public/cloud_security_posture/components/misconfiguration/misconfiguration_preview.tsx b/x-pack/plugins/security_solution/public/cloud_security_posture/components/misconfiguration/misconfiguration_preview.tsx index 3ae2acadcf8e4..f6ba0389f752a 100644 --- a/x-pack/plugins/security_solution/public/cloud_security_posture/components/misconfiguration/misconfiguration_preview.tsx +++ b/x-pack/plugins/security_solution/public/cloud_security_posture/components/misconfiguration/misconfiguration_preview.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React from 'react'; +import React, { useCallback, useMemo } from 'react'; import { css } from '@emotion/react'; import type { EuiThemeComputed } from '@elastic/eui'; import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiText, useEuiTheme, EuiTitle } from '@elastic/eui'; @@ -16,6 +16,16 @@ import { euiThemeVars } from '@kbn/ui-theme'; import { i18n } from '@kbn/i18n'; import { ExpandablePanel } from '@kbn/security-solution-common'; import { buildEntityFlyoutPreviewQuery } from '@kbn/cloud-security-posture-common'; +import { useExpandableFlyoutApi } from '@kbn/expandable-flyout'; +import { HostDetailsPanelKey } from '../../../flyout/entity_details/host_details_left'; +import { useRiskScore } from '../../../entity_analytics/api/hooks/use_risk_score'; +import { RiskScoreEntity } from '../../../../common/entity_analytics/risk_engine'; +import { buildHostNamesFilter } from '../../../../common/search_strategy'; + +const FIRST_RECORD_PAGINATION = { + cursorStart: 0, + querySize: 1, +}; const getFindingsStats = (passedFindingsStats: number, failedFindingsStats: number) => { if (passedFindingsStats === 0 && failedFindingsStats === 0) return []; @@ -75,10 +85,14 @@ const MisconfigurationPreviewScore = ({ passedFindings, failedFindings, euiTheme, + numberOfPassedFindings, + numberOfFailedFindings, }: { passedFindings: number; failedFindings: number; euiTheme: EuiThemeComputed<{}>; + numberOfPassedFindings?: number; + numberOfFailedFindings?: number; }) => { return ( @@ -119,9 +133,52 @@ export const MisconfigurationsPreview = ({ hostName }: { hostName: string }) => const { euiTheme } = useEuiTheme(); const hasMisconfigurationFindings = passedFindings > 0 || failedFindings > 0; + const hostNameFilterQuery = useMemo( + () => (hostName ? buildHostNamesFilter([hostName]) : undefined), + [hostName] + ); + + const riskScoreState = useRiskScore({ + riskEntity: RiskScoreEntity.host, + filterQuery: hostNameFilterQuery, + onlyLatest: false, + pagination: FIRST_RECORD_PAGINATION, + }); + const { data: hostRisk } = riskScoreState; + const hostRiskData = hostRisk && hostRisk.length > 0 ? hostRisk[0] : undefined; + const isRiskScoreExist = !!hostRiskData?.host.risk; + const { openLeftPanel } = useExpandableFlyoutApi(); + const isPreviewMode = false; + const goToEntityInsightTab = useCallback(() => { + openLeftPanel({ + id: HostDetailsPanelKey, + params: { + name: hostName, + isRiskScoreExist, + hasMisconfigurationFindings, + path: { tab: 'csp_insights' }, + }, + }); + }, [hasMisconfigurationFindings, hostName, isRiskScoreExist, openLeftPanel]); + const link = useMemo( + () => + !isPreviewMode + ? { + callback: goToEntityInsightTab, + tooltip: ( + + ), + } + : undefined, + [isPreviewMode, goToEntityInsightTab] + ); return ( /> ), + link: hasMisconfigurationFindings ? link : undefined, }} data-test-subj={'securitySolutionFlyoutInsightsMisconfigurations'} > diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap index 4ca53999b7459..2a344f8cec05b 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap @@ -1,734 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`ImportDataModal renders correctly against snapshot 1`] = ` -Object { - "asFragment": [Function], - "baseElement": -
    -
    -
    -