diff --git a/.buildkite/pipelines/on_merge.yml b/.buildkite/pipelines/on_merge.yml index 27b48e0d18d4b..2841dce49bb26 100644 --- a/.buildkite/pipelines/on_merge.yml +++ b/.buildkite/pipelines/on_merge.yml @@ -337,6 +337,16 @@ steps: - exit_status: '-1' limit: 3 + - command: .buildkite/scripts/steps/quick_checks.sh + label: 'Quick Checks' + agents: + queue: n2-2-spot + timeout_in_minutes: 60 + retry: + automatic: + - exit_status: '-1' + limit: 3 + - command: .buildkite/scripts/steps/checks.sh label: 'Checks' agents: diff --git a/.buildkite/pipelines/pull_request/base.yml b/.buildkite/pipelines/pull_request/base.yml index 334bb31ba30ed..718a7b2a32031 100644 --- a/.buildkite/pipelines/pull_request/base.yml +++ b/.buildkite/pipelines/pull_request/base.yml @@ -19,8 +19,8 @@ steps: - exit_status: '-1' limit: 3 - - command: .buildkite/scripts/steps/checks.sh - label: 'Checks' + - command: .buildkite/scripts/steps/quick_checks.sh + label: 'Quick Checks' agents: queue: n2-2-spot timeout_in_minutes: 60 @@ -31,17 +31,6 @@ steps: - wait - - command: .buildkite/scripts/steps/build_api_docs.sh - label: 'Check Types and Build API Docs' - agents: - queue: n2-4-spot - key: build_api_docs - timeout_in_minutes: 60 - retry: - automatic: - - exit_status: '-1' - limit: 3 - - command: .buildkite/scripts/steps/ci_stats_ready.sh label: Mark CI Stats as ready agents: @@ -90,3 +79,24 @@ steps: automatic: - exit_status: '-1' limit: 3 + + - command: .buildkite/scripts/steps/checks.sh + label: 'Checks' + agents: + queue: n2-2-spot + timeout_in_minutes: 60 + retry: + automatic: + - exit_status: '-1' + limit: 3 + + - command: .buildkite/scripts/steps/build_api_docs.sh + label: 'Check Types and Build API Docs' + agents: + queue: n2-4-spot + key: build_api_docs + timeout_in_minutes: 60 + retry: + automatic: + - exit_status: '-1' + limit: 3 diff --git a/.buildkite/scripts/steps/checks.sh b/.buildkite/scripts/steps/checks.sh index 42a0eb9ee61c6..51f318179bbaf 100755 --- a/.buildkite/scripts/steps/checks.sh +++ b/.buildkite/scripts/steps/checks.sh @@ -5,25 +5,8 @@ set -euo pipefail export DISABLE_BOOTSTRAP_VALIDATION=false .buildkite/scripts/bootstrap.sh -.buildkite/scripts/steps/checks/precommit_hook.sh -.buildkite/scripts/steps/checks/ts_projects.sh -.buildkite/scripts/steps/checks/packages.sh -.buildkite/scripts/steps/checks/bazel_packages.sh -.buildkite/scripts/steps/checks/verify_notice.sh -.buildkite/scripts/steps/checks/plugin_list_docs.sh -.buildkite/scripts/steps/checks/event_log.sh -.buildkite/scripts/steps/checks/telemetry.sh -.buildkite/scripts/steps/checks/jest_configs.sh -.buildkite/scripts/steps/checks/bundle_limits.sh -.buildkite/scripts/steps/checks/i18n.sh -.buildkite/scripts/steps/checks/file_casing.sh -.buildkite/scripts/steps/checks/licenses.sh -.buildkite/scripts/steps/checks/test_projects.sh -.buildkite/scripts/steps/checks/test_hardening.sh -.buildkite/scripts/steps/checks/ftr_configs.sh .buildkite/scripts/steps/checks/saved_objects_compat_changes.sh .buildkite/scripts/steps/checks/saved_objects_definition_change.sh .buildkite/scripts/steps/code_generation/elastic_assistant_codegen.sh .buildkite/scripts/steps/code_generation/security_solution_codegen.sh .buildkite/scripts/steps/code_generation/osquery_codegen.sh -.buildkite/scripts/steps/checks/yarn_deduplicate.sh diff --git a/.buildkite/scripts/steps/quick_checks.sh b/.buildkite/scripts/steps/quick_checks.sh new file mode 100755 index 0000000000000..d96657ea70157 --- /dev/null +++ b/.buildkite/scripts/steps/quick_checks.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -euo pipefail + +export DISABLE_BOOTSTRAP_VALIDATION=false +.buildkite/scripts/bootstrap.sh + +.buildkite/scripts/steps/checks/precommit_hook.sh +.buildkite/scripts/steps/checks/ts_projects.sh +.buildkite/scripts/steps/checks/packages.sh +.buildkite/scripts/steps/checks/bazel_packages.sh +.buildkite/scripts/steps/checks/verify_notice.sh +.buildkite/scripts/steps/checks/plugin_list_docs.sh +.buildkite/scripts/steps/checks/event_log.sh +.buildkite/scripts/steps/checks/telemetry.sh +.buildkite/scripts/steps/checks/jest_configs.sh +.buildkite/scripts/steps/checks/bundle_limits.sh +.buildkite/scripts/steps/checks/i18n.sh +.buildkite/scripts/steps/checks/file_casing.sh +.buildkite/scripts/steps/checks/licenses.sh +.buildkite/scripts/steps/checks/test_projects.sh +.buildkite/scripts/steps/checks/test_hardening.sh +.buildkite/scripts/steps/checks/ftr_configs.sh +.buildkite/scripts/steps/checks/yarn_deduplicate.sh diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index cb691107440e1..d35db895f47f2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -315,6 +315,7 @@ src/plugins/custom_integrations @elastic/fleet packages/kbn-cypress-config @elastic/kibana-operations x-pack/plugins/dashboard_enhanced @elastic/kibana-presentation src/plugins/dashboard @elastic/kibana-presentation +x-pack/packages/kbn-data-forge @elastic/obs-ux-management-team src/plugins/data @elastic/kibana-visualizations @elastic/kibana-data-discovery test/plugin_functional/plugins/data_search @elastic/kibana-data-discovery packages/kbn-data-service @elastic/kibana-visualizations @elastic/kibana-data-discovery @@ -770,6 +771,7 @@ x-pack/packages/kbn-slo-schema @elastic/obs-ux-management-team x-pack/plugins/snapshot_restore @elastic/platform-deployment-management packages/kbn-some-dev-log @elastic/kibana-operations packages/kbn-sort-package-json @elastic/kibana-operations +packages/kbn-sort-predicates @elastic/kibana-visualizations x-pack/plugins/spaces @elastic/kibana-security x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin @elastic/kibana-security packages/kbn-spec-to-console @elastic/platform-deployment-management @@ -1528,6 +1530,9 @@ x-pack/plugins/security_solution/common/api/entity_analytics @elastic/security-e /x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/ @elastic/kibana-cloud-security-posture /x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts @elastic/kibana-cloud-security-posture /x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/ @elastic/kibana-cloud-security-posture +/x-pack/plugins/fleet/public/components/cloud_security_posture @elastic/fleet @elastic/kibana-cloud-security-posture +/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/components/cloud_security_posture @elastic/fleet @elastic/kibana-cloud-security-posture +/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/hooks/setup_technology.* @elastic/fleet @elastic/kibana-cloud-security-posture # Security Solution onboarding tour /x-pack/plugins/security_solution/public/common/components/guided_onboarding @elastic/security-threat-hunting-explore diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 554a597de61d6..12b81ce69befe 100644 --- a/api_docs/actions.mdx +++ b/api_docs/actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/actions title: "actions" image: https://source.unsplash.com/400x175/?github description: API docs for the actions plugin -date: 2024-01-23 +date: 2024-01-24 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 fab70b547ad8b..e1e115a33552e 100644 --- a/api_docs/advanced_settings.mdx +++ b/api_docs/advanced_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/advancedSettings title: "advancedSettings" image: https://source.unsplash.com/400x175/?github description: API docs for the advancedSettings plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/ai_assistant_management_observability.mdx b/api_docs/ai_assistant_management_observability.mdx index cce85a42ac206..aea31971e2e41 100644 --- a/api_docs/ai_assistant_management_observability.mdx +++ b/api_docs/ai_assistant_management_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementObservability title: "aiAssistantManagementObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the aiAssistantManagementObservability plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementObservability'] --- import aiAssistantManagementObservabilityObj from './ai_assistant_management_observability.devdocs.json'; diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx index 89e2ca81445fa..e5bc869e7030a 100644 --- a/api_docs/ai_assistant_management_selection.mdx +++ b/api_docs/ai_assistant_management_selection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementSelection title: "aiAssistantManagementSelection" image: https://source.unsplash.com/400x175/?github description: API docs for the aiAssistantManagementSelection plugin -date: 2024-01-23 +date: 2024-01-24 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 e77ef0e0bfff1..456821ea72b17 100644 --- a/api_docs/aiops.mdx +++ b/api_docs/aiops.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiops title: "aiops" image: https://source.unsplash.com/400x175/?github description: API docs for the aiops plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiops'] --- import aiopsObj from './aiops.devdocs.json'; diff --git a/api_docs/alerting.devdocs.json b/api_docs/alerting.devdocs.json index a45133cd56385..84f358d1d8f42 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -3143,6 +3143,20 @@ "path": "x-pack/plugins/alerting/server/application/rule/types/rule.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.Rule.notificationDelay", + "type": "Object", + "tags": [], + "label": "notificationDelay", + "description": [], + "signature": [ + "Readonly<{} & { active: number; }> | undefined" + ], + "path": "x-pack/plugins/alerting/server/application/rule/types/rule.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -4968,7 +4982,7 @@ }, ">; getAlertState: (params: ", "GetAlertStateParams", - ") => Promise | undefined; alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; previousStartedAt?: string | null | undefined; summaryActions?: Record> | undefined; } & {}>>; getAlertSummary: (params: ", + ") => Promise | undefined; alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; previousStartedAt?: string | null | undefined; summaryActions?: Record> | undefined; } & {}>>; getAlertSummary: (params: ", "GetAlertSummaryParams", ") => Promise<", { @@ -7809,6 +7823,31 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "alerting", + "id": "def-common.NotificationDelay", + "type": "Interface", + "tags": [], + "label": "NotificationDelay", + "description": [], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-common.NotificationDelay.active", + "type": "number", + "tags": [], + "label": "active", + "description": [], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-common.Rule", @@ -8303,6 +8342,27 @@ "path": "x-pack/plugins/alerting/common/rule.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.Rule.notificationDelay", + "type": "Object", + "tags": [], + "label": "notificationDelay", + "description": [], + "signature": [ + { + "pluginId": "alerting", + "scope": "common", + "docId": "kibAlertingPluginApi", + "section": "def-common.NotificationDelay", + "text": "NotificationDelay" + }, + " | undefined" + ], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -10346,7 +10406,7 @@ "label": "LatestAlertInstanceMetaSchema", "description": [], "signature": [ - "{ readonly uuid?: string | undefined; readonly lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; readonly flappingHistory?: boolean[] | undefined; readonly flapping?: boolean | undefined; readonly maintenanceWindowIds?: string[] | undefined; readonly pendingRecoveredCount?: number | undefined; }" + "{ readonly uuid?: string | undefined; readonly lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; readonly flappingHistory?: boolean[] | undefined; readonly flapping?: boolean | undefined; readonly maintenanceWindowIds?: string[] | undefined; readonly pendingRecoveredCount?: number | undefined; readonly activeCount?: number | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -10391,7 +10451,7 @@ "label": "LatestRawAlertInstanceSchema", "description": [], "signature": [ - "{ readonly meta?: Readonly<{ uuid?: string | undefined; lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; readonly state?: Record | undefined; }" + "{ readonly meta?: Readonly<{ uuid?: string | undefined; lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; readonly state?: Record | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -10406,7 +10466,7 @@ "label": "LatestTaskStateSchema", "description": [], "signature": [ - "{ readonly alertTypeState?: Record | undefined; readonly alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly previousStartedAt?: string | null | undefined; readonly summaryActions?: Record> | undefined; }" + "{ readonly alertTypeState?: Record | undefined; readonly alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly previousStartedAt?: string | null | undefined; readonly summaryActions?: Record> | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index b83a121c0a526..b45d5a83b0562 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/alerting title: "alerting" image: https://source.unsplash.com/400x175/?github description: API docs for the alerting plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'alerting'] --- import alertingObj from './alerting.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 830 | 1 | 799 | 51 | +| 834 | 1 | 803 | 51 | ## Client diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 2064964c6140d..2dd0858efc1f2 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apm title: "apm" image: https://source.unsplash.com/400x175/?github description: API docs for the apm plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apm'] --- import apmObj from './apm.devdocs.json'; diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index 39d993c6094bd..122439fe2070c 100644 --- a/api_docs/apm_data_access.mdx +++ b/api_docs/apm_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/apmDataAccess title: "apmDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the apmDataAccess plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 97016a41bf08f..1bcb98965ca91 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index b04caf772fcf8..d7a9671a70164 100644 --- a/api_docs/banners.mdx +++ b/api_docs/banners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/banners title: "banners" image: https://source.unsplash.com/400x175/?github description: API docs for the banners plugin -date: 2024-01-23 +date: 2024-01-24 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 e7d400ffd1267..ac0edbbc20350 100644 --- a/api_docs/bfetch.mdx +++ b/api_docs/bfetch.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/bfetch title: "bfetch" image: https://source.unsplash.com/400x175/?github description: API docs for the bfetch plugin -date: 2024-01-23 +date: 2024-01-24 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 924d20ab160ad..3ef2b195117cb 100644 --- a/api_docs/canvas.mdx +++ b/api_docs/canvas.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/canvas title: "canvas" image: https://source.unsplash.com/400x175/?github description: API docs for the canvas plugin -date: 2024-01-23 +date: 2024-01-24 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 72c3bbe95d384..e091e6b0a06b8 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cases title: "cases" image: https://source.unsplash.com/400x175/?github description: API docs for the cases plugin -date: 2024-01-23 +date: 2024-01-24 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 62f26f0375a4f..6d081b565e78d 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/charts title: "charts" image: https://source.unsplash.com/400x175/?github description: API docs for the charts plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'charts'] --- import chartsObj from './charts.devdocs.json'; diff --git a/api_docs/cloud.mdx b/api_docs/cloud.mdx index ce8a4dcbb8008..be903fae866a3 100644 --- a/api_docs/cloud.mdx +++ b/api_docs/cloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloud title: "cloud" image: https://source.unsplash.com/400x175/?github description: API docs for the cloud plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloud'] --- import cloudObj from './cloud.devdocs.json'; diff --git a/api_docs/cloud_data_migration.mdx b/api_docs/cloud_data_migration.mdx index d0df7b90ba27d..bc5444e63393a 100644 --- a/api_docs/cloud_data_migration.mdx +++ b/api_docs/cloud_data_migration.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDataMigration title: "cloudDataMigration" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDataMigration plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudDataMigration'] --- import cloudDataMigrationObj from './cloud_data_migration.devdocs.json'; diff --git a/api_docs/cloud_defend.mdx b/api_docs/cloud_defend.mdx index c943292ebe819..33b8b3d790423 100644 --- a/api_docs/cloud_defend.mdx +++ b/api_docs/cloud_defend.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudDefend title: "cloudDefend" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudDefend plugin -date: 2024-01-23 +date: 2024-01-24 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 32fab773a292c..e7b0124b4b73a 100644 --- a/api_docs/cloud_experiments.mdx +++ b/api_docs/cloud_experiments.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudExperiments title: "cloudExperiments" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudExperiments plugin -date: 2024-01-23 +date: 2024-01-24 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 8df7e6fedcf7c..11a9970e50ff9 100644 --- a/api_docs/cloud_security_posture.mdx +++ b/api_docs/cloud_security_posture.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/cloudSecurityPosture title: "cloudSecurityPosture" image: https://source.unsplash.com/400x175/?github description: API docs for the cloudSecurityPosture plugin -date: 2024-01-23 +date: 2024-01-24 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 7a65c9b37a055..d00337c055906 100644 --- a/api_docs/console.mdx +++ b/api_docs/console.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/console title: "console" image: https://source.unsplash.com/400x175/?github description: API docs for the console plugin -date: 2024-01-23 +date: 2024-01-24 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 adf3e255a1bf4..cc80a35c34fef 100644 --- a/api_docs/content_management.mdx +++ b/api_docs/content_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/contentManagement title: "contentManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the contentManagement plugin -date: 2024-01-23 +date: 2024-01-24 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 59a2ce8dd47c6..0325bc0dbb098 100644 --- a/api_docs/controls.mdx +++ b/api_docs/controls.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/controls title: "controls" image: https://source.unsplash.com/400x175/?github description: API docs for the controls plugin -date: 2024-01-23 +date: 2024-01-24 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 77c324a4411ab..aa22e24368661 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/customIntegrations title: "customIntegrations" image: https://source.unsplash.com/400x175/?github description: API docs for the customIntegrations plugin -date: 2024-01-23 +date: 2024-01-24 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 4ea017e5c8269..ce8fa4c60e29b 100644 --- a/api_docs/dashboard.mdx +++ b/api_docs/dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboard title: "dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboard plugin -date: 2024-01-23 +date: 2024-01-24 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 a2cf9e58db143..179bb05689936 100644 --- a/api_docs/dashboard_enhanced.mdx +++ b/api_docs/dashboard_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dashboardEnhanced title: "dashboardEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the dashboardEnhanced plugin -date: 2024-01-23 +date: 2024-01-24 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 0e16a18c98056..4fa861ea50f7c 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -10695,7 +10695,7 @@ "section": "def-common.Datatable", "text": "Datatable" }, - ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions) => string" + ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }: CSVOptions) => string" ], "path": "src/plugins/data/public/index.ts", "deprecated": false, @@ -12216,10 +12216,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/plugin.ts" }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_kibana_index_patterns.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/control/list_control_factory.ts" @@ -17731,7 +17727,7 @@ "section": "def-common.Datatable", "text": "Datatable" }, - ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions) => string" + ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }: CSVOptions) => string" ], "path": "src/plugins/data/server/index.ts", "deprecated": false, @@ -22614,7 +22610,7 @@ "section": "def-common.Datatable", "text": "Datatable" }, - ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions) => string" + ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }: CSVOptions) => string" ], "path": "src/plugins/data/common/exports/export_csv.tsx", "deprecated": false, @@ -22646,7 +22642,7 @@ "id": "def-common.datatableToCSV.$2", "type": "Object", "tags": [], - "label": "{ csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }", + "label": "{ csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }", "description": [], "signature": [ "CSVOptions" diff --git a/api_docs/data.mdx b/api_docs/data.mdx index ca2d0fcf2daf5..0fb05f54e732c 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data title: "data" image: https://source.unsplash.com/400x175/?github description: API docs for the data plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.devdocs.json'; diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 5f8f042acb4b3..5c895870c5b08 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-query title: "data.query" image: https://source.unsplash.com/400x175/?github description: API docs for the data.query plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.devdocs.json'; diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 6b1f224c5c321..b920cff6a9599 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/data-search title: "data.search" image: https://source.unsplash.com/400x175/?github description: API docs for the data.search plugin -date: 2024-01-23 +date: 2024-01-24 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 3245474d95e77..5f00e0d5c3296 100644 --- a/api_docs/data_view_editor.mdx +++ b/api_docs/data_view_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewEditor title: "dataViewEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewEditor plugin -date: 2024-01-23 +date: 2024-01-24 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 79d434444005e..c0a41708c32d5 100644 --- a/api_docs/data_view_field_editor.mdx +++ b/api_docs/data_view_field_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewFieldEditor title: "dataViewFieldEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewFieldEditor plugin -date: 2024-01-23 +date: 2024-01-24 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 6fbe83b9ce3c2..fba61de86188d 100644 --- a/api_docs/data_view_management.mdx +++ b/api_docs/data_view_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViewManagement title: "dataViewManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViewManagement plugin -date: 2024-01-23 +date: 2024-01-24 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 3755359e9e4eb..0d2a81e1517f8 100644 --- a/api_docs/data_views.mdx +++ b/api_docs/data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataViews title: "dataViews" image: https://source.unsplash.com/400x175/?github description: API docs for the dataViews plugin -date: 2024-01-23 +date: 2024-01-24 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 ccf8677a1bdff..172316b4d2b9e 100644 --- a/api_docs/data_visualizer.mdx +++ b/api_docs/data_visualizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/dataVisualizer title: "dataVisualizer" image: https://source.unsplash.com/400x175/?github description: API docs for the dataVisualizer plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataVisualizer'] --- import dataVisualizerObj from './data_visualizer.devdocs.json'; diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx index 1201adc829c51..45cc84740a2c5 100644 --- a/api_docs/dataset_quality.mdx +++ b/api_docs/dataset_quality.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/datasetQuality title: "datasetQuality" image: https://source.unsplash.com/400x175/?github description: API docs for the datasetQuality plugin -date: 2024-01-23 +date: 2024-01-24 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 b31e0622839a9..f1059051b574f 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByApi slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-api title: Deprecated API usage by API description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -23,7 +23,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | @kbn/core-saved-objects-browser-internal, @kbn/core, savedObjects, visualizations, aiops, ml, dataVisualizer, dashboardEnhanced, graph, lens, securitySolution, eventAnnotation, @kbn/core-saved-objects-browser-mocks | - | | | @kbn/core, savedObjects, embeddable, visualizations, canvas, graph, ml, @kbn/core-saved-objects-common, @kbn/core-saved-objects-server, actions, alerting, savedSearch, enterpriseSearch, securitySolution, taskManager, @kbn/core-saved-objects-server-internal, @kbn/core-saved-objects-api-server | - | | | stackAlerts, alerting, securitySolution, inputControlVis | - | -| | stackAlerts, graph, infra, inputControlVis, securitySolution, savedObjects | - | +| | stackAlerts, graph, inputControlVis, securitySolution, savedObjects | - | | | dashboard, dataVisualizer, stackAlerts, expressionPartitionVis | - | | | stackAlerts, alerting, securitySolution, inputControlVis | - | | | triggersActionsUi | - | @@ -131,7 +131,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | @kbn/react-kibana-context-styled, kibanaReact | - | | | enterpriseSearch | - | | | encryptedSavedObjects | - | -| | securitySolutionServerless | - | | | @kbn/core | - | | | @kbn/core | - | | | @kbn/core-lifecycle-browser-mocks, @kbn/core, @kbn/core-plugins-browser-internal | - | @@ -199,6 +198,7 @@ Safe to remove. | | lists | | | reporting | | | savedObjects | +| | serverless | | | taskManager | | | @kbn/core-saved-objects-api-browser | | | @kbn/core-saved-objects-api-browser | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index a05084092e135..12598aea0767e 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsByPlugin slug: /kibana-dev-docs/api-meta/deprecated-api-list-by-plugin title: Deprecated API usage by plugin description: A list of deprecated APIs, which plugins are still referencing them, and when they need to be removed by. -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -378,7 +378,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [maintenance_windows.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/public/application/maintenance_windows.tsx#:~:text=KibanaThemeProvider), [maintenance_windows.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/public/application/maintenance_windows.tsx#:~:text=KibanaThemeProvider), [maintenance_windows.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/public/application/maintenance_windows.tsx#:~:text=KibanaThemeProvider) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24) | 8.8.0 | | | [task.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/usage/task.ts#:~:text=index) | - | -| | [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes)+ 54 more | - | +| | [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes)+ 56 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/index.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -928,7 +928,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [inventory_metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts#:~:text=alertFactory) | - | -| | [use_kibana_index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_kibana_index_patterns.ts#:~:text=indexPatterns) | - | | | [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider) | - | @@ -1380,14 +1379,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ -## securitySolutionServerless - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution_serverless/public/navigation/index.ts#:~:text=setSideNavComponentDeprecated) | - | - - - ## serverless | Deprecated API | Reference location(s) | Remove By | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index fd51b66eea1f3..c73dd2b827af9 100644 --- a/api_docs/deprecations_by_team.mdx +++ b/api_docs/deprecations_by_team.mdx @@ -7,7 +7,7 @@ id: kibDevDocsDeprecationsDueByTeam slug: /kibana-dev-docs/api-meta/deprecations-due-by-team title: Deprecated APIs due to be removed, by team description: Lists the teams that are referencing deprecated APIs with a remove by date. -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index 9566f3ae92a97..f572564c6f770 100644 --- a/api_docs/dev_tools.mdx +++ b/api_docs/dev_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/devTools title: "devTools" image: https://source.unsplash.com/400x175/?github description: API docs for the devTools plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'devTools'] --- import devToolsObj from './dev_tools.devdocs.json'; diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 1970f46fa23ef..5e03a578d5f47 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discover title: "discover" image: https://source.unsplash.com/400x175/?github description: API docs for the discover plugin -date: 2024-01-23 +date: 2024-01-24 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 01495385aedfe..dc4fd2e6daa97 100644 --- a/api_docs/discover_enhanced.mdx +++ b/api_docs/discover_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/discoverEnhanced title: "discoverEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the discoverEnhanced plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 7a53d7c9e830b..45fc0ceecd90a 100644 --- a/api_docs/ecs_data_quality_dashboard.mdx +++ b/api_docs/ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ecsDataQualityDashboard title: "ecsDataQualityDashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the ecsDataQualityDashboard plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ecsDataQualityDashboard'] --- import ecsDataQualityDashboardObj from './ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index b1b5137ff6c94..cb6157404b679 100644 --- a/api_docs/elastic_assistant.mdx +++ b/api_docs/elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/elasticAssistant title: "elasticAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the elasticAssistant plugin -date: 2024-01-23 +date: 2024-01-24 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 b0ea3819b8169..3d3a7a27cc44a 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -4102,6 +4102,370 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.onPhaseChange", + "type": "Object", + "tags": [], + "label": "onPhaseChange", + "description": [], + "signature": [ + "{ readonly value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>> | ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; }; }" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "embeddable", "id": "def-public.Embeddable.linkToLibrary", diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index c0556d96c1576..47d5b490e6fcd 100644 --- a/api_docs/embeddable.mdx +++ b/api_docs/embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddable title: "embeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddable plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 519 | 1 | 419 | 8 | +| 520 | 1 | 420 | 8 | ## Client diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index 5166d3dd1fc3b..f9194bcd9c564 100644 --- a/api_docs/embeddable_enhanced.mdx +++ b/api_docs/embeddable_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/embeddableEnhanced title: "embeddableEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the embeddableEnhanced plugin -date: 2024-01-23 +date: 2024-01-24 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 133eab873aba0..291bc3e0ad45f 100644 --- a/api_docs/encrypted_saved_objects.mdx +++ b/api_docs/encrypted_saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/encryptedSavedObjects title: "encryptedSavedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the encryptedSavedObjects plugin -date: 2024-01-23 +date: 2024-01-24 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 619bcca6eb92f..8699397bf6807 100644 --- a/api_docs/enterprise_search.mdx +++ b/api_docs/enterprise_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/enterpriseSearch title: "enterpriseSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the enterpriseSearch plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 9c7b31e49715d..a00b256eaf194 100644 --- a/api_docs/es_ui_shared.mdx +++ b/api_docs/es_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/esUiShared title: "esUiShared" image: https://source.unsplash.com/400x175/?github description: API docs for the esUiShared plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index f47f66094a11b..36cf5f676a69c 100644 --- a/api_docs/event_annotation.mdx +++ b/api_docs/event_annotation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotation title: "eventAnnotation" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotation plugin -date: 2024-01-23 +date: 2024-01-24 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 d75a714dbe629..c9207b01e57d8 100644 --- a/api_docs/event_annotation_listing.mdx +++ b/api_docs/event_annotation_listing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventAnnotationListing title: "eventAnnotationListing" image: https://source.unsplash.com/400x175/?github description: API docs for the eventAnnotationListing plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventAnnotationListing'] --- import eventAnnotationListingObj from './event_annotation_listing.devdocs.json'; diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 469e60a298054..491a322109fff 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/eventLog title: "eventLog" image: https://source.unsplash.com/400x175/?github description: API docs for the eventLog plugin -date: 2024-01-23 +date: 2024-01-24 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 6e11ddad3446c..49f114a2f5f59 100644 --- a/api_docs/exploratory_view.mdx +++ b/api_docs/exploratory_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/exploratoryView title: "exploratoryView" image: https://source.unsplash.com/400x175/?github description: API docs for the exploratoryView plugin -date: 2024-01-23 +date: 2024-01-24 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 7333ffce13c9e..c811d7da3ce3e 100644 --- a/api_docs/expression_error.mdx +++ b/api_docs/expression_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionError title: "expressionError" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionError plugin -date: 2024-01-23 +date: 2024-01-24 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 1c813a6ff3068..a771e6f9dd634 100644 --- a/api_docs/expression_gauge.mdx +++ b/api_docs/expression_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionGauge title: "expressionGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionGauge plugin -date: 2024-01-23 +date: 2024-01-24 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 cc004957dc006..668f82e5cea53 100644 --- a/api_docs/expression_heatmap.mdx +++ b/api_docs/expression_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionHeatmap title: "expressionHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionHeatmap plugin -date: 2024-01-23 +date: 2024-01-24 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 3c994f48269dc..a5f2f487acf71 100644 --- a/api_docs/expression_image.mdx +++ b/api_docs/expression_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionImage title: "expressionImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionImage plugin -date: 2024-01-23 +date: 2024-01-24 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 1c9871919e122..5c1beab864575 100644 --- a/api_docs/expression_legacy_metric_vis.mdx +++ b/api_docs/expression_legacy_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionLegacyMetricVis title: "expressionLegacyMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionLegacyMetricVis plugin -date: 2024-01-23 +date: 2024-01-24 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 456ebd6324e5e..2f8d12e132bca 100644 --- a/api_docs/expression_metric.mdx +++ b/api_docs/expression_metric.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetric title: "expressionMetric" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetric plugin -date: 2024-01-23 +date: 2024-01-24 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 08a619d62b016..0fbb173bdb76e 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionMetricVis title: "expressionMetricVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionMetricVis plugin -date: 2024-01-23 +date: 2024-01-24 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 ac226553c7ffd..f8041746116aa 100644 --- a/api_docs/expression_partition_vis.mdx +++ b/api_docs/expression_partition_vis.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionPartitionVis title: "expressionPartitionVis" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionPartitionVis plugin -date: 2024-01-23 +date: 2024-01-24 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 5cdd0accbf466..51e0a004484bd 100644 --- a/api_docs/expression_repeat_image.mdx +++ b/api_docs/expression_repeat_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRepeatImage title: "expressionRepeatImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRepeatImage plugin -date: 2024-01-23 +date: 2024-01-24 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 5f5d542ba8c54..725ea09488733 100644 --- a/api_docs/expression_reveal_image.mdx +++ b/api_docs/expression_reveal_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionRevealImage title: "expressionRevealImage" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionRevealImage plugin -date: 2024-01-23 +date: 2024-01-24 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 86f6cab76c77c..174b3593cf777 100644 --- a/api_docs/expression_shape.mdx +++ b/api_docs/expression_shape.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionShape title: "expressionShape" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionShape plugin -date: 2024-01-23 +date: 2024-01-24 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 046a466082a40..640288539109c 100644 --- a/api_docs/expression_tagcloud.mdx +++ b/api_docs/expression_tagcloud.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionTagcloud title: "expressionTagcloud" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionTagcloud plugin -date: 2024-01-23 +date: 2024-01-24 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 aa5e69f0ceea6..f8ed40e5fbdf4 100644 --- a/api_docs/expression_x_y.mdx +++ b/api_docs/expression_x_y.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressionXY title: "expressionXY" image: https://source.unsplash.com/400x175/?github description: API docs for the expressionXY plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index cbdce006d8268..be9f4c25ce94f 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/expressions title: "expressions" image: https://source.unsplash.com/400x175/?github description: API docs for the expressions plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.devdocs.json'; diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 13ee05fe7608c..f995207b1a1f0 100644 --- a/api_docs/features.mdx +++ b/api_docs/features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/features title: "features" image: https://source.unsplash.com/400x175/?github description: API docs for the features plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'features'] --- import featuresObj from './features.devdocs.json'; diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 4a3e00f3a2b63..59008ddaef8bc 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fieldFormats title: "fieldFormats" image: https://source.unsplash.com/400x175/?github description: API docs for the fieldFormats plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index e6c0f8a48c6a5..6328cf4dc64fb 100644 --- a/api_docs/file_upload.mdx +++ b/api_docs/file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fileUpload title: "fileUpload" image: https://source.unsplash.com/400x175/?github description: API docs for the fileUpload plugin -date: 2024-01-23 +date: 2024-01-24 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 152f496490d4c..ff6ab98a10e6f 100644 --- a/api_docs/files.mdx +++ b/api_docs/files.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/files title: "files" image: https://source.unsplash.com/400x175/?github description: API docs for the files plugin -date: 2024-01-23 +date: 2024-01-24 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 54269eda320b5..4aa6ba3bfd93e 100644 --- a/api_docs/files_management.mdx +++ b/api_docs/files_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/filesManagement title: "filesManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the filesManagement plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'filesManagement'] --- import filesManagementObj from './files_management.devdocs.json'; diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 85afe8514db7e..27051d220dd76 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/fleet title: "fleet" image: https://source.unsplash.com/400x175/?github description: API docs for the fleet plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fleet'] --- import fleetObj from './fleet.devdocs.json'; diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index a7bc6c88fbc33..c81c59d5ac7b2 100644 --- a/api_docs/global_search.mdx +++ b/api_docs/global_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/globalSearch title: "globalSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the globalSearch plugin -date: 2024-01-23 +date: 2024-01-24 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 49325187569dd..9bee68b1eaa0f 100644 --- a/api_docs/guided_onboarding.mdx +++ b/api_docs/guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/guidedOnboarding title: "guidedOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the guidedOnboarding plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 78222cf9c1a0f..37b5a1165ca05 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/home title: "home" image: https://source.unsplash.com/400x175/?github description: API docs for the home plugin -date: 2024-01-23 +date: 2024-01-24 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 b0e3d1c0478c0..e9e6c6613ced0 100644 --- a/api_docs/image_embeddable.mdx +++ b/api_docs/image_embeddable.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/imageEmbeddable title: "imageEmbeddable" image: https://source.unsplash.com/400x175/?github description: API docs for the imageEmbeddable plugin -date: 2024-01-23 +date: 2024-01-24 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 34daff7be244b..091edfc216ca6 100644 --- a/api_docs/index_lifecycle_management.mdx +++ b/api_docs/index_lifecycle_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexLifecycleManagement title: "indexLifecycleManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexLifecycleManagement plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexLifecycleManagement'] --- import indexLifecycleManagementObj from './index_lifecycle_management.devdocs.json'; diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 4c267a67c0571..b23768f8fcd9c 100644 --- a/api_docs/index_management.mdx +++ b/api_docs/index_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/indexManagement title: "indexManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the indexManagement plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index a061af2a57a6f..3d1bb7bd4ede0 100644 --- a/api_docs/infra.mdx +++ b/api_docs/infra.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/infra title: "infra" image: https://source.unsplash.com/400x175/?github description: API docs for the infra plugin -date: 2024-01-23 +date: 2024-01-24 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 781f03c13f5d6..2469b2e49567e 100644 --- a/api_docs/ingest_pipelines.mdx +++ b/api_docs/ingest_pipelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ingestPipelines title: "ingestPipelines" image: https://source.unsplash.com/400x175/?github description: API docs for the ingestPipelines plugin -date: 2024-01-23 +date: 2024-01-24 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 fcd59363bb701..4fd8cabe04333 100644 --- a/api_docs/inspector.mdx +++ b/api_docs/inspector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/inspector title: "inspector" image: https://source.unsplash.com/400x175/?github description: API docs for the inspector plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.devdocs.json'; diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index d6cde47433d3b..07ad45dbc2004 100644 --- a/api_docs/interactive_setup.mdx +++ b/api_docs/interactive_setup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/interactiveSetup title: "interactiveSetup" image: https://source.unsplash.com/400x175/?github description: API docs for the interactiveSetup plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index 90cf24453f38f..e0cbaef6d7269 100644 --- a/api_docs/kbn_ace.mdx +++ b/api_docs/kbn_ace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ace title: "@kbn/ace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ace plugin -date: 2024-01-23 +date: 2024-01-24 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 69e0c75d9e75e..23ca9ccb139e1 100644 --- a/api_docs/kbn_actions_types.mdx +++ b/api_docs/kbn_actions_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-actions-types title: "@kbn/actions-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/actions-types plugin -date: 2024-01-23 +date: 2024-01-24 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 f09c55f1998b5..b1e185ed278c1 100644 --- a/api_docs/kbn_aiops_components.mdx +++ b/api_docs/kbn_aiops_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-components title: "@kbn/aiops-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-components plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index 51513d7a4c4b5..7d412101cd8d9 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index 9ddede9acc008..99399572f176f 100644 --- a/api_docs/kbn_alerting_api_integration_helpers.mdx +++ b/api_docs/kbn_alerting_api_integration_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-api-integration-helpers title: "@kbn/alerting-api-integration-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-api-integration-helpers plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.devdocs.json b/api_docs/kbn_alerting_state_types.devdocs.json index df8c83dfdc58a..344736f793222 100644 --- a/api_docs/kbn_alerting_state_types.devdocs.json +++ b/api_docs/kbn_alerting_state_types.devdocs.json @@ -120,7 +120,7 @@ "label": "LatestAlertInstanceMetaSchema", "description": [], "signature": [ - "{ readonly uuid?: string | undefined; readonly lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; readonly flappingHistory?: boolean[] | undefined; readonly flapping?: boolean | undefined; readonly maintenanceWindowIds?: string[] | undefined; readonly pendingRecoveredCount?: number | undefined; }" + "{ readonly uuid?: string | undefined; readonly lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; readonly flappingHistory?: boolean[] | undefined; readonly flapping?: boolean | undefined; readonly maintenanceWindowIds?: string[] | undefined; readonly pendingRecoveredCount?: number | undefined; readonly activeCount?: number | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -165,7 +165,7 @@ "label": "LatestRawAlertInstanceSchema", "description": [], "signature": [ - "{ readonly meta?: Readonly<{ uuid?: string | undefined; lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; readonly state?: Record | undefined; }" + "{ readonly meta?: Readonly<{ uuid?: string | undefined; lastScheduledActions?: Readonly<{ actions?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; readonly state?: Record | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -180,7 +180,7 @@ "label": "LatestTaskStateSchema", "description": [], "signature": [ - "{ readonly alertTypeState?: Record | undefined; readonly alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly previousStartedAt?: string | null | undefined; readonly summaryActions?: Record> | undefined; }" + "{ readonly alertTypeState?: Record | undefined; readonly alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; readonly previousStartedAt?: string | null | undefined; readonly summaryActions?: Record> | undefined; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -210,7 +210,7 @@ "label": "MutableLatestAlertInstanceMetaSchema", "description": [], "signature": [ - "{ uuid?: Mutable; lastScheduledActions?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined>; flappingHistory?: Mutable; flapping?: Mutable; maintenanceWindowIds?: Mutable; pendingRecoveredCount?: Mutable; }" + "{ uuid?: Mutable; lastScheduledActions?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined>; flappingHistory?: Mutable; flapping?: Mutable; maintenanceWindowIds?: Mutable; pendingRecoveredCount?: Mutable; activeCount?: Mutable; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -225,7 +225,7 @@ "label": "MutableLatestTaskStateSchema", "description": [], "signature": [ - "{ alertTypeState?: Mutable | undefined>; alertInstances?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt?: Mutable; summaryActions?: Mutable> | undefined>; }" + "{ alertTypeState?: Mutable | undefined>; alertInstances?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt?: Mutable; summaryActions?: Mutable> | undefined>; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -400,7 +400,7 @@ "label": "1", "description": [], "signature": [ - "{ up: (state: Record) => Readonly<{ alertTypeState?: Record | undefined; alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; previousStartedAt?: string | null | undefined; summaryActions?: Record> | undefined; } & {}>; schema: ", + "{ up: (state: Record) => Readonly<{ alertTypeState?: Record | undefined; alertInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; alertRecoveredInstances?: Record> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined; previousStartedAt?: string | null | undefined; summaryActions?: Record> | undefined; } & {}>; schema: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -424,7 +424,7 @@ "section": "def-common.Type", "text": "Type" }, - "> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances: ", + "> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -432,7 +432,7 @@ "section": "def-common.Type", "text": "Type" }, - "> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt: ", + "> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined; flappingHistory?: boolean[] | undefined; flapping?: boolean | undefined; maintenanceWindowIds?: string[] | undefined; pendingRecoveredCount?: number | undefined; activeCount?: number | undefined; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_alerting_state_types.mdx b/api_docs/kbn_alerting_state_types.mdx index c63a0dc836470..1e8646b524666 100644 --- a/api_docs/kbn_alerting_state_types.mdx +++ b/api_docs/kbn_alerting_state_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-state-types title: "@kbn/alerting-state-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-state-types plugin -date: 2024-01-23 +date: 2024-01-24 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 c512400038bf2..ece297870be4e 100644 --- a/api_docs/kbn_alerting_types.mdx +++ b/api_docs/kbn_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerting-types title: "@kbn/alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerting-types plugin -date: 2024-01-23 +date: 2024-01-24 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 7c31781d8d5b1..d7fb746435910 100644 --- a/api_docs/kbn_alerts_as_data_utils.mdx +++ b/api_docs/kbn_alerts_as_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-as-data-utils title: "@kbn/alerts-as-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-as-data-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.devdocs.json'; diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index 477890fa117fd..6efea930dd9b3 100644 --- a/api_docs/kbn_alerts_ui_shared.mdx +++ b/api_docs/kbn_alerts_ui_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-alerts-ui-shared title: "@kbn/alerts-ui-shared" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/alerts-ui-shared plugin -date: 2024-01-23 +date: 2024-01-24 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 3cb3188330d32..5a58e17ee952a 100644 --- a/api_docs/kbn_analytics.mdx +++ b/api_docs/kbn_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics title: "@kbn/analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index 96adfb970672b..06d7368c4ec16 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx index 59b1f9212b8ca..3c71b9ada9846 100644 --- a/api_docs/kbn_analytics_collection_utils.mdx +++ b/api_docs/kbn_analytics_collection_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-collection-utils title: "@kbn/analytics-collection-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-collection-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils'] --- import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index e140fc9752010..e9f6a5142534f 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 49d0ad26724a1..440d26ca3760d 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 376a3ae674dae..019c1b5004309 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index a66c9c791038d..bf758445a3fe0 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index fcabfdc9eccaa..e7a06b1a55d40 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-config-loader title: "@kbn/apm-config-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-config-loader plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-config-loader'] --- import kbnApmConfigLoaderObj from './kbn_apm_config_loader.devdocs.json'; diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 87759f6bb8c92..8a2050d71a744 100644 --- a/api_docs/kbn_apm_synthtrace.mdx +++ b/api_docs/kbn_apm_synthtrace.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace title: "@kbn/apm-synthtrace" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace plugin -date: 2024-01-23 +date: 2024-01-24 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.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index cff5b23e36a91..e806f4e290ebd 100644 --- a/api_docs/kbn_apm_synthtrace_client.mdx +++ b/api_docs/kbn_apm_synthtrace_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-synthtrace-client title: "@kbn/apm-synthtrace-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-synthtrace-client plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index 716d04bc84c3b..680d01f64d716 100644 --- a/api_docs/kbn_apm_utils.mdx +++ b/api_docs/kbn_apm_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-apm-utils title: "@kbn/apm-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/apm-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index f62a6c80e70c9..fa7df71033a24 100644 --- a/api_docs/kbn_axe_config.mdx +++ b/api_docs/kbn_axe_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-axe-config title: "@kbn/axe-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/axe-config plugin -date: 2024-01-23 +date: 2024-01-24 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 b6fc1da0142da..0e196ca79df30 100644 --- a/api_docs/kbn_bfetch_error.mdx +++ b/api_docs/kbn_bfetch_error.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-bfetch-error title: "@kbn/bfetch-error" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/bfetch-error plugin -date: 2024-01-23 +date: 2024-01-24 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 3e33ede5f7d02..0c3cb1d4aab78 100644 --- a/api_docs/kbn_calculate_auto.mdx +++ b/api_docs/kbn_calculate_auto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-auto title: "@kbn/calculate-auto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-auto plugin -date: 2024-01-23 +date: 2024-01-24 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 f7e82cbaa4718..5045e1e7d2087 100644 --- a/api_docs/kbn_calculate_width_from_char_count.mdx +++ b/api_docs/kbn_calculate_width_from_char_count.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-calculate-width-from-char-count title: "@kbn/calculate-width-from-char-count" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/calculate-width-from-char-count plugin -date: 2024-01-23 +date: 2024-01-24 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 5180bc5aebd24..5cb05290118f4 100644 --- a/api_docs/kbn_cases_components.mdx +++ b/api_docs/kbn_cases_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cases-components title: "@kbn/cases-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cases-components plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index c23c031394015..30c8a91821391 100644 --- a/api_docs/kbn_cell_actions.mdx +++ b/api_docs/kbn_cell_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cell-actions title: "@kbn/cell-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cell-actions plugin -date: 2024-01-23 +date: 2024-01-24 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 777e70d648f9d..352e37dfbc304 100644 --- a/api_docs/kbn_chart_expressions_common.mdx +++ b/api_docs/kbn_chart_expressions_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-expressions-common title: "@kbn/chart-expressions-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-expressions-common plugin -date: 2024-01-23 +date: 2024-01-24 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 30ff978ae860a..48a0745581671 100644 --- a/api_docs/kbn_chart_icons.mdx +++ b/api_docs/kbn_chart_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-chart-icons title: "@kbn/chart-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/chart-icons plugin -date: 2024-01-23 +date: 2024-01-24 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 f8b929c572f7f..71d023cb41e11 100644 --- a/api_docs/kbn_ci_stats_core.mdx +++ b/api_docs/kbn_ci_stats_core.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-core title: "@kbn/ci-stats-core" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-core plugin -date: 2024-01-23 +date: 2024-01-24 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 c36e6b5f43041..48f717e7632d5 100644 --- a/api_docs/kbn_ci_stats_performance_metrics.mdx +++ b/api_docs/kbn_ci_stats_performance_metrics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-performance-metrics title: "@kbn/ci-stats-performance-metrics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-performance-metrics plugin -date: 2024-01-23 +date: 2024-01-24 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 a4c26b4b7e14e..c77447b8830cc 100644 --- a/api_docs/kbn_ci_stats_reporter.mdx +++ b/api_docs/kbn_ci_stats_reporter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ci-stats-reporter title: "@kbn/ci-stats-reporter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ci-stats-reporter plugin -date: 2024-01-23 +date: 2024-01-24 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 809e23497bc7d..fc7d7268f573d 100644 --- a/api_docs/kbn_cli_dev_mode.mdx +++ b/api_docs/kbn_cli_dev_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cli-dev-mode title: "@kbn/cli-dev-mode" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cli-dev-mode plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cli-dev-mode'] --- import kbnCliDevModeObj from './kbn_cli_dev_mode.devdocs.json'; diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index 35cd6ba9cb260..4ad0315d3d87a 100644 --- a/api_docs/kbn_code_editor.mdx +++ b/api_docs/kbn_code_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-editor title: "@kbn/code-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-editor plugin -date: 2024-01-23 +date: 2024-01-24 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 72ba6935ff7b5..d44ee634ee738 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-01-23 +date: 2024-01-24 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 09aee1da761c8..b16996e0c8e41 100644 --- a/api_docs/kbn_code_owners.mdx +++ b/api_docs/kbn_code_owners.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-code-owners title: "@kbn/code-owners" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/code-owners plugin -date: 2024-01-23 +date: 2024-01-24 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 64d23559aa4b7..330a3717674e9 100644 --- a/api_docs/kbn_coloring.mdx +++ b/api_docs/kbn_coloring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-coloring title: "@kbn/coloring" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/coloring plugin -date: 2024-01-23 +date: 2024-01-24 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 383eab06c27d4..2010195929f67 100644 --- a/api_docs/kbn_config.mdx +++ b/api_docs/kbn_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config title: "@kbn/config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config plugin -date: 2024-01-23 +date: 2024-01-24 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 5783442a13bad..403b20cf5728e 100644 --- a/api_docs/kbn_config_mocks.mdx +++ b/api_docs/kbn_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-mocks title: "@kbn/config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index ffac2caad1456..9a939c2ae26ff 100644 --- a/api_docs/kbn_config_schema.mdx +++ b/api_docs/kbn_config_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-config-schema title: "@kbn/config-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/config-schema plugin -date: 2024-01-23 +date: 2024-01-24 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 13a14bfd0dfe8..0104462738e2f 100644 --- a/api_docs/kbn_content_management_content_editor.mdx +++ b/api_docs/kbn_content_management_content_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-content-editor title: "@kbn/content-management-content-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-content-editor plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index 0c091eb12aee3..fa8fd5a1861e3 100644 --- a/api_docs/kbn_content_management_tabbed_table_list_view.mdx +++ b/api_docs/kbn_content_management_tabbed_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-tabbed-table-list-view title: "@kbn/content-management-tabbed-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-tabbed-table-list-view plugin -date: 2024-01-23 +date: 2024-01-24 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 bf0947d429d7e..3f13c6f6c0106 100644 --- a/api_docs/kbn_content_management_table_list_view.mdx +++ b/api_docs/kbn_content_management_table_list_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view title: "@kbn/content-management-table-list-view" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view plugin -date: 2024-01-23 +date: 2024-01-24 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 9c1ebc47f9b5c..c7216271dc021 100644 --- a/api_docs/kbn_content_management_table_list_view_common.mdx +++ b/api_docs/kbn_content_management_table_list_view_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-common title: "@kbn/content-management-table-list-view-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-common plugin -date: 2024-01-23 +date: 2024-01-24 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 5c39f7abb1545..dff42a0a491a3 100644 --- a/api_docs/kbn_content_management_table_list_view_table.mdx +++ b/api_docs/kbn_content_management_table_list_view_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-table-list-view-table title: "@kbn/content-management-table-list-view-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-table-list-view-table plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index 4057cf5b914ab..7a0b959f92fca 100644 --- a/api_docs/kbn_content_management_utils.mdx +++ b/api_docs/kbn_content_management_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-content-management-utils title: "@kbn/content-management-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/content-management-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 d296b6898ddd0..6a644ffcbea18 100644 --- a/api_docs/kbn_core_analytics_browser.mdx +++ b/api_docs/kbn_core_analytics_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser title: "@kbn/core-analytics-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 8f883884f1765..6842280f903d4 100644 --- a/api_docs/kbn_core_analytics_browser_internal.mdx +++ b/api_docs/kbn_core_analytics_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-internal title: "@kbn/core-analytics-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 79478936422b1..6bc8d9009df11 100644 --- a/api_docs/kbn_core_analytics_browser_mocks.mdx +++ b/api_docs/kbn_core_analytics_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-browser-mocks title: "@kbn/core-analytics-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 27b39bfced882..481fe5c527ae2 100644 --- a/api_docs/kbn_core_analytics_server.mdx +++ b/api_docs/kbn_core_analytics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server title: "@kbn/core-analytics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server plugin -date: 2024-01-23 +date: 2024-01-24 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 cd3eb60a246f5..beee6760981b0 100644 --- a/api_docs/kbn_core_analytics_server_internal.mdx +++ b/api_docs/kbn_core_analytics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-internal title: "@kbn/core-analytics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 45605a1849b1c..fa2cdd0b8e3cf 100644 --- a/api_docs/kbn_core_analytics_server_mocks.mdx +++ b/api_docs/kbn_core_analytics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-analytics-server-mocks title: "@kbn/core-analytics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-analytics-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 be2d1eae0f2e4..8f067c39c29d0 100644 --- a/api_docs/kbn_core_application_browser.mdx +++ b/api_docs/kbn_core_application_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser title: "@kbn/core-application-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 be2418b620be0..b42ada75dcfb0 100644 --- a/api_docs/kbn_core_application_browser_internal.mdx +++ b/api_docs/kbn_core_application_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-internal title: "@kbn/core-application-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 467a9d73a712a..8199898b3376f 100644 --- a/api_docs/kbn_core_application_browser_mocks.mdx +++ b/api_docs/kbn_core_application_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-browser-mocks title: "@kbn/core-application-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 cc7b4b5fadcea..c934f99d8f5bb 100644 --- a/api_docs/kbn_core_application_common.mdx +++ b/api_docs/kbn_core_application_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-application-common title: "@kbn/core-application-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-application-common plugin -date: 2024-01-23 +date: 2024-01-24 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 dcc4fb30511a1..a11cab1fcd86b 100644 --- a/api_docs/kbn_core_apps_browser_internal.mdx +++ b/api_docs/kbn_core_apps_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-internal title: "@kbn/core-apps-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 0ee22a0467d1e..ececac90ecdd8 100644 --- a/api_docs/kbn_core_apps_browser_mocks.mdx +++ b/api_docs/kbn_core_apps_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-browser-mocks title: "@kbn/core-apps-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 3e66f4d459fb6..543e7bfc66f48 100644 --- a/api_docs/kbn_core_apps_server_internal.mdx +++ b/api_docs/kbn_core_apps_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-apps-server-internal title: "@kbn/core-apps-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-apps-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 3ba8329984750..5db1b94e7776f 100644 --- a/api_docs/kbn_core_base_browser_mocks.mdx +++ b/api_docs/kbn_core_base_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-browser-mocks title: "@kbn/core-base-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 1292ec0fcbeab..ae656ad5cca8a 100644 --- a/api_docs/kbn_core_base_common.mdx +++ b/api_docs/kbn_core_base_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-common title: "@kbn/core-base-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-common plugin -date: 2024-01-23 +date: 2024-01-24 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 646367c30e76c..1f36cd17f7749 100644 --- a/api_docs/kbn_core_base_server_internal.mdx +++ b/api_docs/kbn_core_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-internal title: "@kbn/core-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 7410132042055..8cea80fbd5230 100644 --- a/api_docs/kbn_core_base_server_mocks.mdx +++ b/api_docs/kbn_core_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-base-server-mocks title: "@kbn/core-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-base-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 7f2ac6bb979c1..0bd7bf7951d0a 100644 --- a/api_docs/kbn_core_capabilities_browser_mocks.mdx +++ b/api_docs/kbn_core_capabilities_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-browser-mocks title: "@kbn/core-capabilities-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 9d12b966c5991..42f732ca84897 100644 --- a/api_docs/kbn_core_capabilities_common.mdx +++ b/api_docs/kbn_core_capabilities_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-common title: "@kbn/core-capabilities-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-common plugin -date: 2024-01-23 +date: 2024-01-24 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 ee03236e8ed39..a4b86c6279265 100644 --- a/api_docs/kbn_core_capabilities_server.mdx +++ b/api_docs/kbn_core_capabilities_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server title: "@kbn/core-capabilities-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server plugin -date: 2024-01-23 +date: 2024-01-24 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 8ffdd62b19a89..0842c9ffad16b 100644 --- a/api_docs/kbn_core_capabilities_server_mocks.mdx +++ b/api_docs/kbn_core_capabilities_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-capabilities-server-mocks title: "@kbn/core-capabilities-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-capabilities-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-capabilities-server-mocks'] --- import kbnCoreCapabilitiesServerMocksObj from './kbn_core_capabilities_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 525fdc2c96b45..b1a33e54e39e4 100644 --- a/api_docs/kbn_core_chrome_browser.mdx +++ b/api_docs/kbn_core_chrome_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser title: "@kbn/core-chrome-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 baf0af22f25a0..7b20d28c04f76 100644 --- a/api_docs/kbn_core_chrome_browser_mocks.mdx +++ b/api_docs/kbn_core_chrome_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-chrome-browser-mocks title: "@kbn/core-chrome-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-chrome-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 e012529ffea9f..d3e91c2264141 100644 --- a/api_docs/kbn_core_config_server_internal.mdx +++ b/api_docs/kbn_core_config_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-config-server-internal title: "@kbn/core-config-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-config-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 96e02e8235e88..7c9f998a67f6a 100644 --- a/api_docs/kbn_core_custom_branding_browser.mdx +++ b/api_docs/kbn_core_custom_branding_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser title: "@kbn/core-custom-branding-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 bfd250040239e..6b70851c3cb04 100644 --- a/api_docs/kbn_core_custom_branding_browser_internal.mdx +++ b/api_docs/kbn_core_custom_branding_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-internal title: "@kbn/core-custom-branding-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 c8b76dc4ff8c1..32f769e89a822 100644 --- a/api_docs/kbn_core_custom_branding_browser_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-browser-mocks title: "@kbn/core-custom-branding-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 57680917a9186..18e56efcbce7e 100644 --- a/api_docs/kbn_core_custom_branding_common.mdx +++ b/api_docs/kbn_core_custom_branding_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-common title: "@kbn/core-custom-branding-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-common plugin -date: 2024-01-23 +date: 2024-01-24 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 b1570fed04bda..3ced2a36e0048 100644 --- a/api_docs/kbn_core_custom_branding_server.mdx +++ b/api_docs/kbn_core_custom_branding_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server title: "@kbn/core-custom-branding-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server plugin -date: 2024-01-23 +date: 2024-01-24 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 7610b29dfbcdf..88ffe5d3d5b14 100644 --- a/api_docs/kbn_core_custom_branding_server_internal.mdx +++ b/api_docs/kbn_core_custom_branding_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-internal title: "@kbn/core-custom-branding-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 f69ce7b21f75e..74856e15cf341 100644 --- a/api_docs/kbn_core_custom_branding_server_mocks.mdx +++ b/api_docs/kbn_core_custom_branding_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-custom-branding-server-mocks title: "@kbn/core-custom-branding-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-custom-branding-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 296bb73b3ab2c..8ba77357334dd 100644 --- a/api_docs/kbn_core_deprecations_browser.mdx +++ b/api_docs/kbn_core_deprecations_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser title: "@kbn/core-deprecations-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 1f791ca514c71..abbc17652023c 100644 --- a/api_docs/kbn_core_deprecations_browser_internal.mdx +++ b/api_docs/kbn_core_deprecations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-internal title: "@kbn/core-deprecations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 cd33b36b4ca93..28f38e501fc91 100644 --- a/api_docs/kbn_core_deprecations_browser_mocks.mdx +++ b/api_docs/kbn_core_deprecations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-browser-mocks title: "@kbn/core-deprecations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 e6db50c777f14..7db7ffa89c6ac 100644 --- a/api_docs/kbn_core_deprecations_common.mdx +++ b/api_docs/kbn_core_deprecations_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-common title: "@kbn/core-deprecations-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-common plugin -date: 2024-01-23 +date: 2024-01-24 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 2754917073d12..07619119fde3d 100644 --- a/api_docs/kbn_core_deprecations_server.mdx +++ b/api_docs/kbn_core_deprecations_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server title: "@kbn/core-deprecations-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server plugin -date: 2024-01-23 +date: 2024-01-24 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 5a1e80e7ab631..c94706e0489ed 100644 --- a/api_docs/kbn_core_deprecations_server_internal.mdx +++ b/api_docs/kbn_core_deprecations_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-internal title: "@kbn/core-deprecations-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 f2a9b1f61463d..64818dcd358e0 100644 --- a/api_docs/kbn_core_deprecations_server_mocks.mdx +++ b/api_docs/kbn_core_deprecations_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-deprecations-server-mocks title: "@kbn/core-deprecations-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-deprecations-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 f8bbae1d4d7f0..9bc34c766740e 100644 --- a/api_docs/kbn_core_doc_links_browser.mdx +++ b/api_docs/kbn_core_doc_links_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser title: "@kbn/core-doc-links-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 3f04576d2a544..071100fed6688 100644 --- a/api_docs/kbn_core_doc_links_browser_mocks.mdx +++ b/api_docs/kbn_core_doc_links_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-browser-mocks title: "@kbn/core-doc-links-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 a96a4229e7599..1d64f4f947fcf 100644 --- a/api_docs/kbn_core_doc_links_server.mdx +++ b/api_docs/kbn_core_doc_links_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server title: "@kbn/core-doc-links-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server plugin -date: 2024-01-23 +date: 2024-01-24 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 b2a607c1c40e1..2bd1bbd320bba 100644 --- a/api_docs/kbn_core_doc_links_server_mocks.mdx +++ b/api_docs/kbn_core_doc_links_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-doc-links-server-mocks title: "@kbn/core-doc-links-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-doc-links-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 abf4dbaf0088c..6ca37d933d605 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-internal title: "@kbn/core-elasticsearch-client-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 6b4452cd6f126..1782cf6b644a7 100644 --- a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-client-server-mocks title: "@kbn/core-elasticsearch-client-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-client-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 635c50f74231c..783901057cfa2 100644 --- a/api_docs/kbn_core_elasticsearch_server.mdx +++ b/api_docs/kbn_core_elasticsearch_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server title: "@kbn/core-elasticsearch-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server plugin -date: 2024-01-23 +date: 2024-01-24 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 1a2c1956f1760..893698704aa8a 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.mdx +++ b/api_docs/kbn_core_elasticsearch_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-internal title: "@kbn/core-elasticsearch-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 a74f1cc268994..86052153114ef 100644 --- a/api_docs/kbn_core_elasticsearch_server_mocks.mdx +++ b/api_docs/kbn_core_elasticsearch_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-elasticsearch-server-mocks title: "@kbn/core-elasticsearch-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-elasticsearch-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 c187310650326..a75d688e7a694 100644 --- a/api_docs/kbn_core_environment_server_internal.mdx +++ b/api_docs/kbn_core_environment_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-internal title: "@kbn/core-environment-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 05460d338b891..646850676f7e7 100644 --- a/api_docs/kbn_core_environment_server_mocks.mdx +++ b/api_docs/kbn_core_environment_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-environment-server-mocks title: "@kbn/core-environment-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-environment-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 591ca09133731..4855d3d293882 100644 --- a/api_docs/kbn_core_execution_context_browser.mdx +++ b/api_docs/kbn_core_execution_context_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser title: "@kbn/core-execution-context-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 0e9f0c0c4c02c..e4fa18ac3e82d 100644 --- a/api_docs/kbn_core_execution_context_browser_internal.mdx +++ b/api_docs/kbn_core_execution_context_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-internal title: "@kbn/core-execution-context-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 ec8a40dfdea70..f33a5799a3678 100644 --- a/api_docs/kbn_core_execution_context_browser_mocks.mdx +++ b/api_docs/kbn_core_execution_context_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-browser-mocks title: "@kbn/core-execution-context-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 ce4f7f855bf4a..c298619a3b36b 100644 --- a/api_docs/kbn_core_execution_context_common.mdx +++ b/api_docs/kbn_core_execution_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-common title: "@kbn/core-execution-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-common plugin -date: 2024-01-23 +date: 2024-01-24 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 38f404ad0b4e1..cb1a07f687aad 100644 --- a/api_docs/kbn_core_execution_context_server.mdx +++ b/api_docs/kbn_core_execution_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server title: "@kbn/core-execution-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server plugin -date: 2024-01-23 +date: 2024-01-24 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 4f3c0bff135f6..3db071b0f047f 100644 --- a/api_docs/kbn_core_execution_context_server_internal.mdx +++ b/api_docs/kbn_core_execution_context_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-internal title: "@kbn/core-execution-context-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 785dec5474fe3..6bb9f2774cc0a 100644 --- a/api_docs/kbn_core_execution_context_server_mocks.mdx +++ b/api_docs/kbn_core_execution_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-execution-context-server-mocks title: "@kbn/core-execution-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-execution-context-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 09f105c2cac52..9f1db0f4e0791 100644 --- a/api_docs/kbn_core_fatal_errors_browser.mdx +++ b/api_docs/kbn_core_fatal_errors_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser title: "@kbn/core-fatal-errors-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 20e988a74581e..d4dde58775fd4 100644 --- a/api_docs/kbn_core_fatal_errors_browser_mocks.mdx +++ b/api_docs/kbn_core_fatal_errors_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-fatal-errors-browser-mocks title: "@kbn/core-fatal-errors-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-fatal-errors-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 c23a2e2882e4c..b4d169390a73f 100644 --- a/api_docs/kbn_core_http_browser.mdx +++ b/api_docs/kbn_core_http_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser title: "@kbn/core-http-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 c039401f82705..4b49039c5fd17 100644 --- a/api_docs/kbn_core_http_browser_internal.mdx +++ b/api_docs/kbn_core_http_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-internal title: "@kbn/core-http-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 fe706df6fc8bd..961fd8604eee7 100644 --- a/api_docs/kbn_core_http_browser_mocks.mdx +++ b/api_docs/kbn_core_http_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-browser-mocks title: "@kbn/core-http-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 a6300c18fd67e..ce2c85c045746 100644 --- a/api_docs/kbn_core_http_common.mdx +++ b/api_docs/kbn_core_http_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-common title: "@kbn/core-http-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-common plugin -date: 2024-01-23 +date: 2024-01-24 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 99fee49c8dff9..509a4a9359784 100644 --- a/api_docs/kbn_core_http_context_server_mocks.mdx +++ b/api_docs/kbn_core_http_context_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-context-server-mocks title: "@kbn/core-http-context-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-context-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 6606ee3326401..9906b839a1cad 100644 --- a/api_docs/kbn_core_http_request_handler_context_server.mdx +++ b/api_docs/kbn_core_http_request_handler_context_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-request-handler-context-server title: "@kbn/core-http-request-handler-context-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-request-handler-context-server plugin -date: 2024-01-23 +date: 2024-01-24 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 e49ab32af1d25..652aa076b8df8 100644 --- a/api_docs/kbn_core_http_resources_server.mdx +++ b/api_docs/kbn_core_http_resources_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server title: "@kbn/core-http-resources-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server plugin -date: 2024-01-23 +date: 2024-01-24 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 a5424394c9b5c..1892860f5e8d3 100644 --- a/api_docs/kbn_core_http_resources_server_internal.mdx +++ b/api_docs/kbn_core_http_resources_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-internal title: "@kbn/core-http-resources-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 c5eb418a5539b..fd0d9570d570d 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.mdx +++ b/api_docs/kbn_core_http_resources_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-resources-server-mocks title: "@kbn/core-http-resources-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-resources-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-resources-server-mocks'] --- import kbnCoreHttpResourcesServerMocksObj from './kbn_core_http_resources_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 2a1841091153d..3e99f6c2f1407 100644 --- a/api_docs/kbn_core_http_router_server_internal.mdx +++ b/api_docs/kbn_core_http_router_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-internal title: "@kbn/core-http-router-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 1e809e184aaa2..882655db18cb3 100644 --- a/api_docs/kbn_core_http_router_server_mocks.mdx +++ b/api_docs/kbn_core_http_router_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-router-server-mocks title: "@kbn/core-http-router-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-router-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-mocks'] --- import kbnCoreHttpRouterServerMocksObj from './kbn_core_http_router_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_http_server.devdocs.json b/api_docs/kbn_core_http_server.devdocs.json index 8a8f02ff1cc12..fabf88dba31ae 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -4664,6 +4664,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/router.ts" @@ -7050,6 +7054,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/router.ts" @@ -8340,6 +8348,10 @@ "plugin": "ftrApis", "path": "src/plugins/ftr_apis/server/routes/kbn_client_so/update.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/router.ts" @@ -13938,6 +13950,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.test.ts" @@ -14261,6 +14277,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "ecsDataQualityDashboard", "path": "x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/server.ts" @@ -15200,6 +15220,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.test.ts" diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 5cd2bde451e56..d115d07c3d35e 100644 --- a/api_docs/kbn_core_http_server.mdx +++ b/api_docs/kbn_core_http_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server title: "@kbn/core-http-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; diff --git a/api_docs/kbn_core_http_server_internal.devdocs.json b/api_docs/kbn_core_http_server_internal.devdocs.json index 777bf0f988ab2..7b138870b2d1e 100644 --- a/api_docs/kbn_core_http_server_internal.devdocs.json +++ b/api_docs/kbn_core_http_server_internal.devdocs.json @@ -535,7 +535,7 @@ "signature": [ "{ versionResolution: ", "HandlerResolutionStrategy", - "; strictClientVersionCheck: boolean; }" + "; strictClientVersionCheck: boolean; useVersionResolutionStrategyForInternalPaths: string[]; }" ], "path": "packages/core/http/core-http-server-internal/src/http_config.ts", "deprecated": false, @@ -893,7 +893,7 @@ "label": "HttpConfigType", "description": [], "signature": [ - "{ readonly uuid?: string | undefined; readonly basePath?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly name: string; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; readonly host: string; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly port: number; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly cdn: Readonly<{ url?: string | undefined; } & {}>; readonly securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ", + "{ readonly uuid?: string | undefined; readonly basePath?: string | undefined; readonly publicBaseUrl?: string | undefined; readonly name: string; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; redirectHttpFromPort?: number | undefined; } & { enabled: boolean; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; readonly host: string; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly port: number; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; useVersionResolutionStrategyForInternalPaths: string[]; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly cdn: Readonly<{ url?: string | undefined; } & {}>; readonly securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; readonly customResponseHeaders: Record; readonly maxPayload: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_core_http_server_internal.mdx b/api_docs/kbn_core_http_server_internal.mdx index 26f6f5451f97e..c6dc758599e9a 100644 --- a/api_docs/kbn_core_http_server_internal.mdx +++ b/api_docs/kbn_core_http_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-internal title: "@kbn/core-http-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 c132c146a798a..e3dceb95217ad 100644 --- a/api_docs/kbn_core_http_server_mocks.devdocs.json +++ b/api_docs/kbn_core_http_server_mocks.devdocs.json @@ -27,7 +27,7 @@ "label": "createConfigService", "description": [], "signature": [ - "({ server, externalUrl, csp, }?: Partial<{ server: Partial; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; port: number; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | undefined; } & {}>; securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ", + "({ server, externalUrl, csp, }?: Partial<{ server: Partial; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; port: number; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; useVersionResolutionStrategyForInternalPaths: string[]; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | undefined; } & {}>; securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -64,7 +64,7 @@ "label": "{\n server,\n externalUrl,\n csp,\n}", "description": [], "signature": [ - "Partial<{ server: Partial; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; port: number; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | undefined; } & {}>; securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ", + "Partial<{ server: Partial; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; port: number; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; useVersionResolutionStrategyForInternalPaths: string[]; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | undefined; } & {}>; securityResponseHeaders: Readonly<{} & { referrerPolicy: \"origin\" | \"no-referrer\" | \"no-referrer-when-downgrade\" | \"origin-when-cross-origin\" | \"same-origin\" | \"strict-origin\" | \"strict-origin-when-cross-origin\" | \"unsafe-url\" | null; strictTransportSecurity: string | null; xContentTypeOptions: \"nosniff\" | null; permissionsPolicy: string | null; disableEmbedding: boolean; crossOriginOpenerPolicy: \"same-origin\" | \"unsafe-none\" | \"same-origin-allow-popups\" | null; }>; customResponseHeaders: Record; maxPayload: ", { "pluginId": "@kbn/config-schema", "scope": "common", diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index 1558401315855..5da88e2b75c35 100644 --- a/api_docs/kbn_core_http_server_mocks.mdx +++ b/api_docs/kbn_core_http_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-http-server-mocks title: "@kbn/core-http-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-http-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server-mocks'] --- import kbnCoreHttpServerMocksObj from './kbn_core_http_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_i18n_browser.mdx b/api_docs/kbn_core_i18n_browser.mdx index 289f63262e36d..d1b765fe58891 100644 --- a/api_docs/kbn_core_i18n_browser.mdx +++ b/api_docs/kbn_core_i18n_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser title: "@kbn/core-i18n-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 8927cd603789f..0f5838681ea3b 100644 --- a/api_docs/kbn_core_i18n_browser_mocks.mdx +++ b/api_docs/kbn_core_i18n_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-browser-mocks title: "@kbn/core-i18n-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 34ae3809261f4..b14d47afb5513 100644 --- a/api_docs/kbn_core_i18n_server.mdx +++ b/api_docs/kbn_core_i18n_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server title: "@kbn/core-i18n-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server plugin -date: 2024-01-23 +date: 2024-01-24 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 7a8739652e914..c073377f6b699 100644 --- a/api_docs/kbn_core_i18n_server_internal.mdx +++ b/api_docs/kbn_core_i18n_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-internal title: "@kbn/core-i18n-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 dd0a6c67bbe0e..8a4dd2b6d58fa 100644 --- a/api_docs/kbn_core_i18n_server_mocks.mdx +++ b/api_docs/kbn_core_i18n_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-i18n-server-mocks title: "@kbn/core-i18n-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-i18n-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 db5c6824125bd..10b797ea17091 100644 --- a/api_docs/kbn_core_injected_metadata_browser_mocks.mdx +++ b/api_docs/kbn_core_injected_metadata_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-injected-metadata-browser-mocks title: "@kbn/core-injected-metadata-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-injected-metadata-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 59f0f0d2ce1e6..97481289f1738 100644 --- a/api_docs/kbn_core_integrations_browser_internal.mdx +++ b/api_docs/kbn_core_integrations_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-internal title: "@kbn/core-integrations-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 6cfa1b20b4c8e..7ddce5f265709 100644 --- a/api_docs/kbn_core_integrations_browser_mocks.mdx +++ b/api_docs/kbn_core_integrations_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-integrations-browser-mocks title: "@kbn/core-integrations-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-integrations-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 0dd1dad5b8220..4de761d77338e 100644 --- a/api_docs/kbn_core_lifecycle_browser.mdx +++ b/api_docs/kbn_core_lifecycle_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser title: "@kbn/core-lifecycle-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 3747b17db9680..aa41868646045 100644 --- a/api_docs/kbn_core_lifecycle_browser_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-browser-mocks title: "@kbn/core-lifecycle-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 ea144dfb33094..2ea94e4e0dc53 100644 --- a/api_docs/kbn_core_lifecycle_server.mdx +++ b/api_docs/kbn_core_lifecycle_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server title: "@kbn/core-lifecycle-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server plugin -date: 2024-01-23 +date: 2024-01-24 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 88f57eedef897..11fb6c2f324bf 100644 --- a/api_docs/kbn_core_lifecycle_server_mocks.mdx +++ b/api_docs/kbn_core_lifecycle_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-lifecycle-server-mocks title: "@kbn/core-lifecycle-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-lifecycle-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 f5478369bf40c..43932e313d8a1 100644 --- a/api_docs/kbn_core_logging_browser_mocks.mdx +++ b/api_docs/kbn_core_logging_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-browser-mocks title: "@kbn/core-logging-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-browser-mocks'] --- import kbnCoreLoggingBrowserMocksObj from './kbn_core_logging_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_logging_common_internal.mdx b/api_docs/kbn_core_logging_common_internal.mdx index 90694e04655ef..999400459e367 100644 --- a/api_docs/kbn_core_logging_common_internal.mdx +++ b/api_docs/kbn_core_logging_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-common-internal title: "@kbn/core-logging-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-common-internal plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-common-internal'] --- import kbnCoreLoggingCommonInternalObj from './kbn_core_logging_common_internal.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server.mdx b/api_docs/kbn_core_logging_server.mdx index 398b7c7a6d0f5..d96e179504375 100644 --- a/api_docs/kbn_core_logging_server.mdx +++ b/api_docs/kbn_core_logging_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server title: "@kbn/core-logging-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-logging-server'] --- import kbnCoreLoggingServerObj from './kbn_core_logging_server.devdocs.json'; diff --git a/api_docs/kbn_core_logging_server_internal.mdx b/api_docs/kbn_core_logging_server_internal.mdx index 71c3dec04a169..0dcb01955c134 100644 --- a/api_docs/kbn_core_logging_server_internal.mdx +++ b/api_docs/kbn_core_logging_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-internal title: "@kbn/core-logging-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 8c267a4e6e5f5..d733cfa070c58 100644 --- a/api_docs/kbn_core_logging_server_mocks.mdx +++ b/api_docs/kbn_core_logging_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-logging-server-mocks title: "@kbn/core-logging-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-logging-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 4dead58ab5e8a..ef926a6c58f0c 100644 --- a/api_docs/kbn_core_metrics_collectors_server_internal.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-internal title: "@kbn/core-metrics-collectors-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 f26d80851d0f1..9a7e392e1bfd6 100644 --- a/api_docs/kbn_core_metrics_collectors_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_collectors_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-collectors-server-mocks title: "@kbn/core-metrics-collectors-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-collectors-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 3060bd2fb0021..5f2f739c69721 100644 --- a/api_docs/kbn_core_metrics_server.mdx +++ b/api_docs/kbn_core_metrics_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server title: "@kbn/core-metrics-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server plugin -date: 2024-01-23 +date: 2024-01-24 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 a0cebb7ce7d85..1e82b767b247e 100644 --- a/api_docs/kbn_core_metrics_server_internal.mdx +++ b/api_docs/kbn_core_metrics_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-internal title: "@kbn/core-metrics-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 731c5663ef339..54311bbe8fe5e 100644 --- a/api_docs/kbn_core_metrics_server_mocks.mdx +++ b/api_docs/kbn_core_metrics_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-metrics-server-mocks title: "@kbn/core-metrics-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-metrics-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 988455782af4b..0325387c5dd5c 100644 --- a/api_docs/kbn_core_mount_utils_browser.mdx +++ b/api_docs/kbn_core_mount_utils_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-mount-utils-browser title: "@kbn/core-mount-utils-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-mount-utils-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 ef04a6cb249f5..cd65b1d919998 100644 --- a/api_docs/kbn_core_node_server.mdx +++ b/api_docs/kbn_core_node_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server title: "@kbn/core-node-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server plugin -date: 2024-01-23 +date: 2024-01-24 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 23f08569e7065..6506f47fa44f8 100644 --- a/api_docs/kbn_core_node_server_internal.mdx +++ b/api_docs/kbn_core_node_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-internal title: "@kbn/core-node-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 8cf2cb12df399..e0125c59811d4 100644 --- a/api_docs/kbn_core_node_server_mocks.mdx +++ b/api_docs/kbn_core_node_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-node-server-mocks title: "@kbn/core-node-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-node-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 bf73c5b2fa8ac..0bf71cd1143b7 100644 --- a/api_docs/kbn_core_notifications_browser.mdx +++ b/api_docs/kbn_core_notifications_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser title: "@kbn/core-notifications-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 228e7c69cc188..0b16d67b5d754 100644 --- a/api_docs/kbn_core_notifications_browser_internal.mdx +++ b/api_docs/kbn_core_notifications_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-internal title: "@kbn/core-notifications-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 5614bbe675670..1b6a28b2ab6f6 100644 --- a/api_docs/kbn_core_notifications_browser_mocks.mdx +++ b/api_docs/kbn_core_notifications_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-notifications-browser-mocks title: "@kbn/core-notifications-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-notifications-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 368df12acd9a5..af70d9f7ae887 100644 --- a/api_docs/kbn_core_overlays_browser.mdx +++ b/api_docs/kbn_core_overlays_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser title: "@kbn/core-overlays-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 9913748c5509d..0dd939d3e8007 100644 --- a/api_docs/kbn_core_overlays_browser_internal.mdx +++ b/api_docs/kbn_core_overlays_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-internal title: "@kbn/core-overlays-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 7e90d968ae85e..fa48b5bddfae2 100644 --- a/api_docs/kbn_core_overlays_browser_mocks.mdx +++ b/api_docs/kbn_core_overlays_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-overlays-browser-mocks title: "@kbn/core-overlays-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-overlays-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 d240594b79cc7..3ba5f292e4f63 100644 --- a/api_docs/kbn_core_plugins_browser.mdx +++ b/api_docs/kbn_core_plugins_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser title: "@kbn/core-plugins-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 216911a415961..3276fc97e1ba8 100644 --- a/api_docs/kbn_core_plugins_browser_mocks.mdx +++ b/api_docs/kbn_core_plugins_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-browser-mocks title: "@kbn/core-plugins-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 49165798c7010..29fc6de26dc28 100644 --- a/api_docs/kbn_core_plugins_contracts_browser.mdx +++ b/api_docs/kbn_core_plugins_contracts_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-browser title: "@kbn/core-plugins-contracts-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 893f5b4c9c0cb..fbe70dc394f8c 100644 --- a/api_docs/kbn_core_plugins_contracts_server.mdx +++ b/api_docs/kbn_core_plugins_contracts_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-contracts-server title: "@kbn/core-plugins-contracts-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-contracts-server plugin -date: 2024-01-23 +date: 2024-01-24 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 51534aafbdcb1..57e53cb4f8cb6 100644 --- a/api_docs/kbn_core_plugins_server.mdx +++ b/api_docs/kbn_core_plugins_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server title: "@kbn/core-plugins-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server plugin -date: 2024-01-23 +date: 2024-01-24 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 f2c59c7a3c92b..b62d190b834f1 100644 --- a/api_docs/kbn_core_plugins_server_mocks.mdx +++ b/api_docs/kbn_core_plugins_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-plugins-server-mocks title: "@kbn/core-plugins-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-plugins-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 4573025702324..752d5a3394dd8 100644 --- a/api_docs/kbn_core_preboot_server.mdx +++ b/api_docs/kbn_core_preboot_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server title: "@kbn/core-preboot-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server plugin -date: 2024-01-23 +date: 2024-01-24 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 e9eb6e5005765..5e7ea90436bb4 100644 --- a/api_docs/kbn_core_preboot_server_mocks.mdx +++ b/api_docs/kbn_core_preboot_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-preboot-server-mocks title: "@kbn/core-preboot-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-preboot-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 88351f7faf62d..99dfd8c5a94a4 100644 --- a/api_docs/kbn_core_rendering_browser_mocks.mdx +++ b/api_docs/kbn_core_rendering_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-browser-mocks title: "@kbn/core-rendering-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 468adb7eb6393..2ef238e934cfd 100644 --- a/api_docs/kbn_core_rendering_server_internal.mdx +++ b/api_docs/kbn_core_rendering_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-internal title: "@kbn/core-rendering-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 f132034733167..68b37306ffd83 100644 --- a/api_docs/kbn_core_rendering_server_mocks.mdx +++ b/api_docs/kbn_core_rendering_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-rendering-server-mocks title: "@kbn/core-rendering-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-rendering-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 f2decf40a3263..67592699d86b8 100644 --- a/api_docs/kbn_core_root_server_internal.mdx +++ b/api_docs/kbn_core_root_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-root-server-internal title: "@kbn/core-root-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-root-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 63e1100763efd..a2051958b1d65 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.mdx +++ b/api_docs/kbn_core_saved_objects_api_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-browser title: "@kbn/core-saved-objects-api-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-browser plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.devdocs.json b/api_docs/kbn_core_saved_objects_api_server.devdocs.json index cba6a38ce7957..606ddff1badbf 100644 --- a/api_docs/kbn_core_saved_objects_api_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_api_server.devdocs.json @@ -2746,6 +2746,10 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/types.ts" }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 58836fafd08a3..d0ae3060e0b9f 100644 --- a/api_docs/kbn_core_saved_objects_api_server.mdx +++ b/api_docs/kbn_core_saved_objects_api_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server title: "@kbn/core-saved-objects-api-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server plugin -date: 2024-01-23 +date: 2024-01-24 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 9dd18c35727ff..56489b6588d3f 100644 --- a/api_docs/kbn_core_saved_objects_api_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_api_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-api-server-mocks title: "@kbn/core-saved-objects-api-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-api-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 643cb2b2f47d6..88ccdb2dfc0dc 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-internal title: "@kbn/core-saved-objects-base-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 4b622e8a2698d..63aa72f7567fb 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-base-server-mocks title: "@kbn/core-saved-objects-base-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-base-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 7064c70b0ee2a..094f436f6147a 100644 --- a/api_docs/kbn_core_saved_objects_browser.mdx +++ b/api_docs/kbn_core_saved_objects_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser title: "@kbn/core-saved-objects-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 dd8431db37a00..0ce5eac623955 100644 --- a/api_docs/kbn_core_saved_objects_browser_internal.mdx +++ b/api_docs/kbn_core_saved_objects_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-internal title: "@kbn/core-saved-objects-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 ba61daeeae140..0e4a62e729734 100644 --- a/api_docs/kbn_core_saved_objects_browser_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-browser-mocks title: "@kbn/core-saved-objects-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-browser-mocks'] --- import kbnCoreSavedObjectsBrowserMocksObj from './kbn_core_saved_objects_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index 15ca1b064f6e1..46a7bf12ef23c 100644 --- a/api_docs/kbn_core_saved_objects_common.mdx +++ b/api_docs/kbn_core_saved_objects_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-common title: "@kbn/core-saved-objects-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-common plugin -date: 2024-01-23 +date: 2024-01-24 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 47b38670beb21..c7c7c09dece25 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-internal title: "@kbn/core-saved-objects-import-export-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 b33a29d4ae0b7..703eb783287b8 100644 --- a/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_import_export_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-import-export-server-mocks title: "@kbn/core-saved-objects-import-export-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-import-export-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 aeb47057cca52..9f93bc67c1012 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-internal title: "@kbn/core-saved-objects-migration-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 798ca89953d3e..37a79e3f33f25 100644 --- a/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_migration_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-migration-server-mocks title: "@kbn/core-saved-objects-migration-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-migration-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-mocks'] --- import kbnCoreSavedObjectsMigrationServerMocksObj from './kbn_core_saved_objects_migration_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_server.devdocs.json b/api_docs/kbn_core_saved_objects_server.devdocs.json index 4625cbdfa68fb..87524176d7202 100644 --- a/api_docs/kbn_core_saved_objects_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_server.devdocs.json @@ -6211,6 +6211,10 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/types.ts" }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index da37fbb1b1a67..dc1b79d5196d8 100644 --- a/api_docs/kbn_core_saved_objects_server.mdx +++ b/api_docs/kbn_core_saved_objects_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server title: "@kbn/core-saved-objects-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server plugin -date: 2024-01-23 +date: 2024-01-24 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 9c10eb00f9259..5afc5f63bca81 100644 --- a/api_docs/kbn_core_saved_objects_server_internal.mdx +++ b/api_docs/kbn_core_saved_objects_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-internal title: "@kbn/core-saved-objects-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 c12d253c2b17b..21d5d1aec8a2e 100644 --- a/api_docs/kbn_core_saved_objects_server_mocks.mdx +++ b/api_docs/kbn_core_saved_objects_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-server-mocks title: "@kbn/core-saved-objects-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 dfbebb22c594a..3f1710d7de77d 100644 --- a/api_docs/kbn_core_saved_objects_utils_server.mdx +++ b/api_docs/kbn_core_saved_objects_utils_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-saved-objects-utils-server title: "@kbn/core-saved-objects-utils-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-saved-objects-utils-server plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-utils-server'] --- import kbnCoreSavedObjectsUtilsServerObj from './kbn_core_saved_objects_utils_server.devdocs.json'; diff --git a/api_docs/kbn_core_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 8252e710b19e4..3e993b2703890 100644 --- a/api_docs/kbn_core_status_common.mdx +++ b/api_docs/kbn_core_status_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common title: "@kbn/core-status-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common plugin -date: 2024-01-23 +date: 2024-01-24 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 28dc3342083ed..5800c5162a985 100644 --- a/api_docs/kbn_core_status_common_internal.mdx +++ b/api_docs/kbn_core_status_common_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-common-internal title: "@kbn/core-status-common-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-common-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 5b7662669aa99..3e67aacad86b5 100644 --- a/api_docs/kbn_core_status_server.mdx +++ b/api_docs/kbn_core_status_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server title: "@kbn/core-status-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server plugin -date: 2024-01-23 +date: 2024-01-24 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 0a428228acd04..c9794b948d720 100644 --- a/api_docs/kbn_core_status_server_internal.mdx +++ b/api_docs/kbn_core_status_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-internal title: "@kbn/core-status-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 c45aece71415a..60d2ca777733f 100644 --- a/api_docs/kbn_core_status_server_mocks.mdx +++ b/api_docs/kbn_core_status_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-status-server-mocks title: "@kbn/core-status-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-status-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 2563e747e255c..2024748bcd5ad 100644 --- a/api_docs/kbn_core_test_helpers_deprecations_getters.mdx +++ b/api_docs/kbn_core_test_helpers_deprecations_getters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-deprecations-getters title: "@kbn/core-test-helpers-deprecations-getters" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-deprecations-getters plugin -date: 2024-01-23 +date: 2024-01-24 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 a7676f2c068e0..6fa46f9f8c180 100644 --- a/api_docs/kbn_core_test_helpers_http_setup_browser.mdx +++ b/api_docs/kbn_core_test_helpers_http_setup_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-http-setup-browser title: "@kbn/core-test-helpers-http-setup-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-http-setup-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 67d3e48b7563d..5eedcee0d3a89 100644 --- a/api_docs/kbn_core_test_helpers_kbn_server.mdx +++ b/api_docs/kbn_core_test_helpers_kbn_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-kbn-server title: "@kbn/core-test-helpers-kbn-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-kbn-server plugin -date: 2024-01-23 +date: 2024-01-24 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 81570378aac1b..c545858118c14 100644 --- a/api_docs/kbn_core_test_helpers_model_versions.mdx +++ b/api_docs/kbn_core_test_helpers_model_versions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-model-versions title: "@kbn/core-test-helpers-model-versions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-model-versions plugin -date: 2024-01-23 +date: 2024-01-24 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 8ee60f4572c1a..1ed59a6d0a3ff 100644 --- a/api_docs/kbn_core_test_helpers_so_type_serializer.mdx +++ b/api_docs/kbn_core_test_helpers_so_type_serializer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-so-type-serializer title: "@kbn/core-test-helpers-so-type-serializer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-so-type-serializer plugin -date: 2024-01-23 +date: 2024-01-24 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 69c89f4257bb2..e4deac4c82acf 100644 --- a/api_docs/kbn_core_test_helpers_test_utils.mdx +++ b/api_docs/kbn_core_test_helpers_test_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-test-helpers-test-utils title: "@kbn/core-test-helpers-test-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-test-helpers-test-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 0ce2a9aff6bbb..c0d6963b85456 100644 --- a/api_docs/kbn_core_theme_browser.mdx +++ b/api_docs/kbn_core_theme_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser title: "@kbn/core-theme-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 9d9dd339e33dc..07065756c3056 100644 --- a/api_docs/kbn_core_theme_browser_mocks.mdx +++ b/api_docs/kbn_core_theme_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-theme-browser-mocks title: "@kbn/core-theme-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-theme-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 359724daf5594..230985220eaa4 100644 --- a/api_docs/kbn_core_ui_settings_browser.mdx +++ b/api_docs/kbn_core_ui_settings_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser title: "@kbn/core-ui-settings-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 8b9e541468d34..abc7efe336aa1 100644 --- a/api_docs/kbn_core_ui_settings_browser_internal.mdx +++ b/api_docs/kbn_core_ui_settings_browser_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-internal title: "@kbn/core-ui-settings-browser-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 f6e7217de6f9e..40b0be84d3b24 100644 --- a/api_docs/kbn_core_ui_settings_browser_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_browser_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-browser-mocks title: "@kbn/core-ui-settings-browser-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-browser-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 61e4da521e354..45d48b6658771 100644 --- a/api_docs/kbn_core_ui_settings_common.mdx +++ b/api_docs/kbn_core_ui_settings_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-common title: "@kbn/core-ui-settings-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-common plugin -date: 2024-01-23 +date: 2024-01-24 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 7c6ff567b2c5e..49c3a6c540871 100644 --- a/api_docs/kbn_core_ui_settings_server.mdx +++ b/api_docs/kbn_core_ui_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server title: "@kbn/core-ui-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server plugin -date: 2024-01-23 +date: 2024-01-24 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 0748b925eaa76..23cbdb50e298f 100644 --- a/api_docs/kbn_core_ui_settings_server_internal.mdx +++ b/api_docs/kbn_core_ui_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-internal title: "@kbn/core-ui-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 9614c89c3ceef..ef89fa19e5291 100644 --- a/api_docs/kbn_core_ui_settings_server_mocks.mdx +++ b/api_docs/kbn_core_ui_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-ui-settings-server-mocks title: "@kbn/core-ui-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-ui-settings-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 8bfde94272f7a..b83cadd85bfea 100644 --- a/api_docs/kbn_core_usage_data_server.mdx +++ b/api_docs/kbn_core_usage_data_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server title: "@kbn/core-usage-data-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server plugin -date: 2024-01-23 +date: 2024-01-24 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 4aea4546ad533..507428535a3e6 100644 --- a/api_docs/kbn_core_usage_data_server_internal.mdx +++ b/api_docs/kbn_core_usage_data_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-internal title: "@kbn/core-usage-data-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 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 ea0a0f36e0e6a..2189cd15ebd61 100644 --- a/api_docs/kbn_core_usage_data_server_mocks.mdx +++ b/api_docs/kbn_core_usage_data_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-usage-data-server-mocks title: "@kbn/core-usage-data-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-usage-data-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-usage-data-server-mocks'] --- import kbnCoreUsageDataServerMocksObj from './kbn_core_usage_data_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index 695a9cdeff84d..43f08c22b026c 100644 --- a/api_docs/kbn_core_user_settings_server.mdx +++ b/api_docs/kbn_core_user_settings_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server title: "@kbn/core-user-settings-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server'] --- import kbnCoreUserSettingsServerObj from './kbn_core_user_settings_server.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index 7507b4a9f8ec2..187588ee3fa96 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_user_settings_server_mocks.mdx b/api_docs/kbn_core_user_settings_server_mocks.mdx index 386fc9c1857de..d0f6bbda11aed 100644 --- a/api_docs/kbn_core_user_settings_server_mocks.mdx +++ b/api_docs/kbn_core_user_settings_server_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-mocks title: "@kbn/core-user-settings-server-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 5b2e63a9eacaf..083af260ffacf 100644 --- a/api_docs/kbn_crypto.mdx +++ b/api_docs/kbn_crypto.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto title: "@kbn/crypto" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto plugin -date: 2024-01-23 +date: 2024-01-24 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 a6d4eeafc6d03..e13af67c0a3db 100644 --- a/api_docs/kbn_crypto_browser.mdx +++ b/api_docs/kbn_crypto_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-crypto-browser title: "@kbn/crypto-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/crypto-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 5c21072088ac4..bb9561cbedd1f 100644 --- a/api_docs/kbn_custom_icons.mdx +++ b/api_docs/kbn_custom_icons.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-icons title: "@kbn/custom-icons" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-icons plugin -date: 2024-01-23 +date: 2024-01-24 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 d3f258055109e..cd67b6b80d57b 100644 --- a/api_docs/kbn_custom_integrations.mdx +++ b/api_docs/kbn_custom_integrations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-custom-integrations title: "@kbn/custom-integrations" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/custom-integrations plugin -date: 2024-01-23 +date: 2024-01-24 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 107b523aa9231..2d07329797421 100644 --- a/api_docs/kbn_cypress_config.mdx +++ b/api_docs/kbn_cypress_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-cypress-config title: "@kbn/cypress-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/cypress-config plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_forge.devdocs.json b/api_docs/kbn_data_forge.devdocs.json new file mode 100644 index 0000000000000..e0ddd5be65ed6 --- /dev/null +++ b/api_docs/kbn_data_forge.devdocs.json @@ -0,0 +1,474 @@ +{ + "id": "@kbn/data-forge", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup", + "type": "Function", + "tags": [], + "label": "cleanup", + "description": [], + "signature": [ + "({\n client,\n config: partialConfig,\n logger,\n}: { client: ", + "default", + "; config: { elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }; logger: ", + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + }, + "; }) => Promise" + ], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup.$1", + "type": "Object", + "tags": [], + "label": "{\n client,\n config: partialConfig,\n logger,\n}", + "description": [], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup.$1.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup.$1.config", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup.$1.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + } + ], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cli", + "type": "Function", + "tags": [], + "label": "cli", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "x-pack/packages/kbn-data-forge/src/cli.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.createConfig", + "type": "Function", + "tags": [], + "label": "createConfig", + "description": [], + "signature": [ + "(partialConfig: { elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }) => { elasticsearch: { host: string; username: string; password: string; apiKey: string; installKibanaUser: boolean; }; kibana: { host: string; username: string; password: string; installAssets: boolean; }; indexing: { dataset: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\"; scenario: string; interval: number; eventsPerCycle: number; payloadSize: number; concurrency: number; reduceWeekendTrafficBy: number; ephemeralProjectIds: number; }; schedule: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[]; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/lib/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.createConfig.$1", + "type": "Object", + "tags": [], + "label": "partialConfig", + "description": [], + "signature": [ + "{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/lib/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate", + "type": "Function", + "tags": [], + "label": "generate", + "description": [], + "signature": [ + "({ client, config: partialConfig, logger, }: { client: ", + "default", + "; config: { elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }; logger: ", + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + }, + "; }) => Promise" + ], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate.$1", + "type": "Object", + "tags": [], + "label": "{\n client,\n config: partialConfig,\n logger,\n}", + "description": [], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate.$1.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate.$1.config", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate.$1.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + } + ], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.readConfig", + "type": "Function", + "tags": [], + "label": "readConfig", + "description": [], + "signature": [ + "(filePath: string) => Promise<{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }>" + ], + "path": "x-pack/packages/kbn-data-forge/src/lib/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.readConfig.$1", + "type": "string", + "tags": [], + "label": "filePath", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/packages/kbn-data-forge/src/lib/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.run", + "type": "Function", + "tags": [], + "label": "run", + "description": [], + "signature": [ + "(config: { elasticsearch: { host: string; username: string; password: string; apiKey: string; installKibanaUser: boolean; }; kibana: { host: string; username: string; password: string; installAssets: boolean; }; indexing: { dataset: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\"; scenario: string; interval: number; eventsPerCycle: number; payloadSize: number; concurrency: number; reduceWeekendTrafficBy: number; ephemeralProjectIds: number; }; schedule: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[]; }, client: ", + "default", + ", logger: ", + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + }, + ") => Promise" + ], + "path": "x-pack/packages/kbn-data-forge/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.run.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "{ elasticsearch: { host: string; username: string; password: string; apiKey: string; installKibanaUser: boolean; }; kibana: { host: string; username: string; password: string; installAssets: boolean; }; indexing: { dataset: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\"; scenario: string; interval: number; eventsPerCycle: number; payloadSize: number; concurrency: number; reduceWeekendTrafficBy: number; ephemeralProjectIds: number; }; schedule: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[]; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.run.$2", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "x-pack/packages/kbn-data-forge/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.run.$3", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + } + ], + "path": "x-pack/packages/kbn-data-forge/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.Config", + "type": "Type", + "tags": [], + "label": "Config", + "description": [], + "signature": [ + "{ elasticsearch: { host: string; username: string; password: string; apiKey: string; installKibanaUser: boolean; }; kibana: { host: string; username: string; password: string; installAssets: boolean; }; indexing: { dataset: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\"; scenario: string; interval: number; eventsPerCycle: number; payloadSize: number; concurrency: number; reduceWeekendTrafficBy: number; ephemeralProjectIds: number; }; schedule: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[]; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.Dataset", + "type": "Type", + "tags": [], + "label": "Dataset", + "description": [], + "signature": [ + "\"fake_hosts\" | \"fake_logs\" | \"fake_stack\"" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.EventsPerCycle", + "type": "Type", + "tags": [], + "label": "EventsPerCycle", + "description": [], + "signature": [ + "number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; })" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.MetricEventDef", + "type": "Type", + "tags": [], + "label": "MetricEventDef", + "description": [], + "signature": [ + "{ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.PartialConfig", + "type": "Type", + "tags": [], + "label": "PartialConfig", + "description": [], + "signature": [ + "{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.Schedule", + "type": "Type", + "tags": [], + "label": "Schedule", + "description": [], + "signature": [ + "{ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.TransitionMethod", + "type": "Type", + "tags": [], + "label": "TransitionMethod", + "description": [], + "signature": [ + "\"linear\" | \"exp\" | \"sine\"" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx new file mode 100644 index 0000000000000..278313c609e5c --- /dev/null +++ b/api_docs/kbn_data_forge.mdx @@ -0,0 +1,33 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnDataForgePluginApi +slug: /kibana-dev-docs/api/kbn-data-forge +title: "@kbn/data-forge" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/data-forge plugin +date: 2024-01-24 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge'] +--- +import kbnDataForgeObj from './kbn_data_forge.devdocs.json'; + + + +Contact [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 26 | 0 | 26 | 0 | + +## Common + +### Functions + + +### Consts, variables and types + + diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index ab8ff64dd5b21..8298aab430a78 100644 --- a/api_docs/kbn_data_service.mdx +++ b/api_docs/kbn_data_service.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-data-service title: "@kbn/data-service" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/data-service plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-service'] --- import kbnDataServiceObj from './kbn_data_service.devdocs.json'; diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 910af6409928d..b44c864729dae 100644 --- a/api_docs/kbn_datemath.mdx +++ b/api_docs/kbn_datemath.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-datemath title: "@kbn/datemath" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/datemath plugin -date: 2024-01-23 +date: 2024-01-24 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 a8434a2c64b19..27becb6acbbac 100644 --- a/api_docs/kbn_deeplinks_analytics.mdx +++ b/api_docs/kbn_deeplinks_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-analytics title: "@kbn/deeplinks-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-analytics plugin -date: 2024-01-23 +date: 2024-01-24 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 09561381ce278..ae4513917f992 100644 --- a/api_docs/kbn_deeplinks_devtools.mdx +++ b/api_docs/kbn_deeplinks_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-devtools title: "@kbn/deeplinks-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-devtools plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index f16a99c3f8572..88c2b68619225 100644 --- a/api_docs/kbn_deeplinks_management.mdx +++ b/api_docs/kbn_deeplinks_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-management title: "@kbn/deeplinks-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-management plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-management'] --- import kbnDeeplinksManagementObj from './kbn_deeplinks_management.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_ml.mdx b/api_docs/kbn_deeplinks_ml.mdx index 857cea9d26f1a..3853654e3fff8 100644 --- a/api_docs/kbn_deeplinks_ml.mdx +++ b/api_docs/kbn_deeplinks_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-ml title: "@kbn/deeplinks-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-ml plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-ml'] --- import kbnDeeplinksMlObj from './kbn_deeplinks_ml.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_observability.mdx b/api_docs/kbn_deeplinks_observability.mdx index b38666390d0c7..bf0e9caca4e81 100644 --- a/api_docs/kbn_deeplinks_observability.mdx +++ b/api_docs/kbn_deeplinks_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-observability title: "@kbn/deeplinks-observability" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-observability plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-observability'] --- import kbnDeeplinksObservabilityObj from './kbn_deeplinks_observability.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_search.mdx b/api_docs/kbn_deeplinks_search.mdx index 7c0f48d801ed7..5baf2d0b0739e 100644 --- a/api_docs/kbn_deeplinks_search.mdx +++ b/api_docs/kbn_deeplinks_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-deeplinks-search title: "@kbn/deeplinks-search" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/deeplinks-search plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index 5b6d1fe4d291e..244b124d9672b 100644 --- a/api_docs/kbn_default_nav_analytics.mdx +++ b/api_docs/kbn_default_nav_analytics.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-analytics title: "@kbn/default-nav-analytics" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-analytics plugin -date: 2024-01-23 +date: 2024-01-24 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 44de06287aeae..4bd170b0d49d9 100644 --- a/api_docs/kbn_default_nav_devtools.mdx +++ b/api_docs/kbn_default_nav_devtools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-devtools title: "@kbn/default-nav-devtools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-devtools plugin -date: 2024-01-23 +date: 2024-01-24 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 e428b1d4d0eff..44ac5517ea80b 100644 --- a/api_docs/kbn_default_nav_management.mdx +++ b/api_docs/kbn_default_nav_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-management title: "@kbn/default-nav-management" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-management plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/default-nav-management'] --- import kbnDefaultNavManagementObj from './kbn_default_nav_management.devdocs.json'; diff --git a/api_docs/kbn_default_nav_ml.mdx b/api_docs/kbn_default_nav_ml.mdx index 1a5ad00df85ab..1ca95fcc6220a 100644 --- a/api_docs/kbn_default_nav_ml.mdx +++ b/api_docs/kbn_default_nav_ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-default-nav-ml title: "@kbn/default-nav-ml" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/default-nav-ml plugin -date: 2024-01-23 +date: 2024-01-24 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 4c589f1eedcab..3104172a663a7 100644 --- a/api_docs/kbn_dev_cli_errors.mdx +++ b/api_docs/kbn_dev_cli_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-errors title: "@kbn/dev-cli-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-errors plugin -date: 2024-01-23 +date: 2024-01-24 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 e5aa86087ac9c..0b187528c3f4e 100644 --- a/api_docs/kbn_dev_cli_runner.mdx +++ b/api_docs/kbn_dev_cli_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-cli-runner title: "@kbn/dev-cli-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-cli-runner plugin -date: 2024-01-23 +date: 2024-01-24 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 921a528e9524e..b35c058d80b30 100644 --- a/api_docs/kbn_dev_proc_runner.mdx +++ b/api_docs/kbn_dev_proc_runner.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-proc-runner title: "@kbn/dev-proc-runner" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-proc-runner plugin -date: 2024-01-23 +date: 2024-01-24 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 1a7d9025c79f6..95ab5c97e76f9 100644 --- a/api_docs/kbn_dev_utils.mdx +++ b/api_docs/kbn_dev_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dev-utils title: "@kbn/dev-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dev-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index 11fed320afc5f..4005668ec17c2 100644 --- a/api_docs/kbn_discover_utils.mdx +++ b/api_docs/kbn_discover_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-discover-utils title: "@kbn/discover-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/discover-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 2e9987cff877b..24abef2ad4db4 100644 --- a/api_docs/kbn_doc_links.mdx +++ b/api_docs/kbn_doc_links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-doc-links title: "@kbn/doc-links" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/doc-links plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 53eddc1624f0b..9f8012d9df8cd 100644 --- a/api_docs/kbn_docs_utils.mdx +++ b/api_docs/kbn_docs_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-docs-utils title: "@kbn/docs-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/docs-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 44da53cb1b9a2..610de058fa1ca 100644 --- a/api_docs/kbn_dom_drag_drop.mdx +++ b/api_docs/kbn_dom_drag_drop.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-dom-drag-drop title: "@kbn/dom-drag-drop" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/dom-drag-drop plugin -date: 2024-01-23 +date: 2024-01-24 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 ff277d2e904fe..c9c6b9a904668 100644 --- a/api_docs/kbn_ebt_tools.mdx +++ b/api_docs/kbn_ebt_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ebt-tools title: "@kbn/ebt-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ebt-tools plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 8f67333b36ee6..34812893fc46c 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 78cbc2fe8552e..8e0ba99a26465 100644 --- a/api_docs/kbn_ecs_data_quality_dashboard.mdx +++ b/api_docs/kbn_ecs_data_quality_dashboard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs-data-quality-dashboard title: "@kbn/ecs-data-quality-dashboard" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs-data-quality-dashboard plugin -date: 2024-01-23 +date: 2024-01-24 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 989917a1d6847..a0bfe8d1fa2e8 100644 --- a/api_docs/kbn_elastic_agent_utils.mdx +++ b/api_docs/kbn_elastic_agent_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-agent-utils title: "@kbn/elastic-agent-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-agent-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-agent-utils'] --- import kbnElasticAgentUtilsObj from './kbn_elastic_agent_utils.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index f5d2686a89d13..b4415d07a5979 100644 --- a/api_docs/kbn_elastic_assistant.mdx +++ b/api_docs/kbn_elastic_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant title: "@kbn/elastic-assistant" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant'] --- import kbnElasticAssistantObj from './kbn_elastic_assistant.devdocs.json'; diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx index 3c1e7e872e701..9b5166fcda93d 100644 --- a/api_docs/kbn_elastic_assistant_common.mdx +++ b/api_docs/kbn_elastic_assistant_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-elastic-assistant-common title: "@kbn/elastic-assistant-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/elastic-assistant-common plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common'] --- import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json'; diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index d0524eb4b94bd..a40f64bc5b3be 100644 --- a/api_docs/kbn_es.mdx +++ b/api_docs/kbn_es.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es title: "@kbn/es" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es plugin -date: 2024-01-23 +date: 2024-01-24 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 72e03ab16ff47..e8e15c90a70f4 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-archiver title: "@kbn/es-archiver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-archiver plugin -date: 2024-01-23 +date: 2024-01-24 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 5768799a99a0d..68cf95b6aafc0 100644 --- a/api_docs/kbn_es_errors.mdx +++ b/api_docs/kbn_es_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-errors title: "@kbn/es-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-errors plugin -date: 2024-01-23 +date: 2024-01-24 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 3aa8334ba41ba..7f99f7ea72a7f 100644 --- a/api_docs/kbn_es_query.mdx +++ b/api_docs/kbn_es_query.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-query title: "@kbn/es-query" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-query plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index f2ae354dea4b1..699e43f0db331 100644 --- a/api_docs/kbn_es_types.mdx +++ b/api_docs/kbn_es_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-es-types title: "@kbn/es-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/es-types plugin -date: 2024-01-23 +date: 2024-01-24 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 04807303c2817..8862b75727b41 100644 --- a/api_docs/kbn_eslint_plugin_imports.mdx +++ b/api_docs/kbn_eslint_plugin_imports.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-eslint-plugin-imports title: "@kbn/eslint-plugin-imports" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/eslint-plugin-imports plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index 75d5137aa232f..f25d18c387664 100644 --- a/api_docs/kbn_event_annotation_common.mdx +++ b/api_docs/kbn_event_annotation_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-common title: "@kbn/event-annotation-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-common plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/event-annotation-common'] --- import kbnEventAnnotationCommonObj from './kbn_event_annotation_common.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_components.mdx b/api_docs/kbn_event_annotation_components.mdx index 64c1ae3c8fcb8..2c5fd9b15392f 100644 --- a/api_docs/kbn_event_annotation_components.mdx +++ b/api_docs/kbn_event_annotation_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-event-annotation-components title: "@kbn/event-annotation-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/event-annotation-components plugin -date: 2024-01-23 +date: 2024-01-24 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 c280789d96192..9546b76f7672b 100644 --- a/api_docs/kbn_expandable_flyout.mdx +++ b/api_docs/kbn_expandable_flyout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-expandable-flyout title: "@kbn/expandable-flyout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/expandable-flyout plugin -date: 2024-01-23 +date: 2024-01-24 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 9e98a043aa654..c26933d5a4da4 100644 --- a/api_docs/kbn_field_types.mdx +++ b/api_docs/kbn_field_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-types title: "@kbn/field-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-types plugin -date: 2024-01-23 +date: 2024-01-24 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 29b9da78b9fcd..0768f0e5ae31d 100644 --- a/api_docs/kbn_field_utils.mdx +++ b/api_docs/kbn_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-field-utils title: "@kbn/field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/field-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 2997b8947ac8b..06545a4646307 100644 --- a/api_docs/kbn_find_used_node_modules.mdx +++ b/api_docs/kbn_find_used_node_modules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-find-used-node-modules title: "@kbn/find-used-node-modules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/find-used-node-modules plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/find-used-node-modules'] --- import kbnFindUsedNodeModulesObj from './kbn_find_used_node_modules.devdocs.json'; diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index fffdaaa83b875..e450f0359d5d8 100644 --- a/api_docs/kbn_ftr_common_functional_services.mdx +++ b/api_docs/kbn_ftr_common_functional_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-services title: "@kbn/ftr-common-functional-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-services plugin -date: 2024-01-23 +date: 2024-01-24 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 92b28554601e2..92d0c4ca0a8b2 100644 --- a/api_docs/kbn_ftr_common_functional_ui_services.mdx +++ b/api_docs/kbn_ftr_common_functional_ui_services.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ftr-common-functional-ui-services title: "@kbn/ftr-common-functional-ui-services" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ftr-common-functional-ui-services plugin -date: 2024-01-23 +date: 2024-01-24 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 b3443d72eb4e9..2a59a0b1fbf4f 100644 --- a/api_docs/kbn_generate.mdx +++ b/api_docs/kbn_generate.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate title: "@kbn/generate" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate plugin -date: 2024-01-23 +date: 2024-01-24 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 d8316ba5d48bb..fb31cbb31a1c1 100644 --- a/api_docs/kbn_generate_console_definitions.mdx +++ b/api_docs/kbn_generate_console_definitions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-console-definitions title: "@kbn/generate-console-definitions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-console-definitions plugin -date: 2024-01-23 +date: 2024-01-24 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 4a21177428bd7..b52e50aaae2ec 100644 --- a/api_docs/kbn_generate_csv.mdx +++ b/api_docs/kbn_generate_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-generate-csv title: "@kbn/generate-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/generate-csv plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index f5998feb3e823..bb0907f00c99b 100644 --- a/api_docs/kbn_guided_onboarding.mdx +++ b/api_docs/kbn_guided_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-guided-onboarding title: "@kbn/guided-onboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/guided-onboarding plugin -date: 2024-01-23 +date: 2024-01-24 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 a13b5dc13f12b..224d80edf5b2d 100644 --- a/api_docs/kbn_handlebars.mdx +++ b/api_docs/kbn_handlebars.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-handlebars title: "@kbn/handlebars" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/handlebars plugin -date: 2024-01-23 +date: 2024-01-24 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 0ddd1e8b92e95..c9b1881f41676 100644 --- a/api_docs/kbn_hapi_mocks.mdx +++ b/api_docs/kbn_hapi_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-hapi-mocks title: "@kbn/hapi-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/hapi-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 2573fb89eac91..691b0e858f47d 100644 --- a/api_docs/kbn_health_gateway_server.mdx +++ b/api_docs/kbn_health_gateway_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-health-gateway-server title: "@kbn/health-gateway-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/health-gateway-server plugin -date: 2024-01-23 +date: 2024-01-24 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 7524ddcb7ec61..2fc517ae980b0 100644 --- a/api_docs/kbn_home_sample_data_card.mdx +++ b/api_docs/kbn_home_sample_data_card.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-card title: "@kbn/home-sample-data-card" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-card plugin -date: 2024-01-23 +date: 2024-01-24 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 dd7508aa6add7..37f00b8002ebf 100644 --- a/api_docs/kbn_home_sample_data_tab.mdx +++ b/api_docs/kbn_home_sample_data_tab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-home-sample-data-tab title: "@kbn/home-sample-data-tab" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/home-sample-data-tab plugin -date: 2024-01-23 +date: 2024-01-24 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 40c7fcc279f27..dc6c5e6fb3da3 100644 --- a/api_docs/kbn_i18n.mdx +++ b/api_docs/kbn_i18n.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n title: "@kbn/i18n" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n plugin -date: 2024-01-23 +date: 2024-01-24 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 c3daf1260447e..d3b1d8c5fc02d 100644 --- a/api_docs/kbn_i18n_react.mdx +++ b/api_docs/kbn_i18n_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-i18n-react title: "@kbn/i18n-react" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/i18n-react plugin -date: 2024-01-23 +date: 2024-01-24 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 68075ec99cdd7..66eb9e35bf6e7 100644 --- a/api_docs/kbn_import_resolver.mdx +++ b/api_docs/kbn_import_resolver.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-import-resolver title: "@kbn/import-resolver" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/import-resolver plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index 7de8566c0e2a4..206f37365d7fe 100644 --- a/api_docs/kbn_infra_forge.mdx +++ b/api_docs/kbn_infra_forge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-infra-forge title: "@kbn/infra-forge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/infra-forge plugin -date: 2024-01-23 +date: 2024-01-24 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 2b9f7e07d7095..d9044a690a66c 100644 --- a/api_docs/kbn_interpreter.mdx +++ b/api_docs/kbn_interpreter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-interpreter title: "@kbn/interpreter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/interpreter plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index ae950a26c45b5..c546fa9ae4e9c 100644 --- a/api_docs/kbn_io_ts_utils.mdx +++ b/api_docs/kbn_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-io-ts-utils title: "@kbn/io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/io-ts-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 91a68af6cd6bc..1ee501bd37d4b 100644 --- a/api_docs/kbn_jest_serializers.mdx +++ b/api_docs/kbn_jest_serializers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-jest-serializers title: "@kbn/jest-serializers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/jest-serializers plugin -date: 2024-01-23 +date: 2024-01-24 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 caaf1f874b1b5..3592d4341d543 100644 --- a/api_docs/kbn_journeys.mdx +++ b/api_docs/kbn_journeys.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-journeys title: "@kbn/journeys" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/journeys plugin -date: 2024-01-23 +date: 2024-01-24 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 c5b8fc3788d5c..177580a4e6f4e 100644 --- a/api_docs/kbn_json_ast.mdx +++ b/api_docs/kbn_json_ast.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-json-ast title: "@kbn/json-ast" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/json-ast plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 9fc55788014aa..6682776e3c27a 100644 --- a/api_docs/kbn_kibana_manifest_schema.mdx +++ b/api_docs/kbn_kibana_manifest_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-kibana-manifest-schema title: "@kbn/kibana-manifest-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/kibana-manifest-schema plugin -date: 2024-01-23 +date: 2024-01-24 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 d90d92784166d..92139d71b0f5e 100644 --- a/api_docs/kbn_language_documentation_popover.mdx +++ b/api_docs/kbn_language_documentation_popover.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-language-documentation-popover title: "@kbn/language-documentation-popover" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/language-documentation-popover plugin -date: 2024-01-23 +date: 2024-01-24 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 cc1e08752f2ec..862c9eb685629 100644 --- a/api_docs/kbn_lens_embeddable_utils.mdx +++ b/api_docs/kbn_lens_embeddable_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-embeddable-utils title: "@kbn/lens-embeddable-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-embeddable-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 8c957dfe6d9ed..47b634664b12f 100644 --- a/api_docs/kbn_lens_formula_docs.mdx +++ b/api_docs/kbn_lens_formula_docs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-lens-formula-docs title: "@kbn/lens-formula-docs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/lens-formula-docs plugin -date: 2024-01-23 +date: 2024-01-24 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 c6287042ffc04..a809b2dc1dad4 100644 --- a/api_docs/kbn_logging.mdx +++ b/api_docs/kbn_logging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging title: "@kbn/logging" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging plugin -date: 2024-01-23 +date: 2024-01-24 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 d5ad90605ddfa..dd0896db12a9f 100644 --- a/api_docs/kbn_logging_mocks.mdx +++ b/api_docs/kbn_logging_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-logging-mocks title: "@kbn/logging-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/logging-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/logging-mocks'] --- import kbnLoggingMocksObj from './kbn_logging_mocks.devdocs.json'; diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index a945219ec1bd9..44addd8ff3f77 100644 --- a/api_docs/kbn_managed_vscode_config.mdx +++ b/api_docs/kbn_managed_vscode_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-managed-vscode-config title: "@kbn/managed-vscode-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/managed-vscode-config plugin -date: 2024-01-23 +date: 2024-01-24 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 5941c9699d190..8049670341a7d 100644 --- a/api_docs/kbn_management_cards_navigation.mdx +++ b/api_docs/kbn_management_cards_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-cards-navigation title: "@kbn/management-cards-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-cards-navigation plugin -date: 2024-01-23 +date: 2024-01-24 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 19efbc2b247ca..d0479cb093f60 100644 --- a/api_docs/kbn_management_settings_application.mdx +++ b/api_docs/kbn_management_settings_application.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-application title: "@kbn/management-settings-application" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-application plugin -date: 2024-01-23 +date: 2024-01-24 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 d01df225ad04c..9755e903242df 100644 --- a/api_docs/kbn_management_settings_components_field_category.mdx +++ b/api_docs/kbn_management_settings_components_field_category.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-category title: "@kbn/management-settings-components-field-category" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-category plugin -date: 2024-01-23 +date: 2024-01-24 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 1ccb98f7dc991..189475081fc11 100644 --- a/api_docs/kbn_management_settings_components_field_input.mdx +++ b/api_docs/kbn_management_settings_components_field_input.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-input title: "@kbn/management-settings-components-field-input" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-input plugin -date: 2024-01-23 +date: 2024-01-24 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 af602ad51e960..e1322cf4ccab7 100644 --- a/api_docs/kbn_management_settings_components_field_row.mdx +++ b/api_docs/kbn_management_settings_components_field_row.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-field-row title: "@kbn/management-settings-components-field-row" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-field-row plugin -date: 2024-01-23 +date: 2024-01-24 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 eeb2f06ef042d..8e64330c9a7f9 100644 --- a/api_docs/kbn_management_settings_components_form.mdx +++ b/api_docs/kbn_management_settings_components_form.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-components-form title: "@kbn/management-settings-components-form" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-components-form plugin -date: 2024-01-23 +date: 2024-01-24 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 845250c02f63b..d64652a92df54 100644 --- a/api_docs/kbn_management_settings_field_definition.mdx +++ b/api_docs/kbn_management_settings_field_definition.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-field-definition title: "@kbn/management-settings-field-definition" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-field-definition plugin -date: 2024-01-23 +date: 2024-01-24 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 e18653f776710..eb1d612a26285 100644 --- a/api_docs/kbn_management_settings_ids.mdx +++ b/api_docs/kbn_management_settings_ids.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-ids title: "@kbn/management-settings-ids" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-ids plugin -date: 2024-01-23 +date: 2024-01-24 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 585dcebda27eb..a859152c1707c 100644 --- a/api_docs/kbn_management_settings_section_registry.mdx +++ b/api_docs/kbn_management_settings_section_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-section-registry title: "@kbn/management-settings-section-registry" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-section-registry plugin -date: 2024-01-23 +date: 2024-01-24 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 e2fc05bea4604..9696724a47fb9 100644 --- a/api_docs/kbn_management_settings_types.mdx +++ b/api_docs/kbn_management_settings_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-types title: "@kbn/management-settings-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-types plugin -date: 2024-01-23 +date: 2024-01-24 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 00146b953761f..428c36d4b47ef 100644 --- a/api_docs/kbn_management_settings_utilities.mdx +++ b/api_docs/kbn_management_settings_utilities.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-settings-utilities title: "@kbn/management-settings-utilities" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-settings-utilities plugin -date: 2024-01-23 +date: 2024-01-24 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 c44bce4c9c298..2977b60b8794a 100644 --- a/api_docs/kbn_management_storybook_config.mdx +++ b/api_docs/kbn_management_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-management-storybook-config title: "@kbn/management-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/management-storybook-config plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-storybook-config'] --- import kbnManagementStorybookConfigObj from './kbn_management_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index fb6da5b194c3a..080f5d173757b 100644 --- a/api_docs/kbn_mapbox_gl.mdx +++ b/api_docs/kbn_mapbox_gl.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-mapbox-gl title: "@kbn/mapbox-gl" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/mapbox-gl plugin -date: 2024-01-23 +date: 2024-01-24 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 de1e4454a0345..1b9ae29cd62df 100644 --- a/api_docs/kbn_maps_vector_tile_utils.mdx +++ b/api_docs/kbn_maps_vector_tile_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-maps-vector-tile-utils title: "@kbn/maps-vector-tile-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/maps-vector-tile-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 4e88e363718ae..bcfd9347c5855 100644 --- a/api_docs/kbn_ml_agg_utils.mdx +++ b/api_docs/kbn_ml_agg_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-agg-utils title: "@kbn/ml-agg-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-agg-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 60669f577d253..97579a3bfddba 100644 --- a/api_docs/kbn_ml_anomaly_utils.mdx +++ b/api_docs/kbn_ml_anomaly_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-anomaly-utils title: "@kbn/ml-anomaly-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-anomaly-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-anomaly-utils'] --- import kbnMlAnomalyUtilsObj from './kbn_ml_anomaly_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index 953843734d82a..2db82de23640f 100644 --- a/api_docs/kbn_ml_category_validator.mdx +++ b/api_docs/kbn_ml_category_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-category-validator title: "@kbn/ml-category-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-category-validator plugin -date: 2024-01-23 +date: 2024-01-24 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 18b6e448cab4b..96b8531bf5ec1 100644 --- a/api_docs/kbn_ml_chi2test.mdx +++ b/api_docs/kbn_ml_chi2test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-chi2test title: "@kbn/ml-chi2test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-chi2test plugin -date: 2024-01-23 +date: 2024-01-24 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 071624833f362..403e08369f192 100644 --- a/api_docs/kbn_ml_data_frame_analytics_utils.mdx +++ b/api_docs/kbn_ml_data_frame_analytics_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-frame-analytics-utils title: "@kbn/ml-data-frame-analytics-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-frame-analytics-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-frame-analytics-utils'] --- import kbnMlDataFrameAnalyticsUtilsObj from './kbn_ml_data_frame_analytics_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_data_grid.mdx b/api_docs/kbn_ml_data_grid.mdx index 2a913034aaf1f..54668cb30c70f 100644 --- a/api_docs/kbn_ml_data_grid.mdx +++ b/api_docs/kbn_ml_data_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-data-grid title: "@kbn/ml-data-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-data-grid plugin -date: 2024-01-23 +date: 2024-01-24 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 52b4df26094e7..03ab25a59b5a0 100644 --- a/api_docs/kbn_ml_date_picker.mdx +++ b/api_docs/kbn_ml_date_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-picker title: "@kbn/ml-date-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-picker plugin -date: 2024-01-23 +date: 2024-01-24 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 c01bf90bc27d5..cabae70721b7a 100644 --- a/api_docs/kbn_ml_date_utils.mdx +++ b/api_docs/kbn_ml_date_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-date-utils title: "@kbn/ml-date-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-date-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 9a9377e04d352..1426bc9d476a8 100644 --- a/api_docs/kbn_ml_error_utils.mdx +++ b/api_docs/kbn_ml_error_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-error-utils title: "@kbn/ml-error-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-error-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 4f071774520a4..f30e60b931838 100644 --- a/api_docs/kbn_ml_in_memory_table.mdx +++ b/api_docs/kbn_ml_in_memory_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-in-memory-table title: "@kbn/ml-in-memory-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-in-memory-table plugin -date: 2024-01-23 +date: 2024-01-24 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 3b86b00bdb21e..6cd9eb1122092 100644 --- a/api_docs/kbn_ml_is_defined.mdx +++ b/api_docs/kbn_ml_is_defined.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-defined title: "@kbn/ml-is-defined" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-defined plugin -date: 2024-01-23 +date: 2024-01-24 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 e4caefced8355..25d1bbd5dd925 100644 --- a/api_docs/kbn_ml_is_populated_object.mdx +++ b/api_docs/kbn_ml_is_populated_object.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-is-populated-object title: "@kbn/ml-is-populated-object" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-is-populated-object plugin -date: 2024-01-23 +date: 2024-01-24 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 3cdfa59939b9e..d2a93944d637d 100644 --- a/api_docs/kbn_ml_kibana_theme.mdx +++ b/api_docs/kbn_ml_kibana_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-kibana-theme title: "@kbn/ml-kibana-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-kibana-theme plugin -date: 2024-01-23 +date: 2024-01-24 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 0e144e4f040e5..278c1d01f5dc5 100644 --- a/api_docs/kbn_ml_local_storage.mdx +++ b/api_docs/kbn_ml_local_storage.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-local-storage title: "@kbn/ml-local-storage" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-local-storage plugin -date: 2024-01-23 +date: 2024-01-24 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 d408a4fcb52f2..f7cfc7738931c 100644 --- a/api_docs/kbn_ml_nested_property.mdx +++ b/api_docs/kbn_ml_nested_property.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-nested-property title: "@kbn/ml-nested-property" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-nested-property plugin -date: 2024-01-23 +date: 2024-01-24 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 f88b10e2975c7..f802e2c5d8d73 100644 --- a/api_docs/kbn_ml_number_utils.mdx +++ b/api_docs/kbn_ml_number_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-number-utils title: "@kbn/ml-number-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-number-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 f8cfd036a2cd9..0a1cd6ddef3a0 100644 --- a/api_docs/kbn_ml_query_utils.mdx +++ b/api_docs/kbn_ml_query_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-query-utils title: "@kbn/ml-query-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-query-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 dc5d620804bad..1c05123a3e7e4 100644 --- a/api_docs/kbn_ml_random_sampler_utils.mdx +++ b/api_docs/kbn_ml_random_sampler_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-random-sampler-utils title: "@kbn/ml-random-sampler-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-random-sampler-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 6910bb3e4fb74..143ef95780659 100644 --- a/api_docs/kbn_ml_route_utils.mdx +++ b/api_docs/kbn_ml_route_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-route-utils title: "@kbn/ml-route-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-route-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 5ba89c4129ad6..d92f7c3e50a82 100644 --- a/api_docs/kbn_ml_runtime_field_utils.mdx +++ b/api_docs/kbn_ml_runtime_field_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-runtime-field-utils title: "@kbn/ml-runtime-field-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-runtime-field-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 d147fa3e4ade5..9fe9c4e0d62e5 100644 --- a/api_docs/kbn_ml_string_hash.mdx +++ b/api_docs/kbn_ml_string_hash.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-string-hash title: "@kbn/ml-string-hash" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-string-hash plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-string-hash'] --- import kbnMlStringHashObj from './kbn_ml_string_hash.devdocs.json'; diff --git a/api_docs/kbn_ml_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index d47434b3acf5a..17f840cc519b7 100644 --- a/api_docs/kbn_ml_trained_models_utils.mdx +++ b/api_docs/kbn_ml_trained_models_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-trained-models-utils title: "@kbn/ml-trained-models-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-trained-models-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 27ec1c6c15c8c..b4c1c90d3ce59 100644 --- a/api_docs/kbn_ml_ui_actions.mdx +++ b/api_docs/kbn_ml_ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-ui-actions title: "@kbn/ml-ui-actions" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-ui-actions plugin -date: 2024-01-23 +date: 2024-01-24 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 409063e33164f..1c783fceeb397 100644 --- a/api_docs/kbn_ml_url_state.mdx +++ b/api_docs/kbn_ml_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ml-url-state title: "@kbn/ml-url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ml-url-state plugin -date: 2024-01-23 +date: 2024-01-24 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 0a8ac0293e670..bf969bc9ecac8 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-01-23 +date: 2024-01-24 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 49f54fd3cce45..108d5e9a86f4c 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-monaco title: "@kbn/monaco" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/monaco plugin -date: 2024-01-23 +date: 2024-01-24 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 7f09b477cf624..434e9961ad06e 100644 --- a/api_docs/kbn_object_versioning.mdx +++ b/api_docs/kbn_object_versioning.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-object-versioning title: "@kbn/object-versioning" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/object-versioning plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/object-versioning'] --- import kbnObjectVersioningObj from './kbn_object_versioning.devdocs.json'; diff --git a/api_docs/kbn_observability_alert_details.mdx b/api_docs/kbn_observability_alert_details.mdx index af35a170ff84e..923f09e0c5713 100644 --- a/api_docs/kbn_observability_alert_details.mdx +++ b/api_docs/kbn_observability_alert_details.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alert-details title: "@kbn/observability-alert-details" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alert-details plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx index 2c245d4596c50..3b106be2cde29 100644 --- a/api_docs/kbn_observability_alerting_test_data.mdx +++ b/api_docs/kbn_observability_alerting_test_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-alerting-test-data title: "@kbn/observability-alerting-test-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-alerting-test-data plugin -date: 2024-01-23 +date: 2024-01-24 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 73f8687ae0037..74b402171fe6a 100644 --- a/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx +++ b/api_docs/kbn_observability_get_padded_alert_time_range_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-observability-get-padded-alert-time-range-util title: "@kbn/observability-get-padded-alert-time-range-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/observability-get-padded-alert-time-range-util plugin -date: 2024-01-23 +date: 2024-01-24 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 a127ba6834ec8..cb5a0ab96a250 100644 --- a/api_docs/kbn_openapi_bundler.mdx +++ b/api_docs/kbn_openapi_bundler.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-bundler title: "@kbn/openapi-bundler" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-bundler plugin -date: 2024-01-23 +date: 2024-01-24 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 8b8a5d8ba194f..89c44901664cc 100644 --- a/api_docs/kbn_openapi_generator.mdx +++ b/api_docs/kbn_openapi_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-openapi-generator title: "@kbn/openapi-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/openapi-generator plugin -date: 2024-01-23 +date: 2024-01-24 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 9266161c5a85a..10107e4c6d810 100644 --- a/api_docs/kbn_optimizer.mdx +++ b/api_docs/kbn_optimizer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer title: "@kbn/optimizer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer plugin -date: 2024-01-23 +date: 2024-01-24 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 b4096660ce8a6..3aeeaa360d9b6 100644 --- a/api_docs/kbn_optimizer_webpack_helpers.mdx +++ b/api_docs/kbn_optimizer_webpack_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-optimizer-webpack-helpers title: "@kbn/optimizer-webpack-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/optimizer-webpack-helpers plugin -date: 2024-01-23 +date: 2024-01-24 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 d9e64a29ebd87..524032c3e8cb1 100644 --- a/api_docs/kbn_osquery_io_ts_types.mdx +++ b/api_docs/kbn_osquery_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-osquery-io-ts-types title: "@kbn/osquery-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/osquery-io-ts-types plugin -date: 2024-01-23 +date: 2024-01-24 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 248919524cd2d..c033f793883ba 100644 --- a/api_docs/kbn_panel_loader.mdx +++ b/api_docs/kbn_panel_loader.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-panel-loader title: "@kbn/panel-loader" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/panel-loader plugin -date: 2024-01-23 +date: 2024-01-24 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 4811787fb12e6..542f80024a666 100644 --- a/api_docs/kbn_performance_testing_dataset_extractor.mdx +++ b/api_docs/kbn_performance_testing_dataset_extractor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-performance-testing-dataset-extractor title: "@kbn/performance-testing-dataset-extractor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/performance-testing-dataset-extractor plugin -date: 2024-01-23 +date: 2024-01-24 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 d6479b8aa6f10..69f099c8184d0 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-01-23 +date: 2024-01-24 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 61fd3825f1f98..8644969bf7d5c 100644 --- a/api_docs/kbn_plugin_generator.mdx +++ b/api_docs/kbn_plugin_generator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-generator title: "@kbn/plugin-generator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-generator plugin -date: 2024-01-23 +date: 2024-01-24 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 8c394aeb099ff..49a49cb558bbc 100644 --- a/api_docs/kbn_plugin_helpers.mdx +++ b/api_docs/kbn_plugin_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-plugin-helpers title: "@kbn/plugin-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/plugin-helpers plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx index 24728045c4bd4..deac575024acb 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-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers'] --- import kbnPresentationContainersObj from './kbn_presentation_containers.devdocs.json'; diff --git a/api_docs/kbn_presentation_library.mdx b/api_docs/kbn_presentation_library.mdx index cd87eee8d96b4..3a0ad79299972 100644 --- a/api_docs/kbn_presentation_library.mdx +++ b/api_docs/kbn_presentation_library.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-presentation-library title: "@kbn/presentation-library" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/presentation-library plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-library'] --- import kbnPresentationLibraryObj from './kbn_presentation_library.devdocs.json'; diff --git a/api_docs/kbn_presentation_publishing.devdocs.json b/api_docs/kbn_presentation_publishing.devdocs.json index 1b7551e0da44b..7466892d41fbd 100644 --- a/api_docs/kbn_presentation_publishing.devdocs.json +++ b/api_docs/kbn_presentation_publishing.devdocs.json @@ -61,46 +61,6 @@ "returnComment": [], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.apiFiresPhaseEvents", - "type": "Function", - "tags": [], - "label": "apiFiresPhaseEvents", - "description": [], - "signature": [ - "(unknownApi: unknown) => unknownApi is ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.FiresPhaseEvents", - "text": "FiresPhaseEvents" - } - ], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.apiFiresPhaseEvents.$1", - "type": "Unknown", - "tags": [], - "label": "unknownApi", - "description": [], - "signature": [ - "unknown" - ], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/presentation-publishing", "id": "def-common.apiHasParentApi", @@ -604,6 +564,46 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPhaseEvents", + "type": "Function", + "tags": [], + "label": "apiPublishesPhaseEvents", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPhaseEvents", + "text": "PublishesPhaseEvents" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPhaseEvents.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/presentation-publishing", "id": "def-common.apiPublishesSavedObjectId", @@ -1989,490 +1989,112 @@ }, { "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.FiresPhaseEvents", + "id": "def-common.HasEditCapabilities", + "type": "Interface", + "tags": [], + "label": "HasEditCapabilities", + "description": [ + "\nAn interface which determines whether or not a given API is editable.\nIn order to be editable, the api requires an edit function to execute the action\na getTypeDisplayName function to display to the user which type of chart is being\nedited, and an isEditingEnabled function." + ], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasEditCapabilities", + "text": "HasEditCapabilities" + }, + " extends ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasTypeDisplayName", + "text": "HasTypeDisplayName" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasEditCapabilities.onEdit", + "type": "Function", + "tags": [], + "label": "onEdit", + "description": [], + "signature": [ + "() => void" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasEditCapabilities.isEditingEnabled", + "type": "Function", + "tags": [], + "label": "isEditingEnabled", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasEditCapabilities.getEditHref", + "type": "Function", + "tags": [], + "label": "getEditHref", + "description": [], + "signature": [ + "(() => string | undefined) | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasParentApi", "type": "Interface", "tags": [], - "label": "FiresPhaseEvents", + "label": "HasParentApi", "description": [], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasParentApi", + "text": "HasParentApi" + }, + "" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_parent_api.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.FiresPhaseEvents.onPhaseChange", - "type": "Object", + "id": "def-common.HasParentApi.parentApi", + "type": "Uncategorized", "tags": [], - "label": "onPhaseChange", - "description": [], - "signature": [ - "{ readonly value: ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - "; source: ", - "Observable", - " | undefined; error: (err: any) => void; forEach: { (next: (value: ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ") => void): Promise; (next: (value: ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ") => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - "; pipe: { (): ", - "Observable", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ">; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - "): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - ", op3: ", - "OperatorFunction", - "): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - ", op3: ", - "OperatorFunction", - ", op4: ", - "OperatorFunction", - "): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - ", op3: ", - "OperatorFunction", - ", op4: ", - "OperatorFunction", - ", op5: ", - "OperatorFunction", - "): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - ", op3: ", - "OperatorFunction", - ", op4: ", - "OperatorFunction", - ", op5: ", - "OperatorFunction", - ", op6: ", - "OperatorFunction", - "): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - ", op3: ", - "OperatorFunction", - ", op4: ", - "OperatorFunction", - ", op5: ", - "OperatorFunction", - ", op6: ", - "OperatorFunction", - ", op7: ", - "OperatorFunction", - "): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - ", op3: ", - "OperatorFunction", - ", op4: ", - "OperatorFunction", - ", op5: ", - "OperatorFunction", - ", op6: ", - "OperatorFunction", - ", op7: ", - "OperatorFunction", - ", op8: ", - "OperatorFunction", - "): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - ", op3: ", - "OperatorFunction", - ", op4: ", - "OperatorFunction", - ", op5: ", - "OperatorFunction", - ", op6: ", - "OperatorFunction", - ", op7: ", - "OperatorFunction", - ", op8: ", - "OperatorFunction", - ", op9: ", - "OperatorFunction", - "): ", - "Observable", - "; (op1: ", - "OperatorFunction", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", A>, op2: ", - "OperatorFunction", - ", op3: ", - "OperatorFunction", - ", op4: ", - "OperatorFunction", - ", op5: ", - "OperatorFunction", - ", op6: ", - "OperatorFunction", - ", op7: ", - "OperatorFunction", - ", op8: ", - "OperatorFunction", - ", op9: ", - "OperatorFunction", - ", ...operations: ", - "OperatorFunction", - "[]): ", - "Observable", - "; }; complete: () => void; closed: boolean; observers: ", - "Observer", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ">[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", - "Operator", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ", R>) => ", - "Observable", - "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", - "Observable", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ">; operator: ", - "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", - "Observer", - "<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ">> | ((value: ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ") => void) | undefined): ", - "Subscription", - "; (next?: ((value: ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", - "Subscription", - "; }; toPromise: { (): Promise<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PhaseEvent", - "text": "PhaseEvent" - }, - " | undefined>; }; }" - ], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.HasEditCapabilities", - "type": "Interface", - "tags": [], - "label": "HasEditCapabilities", - "description": [ - "\nAn interface which determines whether or not a given API is editable.\nIn order to be editable, the api requires an edit function to execute the action\na getTypeDisplayName function to display to the user which type of chart is being\nedited, and an isEditingEnabled function." - ], - "signature": [ - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.HasEditCapabilities", - "text": "HasEditCapabilities" - }, - " extends ", - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.HasTypeDisplayName", - "text": "HasTypeDisplayName" - } - ], - "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.HasEditCapabilities.onEdit", - "type": "Function", - "tags": [], - "label": "onEdit", - "description": [], - "signature": [ - "() => void" - ], - "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.HasEditCapabilities.isEditingEnabled", - "type": "Function", - "tags": [], - "label": "isEditingEnabled", - "description": [], - "signature": [ - "() => boolean" - ], - "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.HasEditCapabilities.getEditHref", - "type": "Function", - "tags": [], - "label": "getEditHref", - "description": [], - "signature": [ - "(() => string | undefined) | undefined" - ], - "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.HasParentApi", - "type": "Interface", - "tags": [], - "label": "HasParentApi", - "description": [], - "signature": [ - { - "pluginId": "@kbn/presentation-publishing", - "scope": "common", - "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.HasParentApi", - "text": "HasParentApi" - }, - "" - ], - "path": "packages/presentation/presentation_publishing/interfaces/has_parent_api.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.HasParentApi.parentApi", - "type": "Uncategorized", - "tags": [], - "label": "parentApi", + "label": "parentApi", "description": [], "signature": [ "ParentApiType" @@ -2600,7 +2222,7 @@ "tags": [], "label": "PhaseEvent", "description": [], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -2611,7 +2233,7 @@ "tags": [], "label": "id", "description": [], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", "deprecated": false, "trackAdoption": false }, @@ -2625,7 +2247,7 @@ "signature": [ "\"error\" | \"loading\" | \"rendered\" | \"loaded\"" ], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", "deprecated": false, "trackAdoption": false }, @@ -2646,7 +2268,7 @@ }, " | undefined" ], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", "deprecated": false, "trackAdoption": false }, @@ -2657,7 +2279,7 @@ "tags": [], "label": "timeToEvent", "description": [], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", "deprecated": false, "trackAdoption": false } @@ -5314,29 +4936,292 @@ }, { "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.PublishesPanelTitle.hidePanelTitle", + "id": "def-common.PublishesPanelTitle.hidePanelTitle", + "type": "Object", + "tags": [], + "label": "hidePanelTitle", + "description": [], + "signature": [ + "{ readonly value: boolean | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: boolean | undefined) => void): Promise; (next: (value: boolean | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => boolean | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: boolean | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: boolean | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPanelTitle.defaultPanelTitle", + "type": "Object", + "tags": [], + "label": "defaultPanelTitle", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPhaseEvents", + "type": "Interface", + "tags": [], + "label": "PublishesPhaseEvents", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPhaseEvents.onPhaseChange", "type": "Object", "tags": [], - "label": "hidePanelTitle", + "label": "onPhaseChange", "description": [], "signature": [ - "{ readonly value: boolean | undefined; source: ", + "{ readonly value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined; source: ", "Observable", - " | undefined; error: (err: any) => void; forEach: { (next: (value: boolean | undefined) => void): Promise; (next: (value: boolean | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => boolean | undefined; pipe: { (): ", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined; pipe: { (): ", "Observable", - "; (op1: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (op1: ", "OperatorFunction", - "): ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>): ", "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", "): ", "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", ", op3: ", "OperatorFunction", @@ -5344,7 +5229,15 @@ "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", ", op3: ", "OperatorFunction", @@ -5354,7 +5247,15 @@ "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", ", op3: ", "OperatorFunction", @@ -5366,7 +5267,15 @@ "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", ", op3: ", "OperatorFunction", @@ -5380,7 +5289,15 @@ "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", ", op3: ", "OperatorFunction", @@ -5396,7 +5313,15 @@ "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", ", op3: ", "OperatorFunction", @@ -5414,7 +5339,15 @@ "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", ", op3: ", "OperatorFunction", @@ -5434,7 +5367,15 @@ "Observable", "; (op1: ", "OperatorFunction", - ", op2: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", "OperatorFunction", ", op3: ", "OperatorFunction", @@ -5456,44 +5397,103 @@ "Observable", "; }; complete: () => void; closed: boolean; observers: ", "Observer", - "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", "Operator", - ") => ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, R>) => ", "Observable", "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", "Observable", - "; operator: ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; operator: ", "Operator", - " | undefined; subscribe: { (observerOrNext?: Partial<", + " | undefined; subscribe: { (observerOrNext?: Partial<", "Observer", - "> | ((value: boolean | undefined) => void) | undefined): ", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>> | ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void) | undefined): ", "Subscription", - "; (next?: ((value: boolean | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "; (next?: ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", "Subscription", - "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" - ], - "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/presentation-publishing", - "id": "def-common.PublishesPanelTitle.defaultPanelTitle", - "type": "Object", - "tags": [], - "label": "defaultPanelTitle", - "description": [], - "signature": [ + "; }; toPromise: { (): Promise<", { "pluginId": "@kbn/presentation-publishing", "scope": "common", "docId": "kibKbnPresentationPublishingPluginApi", - "section": "def-common.PublishingSubject", - "text": "PublishingSubject" + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" }, - " | undefined" + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; }; }" ], - "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", "deprecated": false, "trackAdoption": false } @@ -6116,7 +6116,7 @@ "signature": [ "\"error\" | \"loading\" | \"rendered\" | \"loaded\"" ], - "path": "packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx index 80f0f38eabaf5..10cb6a2ede9af 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-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing'] --- import kbnPresentationPublishingObj from './kbn_presentation_publishing.devdocs.json'; diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index 3fcb2cf85e4db..347572bec618d 100644 --- a/api_docs/kbn_profiling_utils.mdx +++ b/api_docs/kbn_profiling_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-profiling-utils title: "@kbn/profiling-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/profiling-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 98bb6ef07364b..f2f18e8f37d3c 100644 --- a/api_docs/kbn_random_sampling.mdx +++ b/api_docs/kbn_random_sampling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-random-sampling title: "@kbn/random-sampling" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/random-sampling plugin -date: 2024-01-23 +date: 2024-01-24 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 1237290b686c4..971191d7006b1 100644 --- a/api_docs/kbn_react_field.mdx +++ b/api_docs/kbn_react_field.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-field title: "@kbn/react-field" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-field plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index 76799da0d1cd5..397bf35285eca 100644 --- a/api_docs/kbn_react_kibana_context_common.mdx +++ b/api_docs/kbn_react_kibana_context_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-common title: "@kbn/react-kibana-context-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-common plugin -date: 2024-01-23 +date: 2024-01-24 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 41d8571ddfc9b..1ae8cfa6615e6 100644 --- a/api_docs/kbn_react_kibana_context_render.mdx +++ b/api_docs/kbn_react_kibana_context_render.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-render title: "@kbn/react-kibana-context-render" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-render plugin -date: 2024-01-23 +date: 2024-01-24 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 dcf5650afa14e..47a1a0d53ecb0 100644 --- a/api_docs/kbn_react_kibana_context_root.mdx +++ b/api_docs/kbn_react_kibana_context_root.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-root title: "@kbn/react-kibana-context-root" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-root plugin -date: 2024-01-23 +date: 2024-01-24 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 ecadedc835012..3e0f43f44aa18 100644 --- a/api_docs/kbn_react_kibana_context_styled.mdx +++ b/api_docs/kbn_react_kibana_context_styled.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-styled title: "@kbn/react-kibana-context-styled" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-styled plugin -date: 2024-01-23 +date: 2024-01-24 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 056e54d338b49..3f0033e92c153 100644 --- a/api_docs/kbn_react_kibana_context_theme.mdx +++ b/api_docs/kbn_react_kibana_context_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-context-theme title: "@kbn/react-kibana-context-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-context-theme plugin -date: 2024-01-23 +date: 2024-01-24 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 bc9e89d19698d..76df3ff076478 100644 --- a/api_docs/kbn_react_kibana_mount.mdx +++ b/api_docs/kbn_react_kibana_mount.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-react-kibana-mount title: "@kbn/react-kibana-mount" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/react-kibana-mount plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index f898e3f9c0af6..0c4dff4645701 100644 --- a/api_docs/kbn_repo_file_maps.mdx +++ b/api_docs/kbn_repo_file_maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-file-maps title: "@kbn/repo-file-maps" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-file-maps plugin -date: 2024-01-23 +date: 2024-01-24 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 d56fca02a0090..fccf134bb402e 100644 --- a/api_docs/kbn_repo_linter.mdx +++ b/api_docs/kbn_repo_linter.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-linter title: "@kbn/repo-linter" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-linter plugin -date: 2024-01-23 +date: 2024-01-24 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 566c0e0f7039d..68e6c47f67c50 100644 --- a/api_docs/kbn_repo_path.mdx +++ b/api_docs/kbn_repo_path.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-path title: "@kbn/repo-path" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-path plugin -date: 2024-01-23 +date: 2024-01-24 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 10ce5cbf9bbb3..cc3ec31f7d516 100644 --- a/api_docs/kbn_repo_source_classifier.mdx +++ b/api_docs/kbn_repo_source_classifier.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-repo-source-classifier title: "@kbn/repo-source-classifier" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/repo-source-classifier plugin -date: 2024-01-23 +date: 2024-01-24 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 19cb29f743c1f..cd4f220a0d562 100644 --- a/api_docs/kbn_reporting_common.mdx +++ b/api_docs/kbn_reporting_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-common title: "@kbn/reporting-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-common plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.devdocs.json'; diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx index 5be7f9b1b75fd..0b35cbcbf761b 100644 --- a/api_docs/kbn_reporting_export_types_csv.mdx +++ b/api_docs/kbn_reporting_export_types_csv.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv title: "@kbn/reporting-export-types-csv" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv plugin -date: 2024-01-23 +date: 2024-01-24 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 5282aaabd2d91..ee63763afd2e7 100644 --- a/api_docs/kbn_reporting_export_types_csv_common.mdx +++ b/api_docs/kbn_reporting_export_types_csv_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-csv-common title: "@kbn/reporting-export-types-csv-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-csv-common plugin -date: 2024-01-23 +date: 2024-01-24 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 d579bd5f47e94..fd9b3ee6943cc 100644 --- a/api_docs/kbn_reporting_export_types_pdf.mdx +++ b/api_docs/kbn_reporting_export_types_pdf.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf title: "@kbn/reporting-export-types-pdf" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf plugin -date: 2024-01-23 +date: 2024-01-24 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 f19dc335d2e30..d99852f9f77e7 100644 --- a/api_docs/kbn_reporting_export_types_pdf_common.mdx +++ b/api_docs/kbn_reporting_export_types_pdf_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-pdf-common title: "@kbn/reporting-export-types-pdf-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-pdf-common plugin -date: 2024-01-23 +date: 2024-01-24 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 04c119bbf8148..72b26effbea85 100644 --- a/api_docs/kbn_reporting_export_types_png.mdx +++ b/api_docs/kbn_reporting_export_types_png.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png title: "@kbn/reporting-export-types-png" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png plugin -date: 2024-01-23 +date: 2024-01-24 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 ebc09719d1f60..84300a58e894d 100644 --- a/api_docs/kbn_reporting_export_types_png_common.mdx +++ b/api_docs/kbn_reporting_export_types_png_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-export-types-png-common title: "@kbn/reporting-export-types-png-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-export-types-png-common plugin -date: 2024-01-23 +date: 2024-01-24 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 0c71b367b30f2..69080d6ff18f7 100644 --- a/api_docs/kbn_reporting_mocks_server.mdx +++ b/api_docs/kbn_reporting_mocks_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-mocks-server title: "@kbn/reporting-mocks-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-mocks-server plugin -date: 2024-01-23 +date: 2024-01-24 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 85db3a3696499..1de8d51a22253 100644 --- a/api_docs/kbn_reporting_public.mdx +++ b/api_docs/kbn_reporting_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-public title: "@kbn/reporting-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-public plugin -date: 2024-01-23 +date: 2024-01-24 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 4b65900d9223e..8e8fc875299b8 100644 --- a/api_docs/kbn_reporting_server.mdx +++ b/api_docs/kbn_reporting_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-reporting-server title: "@kbn/reporting-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/reporting-server plugin -date: 2024-01-23 +date: 2024-01-24 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 b3e1602c7c4bd..959d0fa319581 100644 --- a/api_docs/kbn_resizable_layout.mdx +++ b/api_docs/kbn_resizable_layout.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-resizable-layout title: "@kbn/resizable-layout" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/resizable-layout plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index e1b1d4dabd699..545829ac49a88 100644 --- a/api_docs/kbn_rison.mdx +++ b/api_docs/kbn_rison.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rison title: "@kbn/rison" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rison plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx index 22483a50e586c..34718ddbdff67 100644 --- a/api_docs/kbn_router_utils.mdx +++ b/api_docs/kbn_router_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-router-utils title: "@kbn/router-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/router-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 1983d69f15d0e..dcf466321a23f 100644 --- a/api_docs/kbn_rrule.mdx +++ b/api_docs/kbn_rrule.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rrule title: "@kbn/rrule" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rrule plugin -date: 2024-01-23 +date: 2024-01-24 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 65a151f2ffc20..9fb64790a7031 100644 --- a/api_docs/kbn_rule_data_utils.mdx +++ b/api_docs/kbn_rule_data_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-rule-data-utils title: "@kbn/rule-data-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/rule-data-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 1a330363aafa5..cf5aa0f0b63d9 100644 --- a/api_docs/kbn_saved_objects_settings.mdx +++ b/api_docs/kbn_saved_objects_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-saved-objects-settings title: "@kbn/saved-objects-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/saved-objects-settings plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index 41e2d4192a967..f22a9756301fe 100644 --- a/api_docs/kbn_search_api_panels.mdx +++ b/api_docs/kbn_search_api_panels.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-api-panels title: "@kbn/search-api-panels" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-api-panels plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-api-panels'] --- import kbnSearchApiPanelsObj from './kbn_search_api_panels.devdocs.json'; diff --git a/api_docs/kbn_search_connectors.devdocs.json b/api_docs/kbn_search_connectors.devdocs.json index 4592387e46e31..da566d21fe55b 100644 --- a/api_docs/kbn_search_connectors.devdocs.json +++ b/api_docs/kbn_search_connectors.devdocs.json @@ -559,7 +559,7 @@ "text": "ElasticsearchClient" }, ", id: string) => Promise<", - "WriteResponseBase", + "AcknowledgedResponseBase", ">" ], "path": "packages/kbn-search-connectors/lib/delete_connector.ts", diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 513bef5c1f23d..ee2f491091455 100644 --- a/api_docs/kbn_search_connectors.mdx +++ b/api_docs/kbn_search_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-connectors title: "@kbn/search-connectors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-connectors plugin -date: 2024-01-23 +date: 2024-01-24 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 7cac87146232c..24fcb19133a41 100644 --- a/api_docs/kbn_search_errors.mdx +++ b/api_docs/kbn_search_errors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-errors title: "@kbn/search-errors" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-errors plugin -date: 2024-01-23 +date: 2024-01-24 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 ce06dcd0dbcbe..ae225b1ef4bf5 100644 --- a/api_docs/kbn_search_index_documents.mdx +++ b/api_docs/kbn_search_index_documents.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-index-documents title: "@kbn/search-index-documents" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-index-documents plugin -date: 2024-01-23 +date: 2024-01-24 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 6dca3028e24c9..b6f26f4b61f9a 100644 --- a/api_docs/kbn_search_response_warnings.mdx +++ b/api_docs/kbn_search_response_warnings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-search-response-warnings title: "@kbn/search-response-warnings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/search-response-warnings plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx index 544a305e49268..f1844635fdcaa 100644 --- a/api_docs/kbn_security_plugin_types_common.mdx +++ b/api_docs/kbn_security_plugin_types_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-common title: "@kbn/security-plugin-types-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-common plugin -date: 2024-01-23 +date: 2024-01-24 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 aa42e6f2d2b93..5dac6372a20e8 100644 --- a/api_docs/kbn_security_plugin_types_public.mdx +++ b/api_docs/kbn_security_plugin_types_public.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-public title: "@kbn/security-plugin-types-public" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-public plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-public'] --- import kbnSecurityPluginTypesPublicObj from './kbn_security_plugin_types_public.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_server.mdx b/api_docs/kbn_security_plugin_types_server.mdx index 35381bae922b2..1f3c343e0e4fc 100644 --- a/api_docs/kbn_security_plugin_types_server.mdx +++ b/api_docs/kbn_security_plugin_types_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-plugin-types-server title: "@kbn/security-plugin-types-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-plugin-types-server plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server'] --- import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index 354f0a0a396d2..bd6a9a6f0d5a0 100644 --- a/api_docs/kbn_security_solution_features.mdx +++ b/api_docs/kbn_security_solution_features.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-features title: "@kbn/security-solution-features" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-features plugin -date: 2024-01-23 +date: 2024-01-24 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 f7ced9762bf63..29539b3f754fc 100644 --- a/api_docs/kbn_security_solution_navigation.mdx +++ b/api_docs/kbn_security_solution_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-navigation title: "@kbn/security-solution-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-navigation plugin -date: 2024-01-23 +date: 2024-01-24 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 f1f3aa1748686..732db748dfe73 100644 --- a/api_docs/kbn_security_solution_side_nav.mdx +++ b/api_docs/kbn_security_solution_side_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-side-nav title: "@kbn/security-solution-side-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-side-nav plugin -date: 2024-01-23 +date: 2024-01-24 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 7fa773ce265ff..b4551919c461a 100644 --- a/api_docs/kbn_security_solution_storybook_config.mdx +++ b/api_docs/kbn_security_solution_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-security-solution-storybook-config title: "@kbn/security-solution-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/security-solution-storybook-config plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-storybook-config'] --- import kbnSecuritySolutionStorybookConfigObj from './kbn_security_solution_storybook_config.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_autocomplete.mdx b/api_docs/kbn_securitysolution_autocomplete.mdx index d7f6b70b18630..3a44a021e75b6 100644 --- a/api_docs/kbn_securitysolution_autocomplete.mdx +++ b/api_docs/kbn_securitysolution_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-autocomplete title: "@kbn/securitysolution-autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-autocomplete plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-autocomplete'] --- import kbnSecuritysolutionAutocompleteObj from './kbn_securitysolution_autocomplete.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 454a662b3f99f..0721e1faa0f13 100644 --- a/api_docs/kbn_securitysolution_data_table.mdx +++ b/api_docs/kbn_securitysolution_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-data-table title: "@kbn/securitysolution-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-data-table plugin -date: 2024-01-23 +date: 2024-01-24 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 0e224ced27986..0cb6516b262b2 100644 --- a/api_docs/kbn_securitysolution_ecs.mdx +++ b/api_docs/kbn_securitysolution_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-ecs title: "@kbn/securitysolution-ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-ecs plugin -date: 2024-01-23 +date: 2024-01-24 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 f644905d78401..6dec4b18e0c1e 100644 --- a/api_docs/kbn_securitysolution_es_utils.mdx +++ b/api_docs/kbn_securitysolution_es_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-es-utils title: "@kbn/securitysolution-es-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-es-utils plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-es-utils'] --- import kbnSecuritysolutionEsUtilsObj from './kbn_securitysolution_es_utils.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_exception_list_components.mdx b/api_docs/kbn_securitysolution_exception_list_components.mdx index be28c23a4e9de..9c805b8416ebf 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.mdx +++ b/api_docs/kbn_securitysolution_exception_list_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-exception-list-components title: "@kbn/securitysolution-exception-list-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-exception-list-components plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index 9fe8f0a62d235..b6c97bfa34c8b 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index f569a17162ccf..07a273bccf528 100644 --- a/api_docs/kbn_securitysolution_hook_utils.mdx +++ b/api_docs/kbn_securitysolution_hook_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-hook-utils title: "@kbn/securitysolution-hook-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-hook-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 d865951cb371f..1bb17cf13c0ed 100644 --- a/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_alerting_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-alerting-types title: "@kbn/securitysolution-io-ts-alerting-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-alerting-types plugin -date: 2024-01-23 +date: 2024-01-24 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 a0bdac33081d0..c9fe2c45fe311 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_list_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-list-types title: "@kbn/securitysolution-io-ts-list-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-list-types plugin -date: 2024-01-23 +date: 2024-01-24 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 de6e026ab1570..d8ccebfd7d375 100644 --- a/api_docs/kbn_securitysolution_io_ts_types.mdx +++ b/api_docs/kbn_securitysolution_io_ts_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-types title: "@kbn/securitysolution-io-ts-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-types plugin -date: 2024-01-23 +date: 2024-01-24 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 c294fbd2d7d87..d99b81dfc63d2 100644 --- a/api_docs/kbn_securitysolution_io_ts_utils.mdx +++ b/api_docs/kbn_securitysolution_io_ts_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-io-ts-utils title: "@kbn/securitysolution-io-ts-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-io-ts-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 ae9d087818706..73c786ee5fc61 100644 --- a/api_docs/kbn_securitysolution_list_api.mdx +++ b/api_docs/kbn_securitysolution_list_api.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-api title: "@kbn/securitysolution-list-api" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-api plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-list-api'] --- import kbnSecuritysolutionListApiObj from './kbn_securitysolution_list_api.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_list_constants.mdx b/api_docs/kbn_securitysolution_list_constants.mdx index 7c3a1cb8f97ca..ca4a7cb8f9f0e 100644 --- a/api_docs/kbn_securitysolution_list_constants.mdx +++ b/api_docs/kbn_securitysolution_list_constants.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-constants title: "@kbn/securitysolution-list-constants" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-constants plugin -date: 2024-01-23 +date: 2024-01-24 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 a48d9334a078f..6cd74a201dd22 100644 --- a/api_docs/kbn_securitysolution_list_hooks.mdx +++ b/api_docs/kbn_securitysolution_list_hooks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-hooks title: "@kbn/securitysolution-list-hooks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-hooks plugin -date: 2024-01-23 +date: 2024-01-24 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 fc7ec9e45a3dc..6a3d40e5fff68 100644 --- a/api_docs/kbn_securitysolution_list_utils.mdx +++ b/api_docs/kbn_securitysolution_list_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-list-utils title: "@kbn/securitysolution-list-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-list-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 42faa60b5a656..a8303d2f809da 100644 --- a/api_docs/kbn_securitysolution_rules.mdx +++ b/api_docs/kbn_securitysolution_rules.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-rules title: "@kbn/securitysolution-rules" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-rules plugin -date: 2024-01-23 +date: 2024-01-24 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 432a475103765..e081fbef8d422 100644 --- a/api_docs/kbn_securitysolution_t_grid.mdx +++ b/api_docs/kbn_securitysolution_t_grid.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-t-grid title: "@kbn/securitysolution-t-grid" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-t-grid plugin -date: 2024-01-23 +date: 2024-01-24 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 7c5b339a228c3..b762ea351f179 100644 --- a/api_docs/kbn_securitysolution_utils.mdx +++ b/api_docs/kbn_securitysolution_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-utils title: "@kbn/securitysolution-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 7a971377e8867..67da7577856e7 100644 --- a/api_docs/kbn_server_http_tools.mdx +++ b/api_docs/kbn_server_http_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-http-tools title: "@kbn/server-http-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-http-tools plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-http-tools'] --- import kbnServerHttpToolsObj from './kbn_server_http_tools.devdocs.json'; diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index c4449f8fb5f21..c3cf336d9e1a8 100644 --- a/api_docs/kbn_server_route_repository.mdx +++ b/api_docs/kbn_server_route_repository.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-server-route-repository title: "@kbn/server-route-repository" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/server-route-repository plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index 5876919343284..da4fe9545bbbb 100644 --- a/api_docs/kbn_serverless_common_settings.mdx +++ b/api_docs/kbn_serverless_common_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-common-settings title: "@kbn/serverless-common-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-common-settings plugin -date: 2024-01-23 +date: 2024-01-24 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 55dced627989c..2582766aa4ceb 100644 --- a/api_docs/kbn_serverless_observability_settings.mdx +++ b/api_docs/kbn_serverless_observability_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-observability-settings title: "@kbn/serverless-observability-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-observability-settings plugin -date: 2024-01-23 +date: 2024-01-24 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 e27c713b8a2af..c69a0154a3aaf 100644 --- a/api_docs/kbn_serverless_project_switcher.mdx +++ b/api_docs/kbn_serverless_project_switcher.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-project-switcher title: "@kbn/serverless-project-switcher" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-project-switcher plugin -date: 2024-01-23 +date: 2024-01-24 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 d85f1df26f7bd..1080d162f1871 100644 --- a/api_docs/kbn_serverless_search_settings.mdx +++ b/api_docs/kbn_serverless_search_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-search-settings title: "@kbn/serverless-search-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-search-settings plugin -date: 2024-01-23 +date: 2024-01-24 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 4910cdd7a8ad0..d7d0b3d2c1bc9 100644 --- a/api_docs/kbn_serverless_security_settings.mdx +++ b/api_docs/kbn_serverless_security_settings.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-security-settings title: "@kbn/serverless-security-settings" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-security-settings plugin -date: 2024-01-23 +date: 2024-01-24 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 6780812c4ca8f..d99291edc97e6 100644 --- a/api_docs/kbn_serverless_storybook_config.mdx +++ b/api_docs/kbn_serverless_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-serverless-storybook-config title: "@kbn/serverless-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/serverless-storybook-config plugin -date: 2024-01-23 +date: 2024-01-24 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 cd73fa90f2779..3753ef4e884af 100644 --- a/api_docs/kbn_shared_svg.mdx +++ b/api_docs/kbn_shared_svg.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-svg title: "@kbn/shared-svg" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-svg plugin -date: 2024-01-23 +date: 2024-01-24 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 e42d5931e985e..8948dfb8c7355 100644 --- a/api_docs/kbn_shared_ux_avatar_solution.mdx +++ b/api_docs/kbn_shared_ux_avatar_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-avatar-solution title: "@kbn/shared-ux-avatar-solution" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-avatar-solution plugin -date: 2024-01-23 +date: 2024-01-24 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 f600e4428c8b1..fd3ef562eb5e1 100644 --- a/api_docs/kbn_shared_ux_button_exit_full_screen.mdx +++ b/api_docs/kbn_shared_ux_button_exit_full_screen.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-exit-full-screen title: "@kbn/shared-ux-button-exit-full-screen" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-exit-full-screen plugin -date: 2024-01-23 +date: 2024-01-24 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 a2d698dfd0a96..0e577d8563248 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.mdx +++ b/api_docs/kbn_shared_ux_button_toolbar.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-button-toolbar title: "@kbn/shared-ux-button-toolbar" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-button-toolbar plugin -date: 2024-01-23 +date: 2024-01-24 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 70d3437d22ac9..47f3f862c6128 100644 --- a/api_docs/kbn_shared_ux_card_no_data.mdx +++ b/api_docs/kbn_shared_ux_card_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data title: "@kbn/shared-ux-card-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data plugin -date: 2024-01-23 +date: 2024-01-24 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 1bf6f0b79af52..91dc9f54060ee 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-card-no-data-mocks title: "@kbn/shared-ux-card-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-card-no-data-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 85cf03d4a1298..f5565b741b609 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.mdx +++ b/api_docs/kbn_shared_ux_chrome_navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-chrome-navigation title: "@kbn/shared-ux-chrome-navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-chrome-navigation plugin -date: 2024-01-23 +date: 2024-01-24 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 d5483755a7203..29f0e161b754b 100644 --- a/api_docs/kbn_shared_ux_error_boundary.mdx +++ b/api_docs/kbn_shared_ux_error_boundary.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-error-boundary title: "@kbn/shared-ux-error-boundary" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-error-boundary plugin -date: 2024-01-23 +date: 2024-01-24 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 4913cbb542295..1bc7575aeb981 100644 --- a/api_docs/kbn_shared_ux_file_context.mdx +++ b/api_docs/kbn_shared_ux_file_context.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-context title: "@kbn/shared-ux-file-context" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-context plugin -date: 2024-01-23 +date: 2024-01-24 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 c339c3c38e38e..04948d5c3308d 100644 --- a/api_docs/kbn_shared_ux_file_image.mdx +++ b/api_docs/kbn_shared_ux_file_image.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image title: "@kbn/shared-ux-file-image" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image plugin -date: 2024-01-23 +date: 2024-01-24 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 7109fea1555cd..3c3d050348745 100644 --- a/api_docs/kbn_shared_ux_file_image_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_image_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-image-mocks title: "@kbn/shared-ux-file-image-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-image-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 aef36e144b5c4..cf01ec9538871 100644 --- a/api_docs/kbn_shared_ux_file_mocks.mdx +++ b/api_docs/kbn_shared_ux_file_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-mocks title: "@kbn/shared-ux-file-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 22132b412ffd9..f035987b91a9d 100644 --- a/api_docs/kbn_shared_ux_file_picker.mdx +++ b/api_docs/kbn_shared_ux_file_picker.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-picker title: "@kbn/shared-ux-file-picker" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-picker plugin -date: 2024-01-23 +date: 2024-01-24 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 9aa7296993063..ecc95c83d3d6d 100644 --- a/api_docs/kbn_shared_ux_file_types.mdx +++ b/api_docs/kbn_shared_ux_file_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-types title: "@kbn/shared-ux-file-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-types plugin -date: 2024-01-23 +date: 2024-01-24 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 a7a43596dfea1..f8a4e80411e6a 100644 --- a/api_docs/kbn_shared_ux_file_upload.mdx +++ b/api_docs/kbn_shared_ux_file_upload.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-upload title: "@kbn/shared-ux-file-upload" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-upload plugin -date: 2024-01-23 +date: 2024-01-24 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 6db942909fccc..937838deb6cb2 100644 --- a/api_docs/kbn_shared_ux_file_util.mdx +++ b/api_docs/kbn_shared_ux_file_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-file-util title: "@kbn/shared-ux-file-util" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-file-util plugin -date: 2024-01-23 +date: 2024-01-24 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 2c9fbfe5a3e75..bbd9eaf5350c0 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app title: "@kbn/shared-ux-link-redirect-app" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app plugin -date: 2024-01-23 +date: 2024-01-24 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 59c06d89c2132..105c46f444bc8 100644 --- a/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx +++ b/api_docs/kbn_shared_ux_link_redirect_app_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-link-redirect-app-mocks title: "@kbn/shared-ux-link-redirect-app-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-link-redirect-app-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 a112c6954994c..c0920f3e5bc1f 100644 --- a/api_docs/kbn_shared_ux_markdown.mdx +++ b/api_docs/kbn_shared_ux_markdown.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown title: "@kbn/shared-ux-markdown" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown plugin -date: 2024-01-23 +date: 2024-01-24 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 ac54d2646a2d0..8ac2d412a8a55 100644 --- a/api_docs/kbn_shared_ux_markdown_mocks.mdx +++ b/api_docs/kbn_shared_ux_markdown_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-markdown-mocks title: "@kbn/shared-ux-markdown-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-markdown-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 ca525493cbd56..86787a9a4ce01 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data title: "@kbn/shared-ux-page-analytics-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data plugin -date: 2024-01-23 +date: 2024-01-24 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 7cc3a0c168b68..84bfabce5eeba 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_analytics_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-analytics-no-data-mocks title: "@kbn/shared-ux-page-analytics-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-analytics-no-data-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 82c2c6aa5d871..6662e30361f8d 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data title: "@kbn/shared-ux-page-kibana-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data plugin -date: 2024-01-23 +date: 2024-01-24 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 8be98e6ae8459..59bed82a25e01 100644 --- a/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-no-data-mocks title: "@kbn/shared-ux-page-kibana-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-no-data-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 3565ae0432f1c..e2f9277f7b36e 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template title: "@kbn/shared-ux-page-kibana-template" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template plugin -date: 2024-01-23 +date: 2024-01-24 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 359b5687c83d4..50fcdcd81327d 100644 --- a/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_kibana_template_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-kibana-template-mocks title: "@kbn/shared-ux-page-kibana-template-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-kibana-template-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 787b2ed593ffe..fde1ea4744494 100644 --- a/api_docs/kbn_shared_ux_page_no_data.mdx +++ b/api_docs/kbn_shared_ux_page_no_data.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data title: "@kbn/shared-ux-page-no-data" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data plugin -date: 2024-01-23 +date: 2024-01-24 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 24f4d2afcc253..4f64959ad97a8 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config title: "@kbn/shared-ux-page-no-data-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config plugin -date: 2024-01-23 +date: 2024-01-24 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 2aea7607a5f0d..a8818b63e2ec6 100644 --- a/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_config_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-config-mocks title: "@kbn/shared-ux-page-no-data-config-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-config-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 6f7c1aea45f2c..39796b1230e34 100644 --- a/api_docs/kbn_shared_ux_page_no_data_mocks.mdx +++ b/api_docs/kbn_shared_ux_page_no_data_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-no-data-mocks title: "@kbn/shared-ux-page-no-data-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-no-data-mocks plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-no-data-mocks'] --- import kbnSharedUxPageNoDataMocksObj from './kbn_shared_ux_page_no_data_mocks.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_page_solution_nav.mdx b/api_docs/kbn_shared_ux_page_solution_nav.mdx index e619f0beea6d6..a6b6f33eb244b 100644 --- a/api_docs/kbn_shared_ux_page_solution_nav.mdx +++ b/api_docs/kbn_shared_ux_page_solution_nav.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-page-solution-nav title: "@kbn/shared-ux-page-solution-nav" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-page-solution-nav plugin -date: 2024-01-23 +date: 2024-01-24 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 432c4ce1d11b9..011c673c45b67 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views title: "@kbn/shared-ux-prompt-no-data-views" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views plugin -date: 2024-01-23 +date: 2024-01-24 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 df81448bd7f7c..d99e99fa6caf5 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx +++ b/api_docs/kbn_shared_ux_prompt_no_data_views_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-no-data-views-mocks title: "@kbn/shared-ux-prompt-no-data-views-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-no-data-views-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 5023c103c6d7c..3b38e35fbf919 100644 --- a/api_docs/kbn_shared_ux_prompt_not_found.mdx +++ b/api_docs/kbn_shared_ux_prompt_not_found.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-prompt-not-found title: "@kbn/shared-ux-prompt-not-found" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-prompt-not-found plugin -date: 2024-01-23 +date: 2024-01-24 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 d256b98606053..b72ce2502bab7 100644 --- a/api_docs/kbn_shared_ux_router.mdx +++ b/api_docs/kbn_shared_ux_router.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router title: "@kbn/shared-ux-router" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router plugin -date: 2024-01-23 +date: 2024-01-24 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 8b2718a550b82..492396815b34a 100644 --- a/api_docs/kbn_shared_ux_router_mocks.mdx +++ b/api_docs/kbn_shared_ux_router_mocks.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-router-mocks title: "@kbn/shared-ux-router-mocks" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-router-mocks plugin -date: 2024-01-23 +date: 2024-01-24 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 8e86f84975e92..3762c77dfc468 100644 --- a/api_docs/kbn_shared_ux_storybook_config.mdx +++ b/api_docs/kbn_shared_ux_storybook_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-config title: "@kbn/shared-ux-storybook-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-config plugin -date: 2024-01-23 +date: 2024-01-24 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 4f7102d354aa2..9c9ffa5a83e4d 100644 --- a/api_docs/kbn_shared_ux_storybook_mock.mdx +++ b/api_docs/kbn_shared_ux_storybook_mock.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-storybook-mock title: "@kbn/shared-ux-storybook-mock" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-storybook-mock plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-storybook-mock'] --- import kbnSharedUxStorybookMockObj from './kbn_shared_ux_storybook_mock.devdocs.json'; diff --git a/api_docs/kbn_shared_ux_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 1e1d70e001c3a..f086f73e9f0b7 100644 --- a/api_docs/kbn_shared_ux_utility.mdx +++ b/api_docs/kbn_shared_ux_utility.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-shared-ux-utility title: "@kbn/shared-ux-utility" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/shared-ux-utility plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.devdocs.json b/api_docs/kbn_slo_schema.devdocs.json index bd1f6fc99dc21..2353ee0fc18cd 100644 --- a/api_docs/kbn_slo_schema.devdocs.json +++ b/api_docs/kbn_slo_schema.devdocs.json @@ -765,7 +765,7 @@ "label": "FindSLOParams", "description": [], "signature": [ - "{ kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; }" + "{ filters?: string | undefined; kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; }" ], "path": "x-pack/packages/kbn-slo-schema/src/rest_specs/slo.ts", "deprecated": false, @@ -2599,7 +2599,9 @@ "PartialC", "<{ query: ", "PartialC", - "<{ kqlQuery: ", + "<{ filters: ", + "StringC", + "; kqlQuery: ", "StringC", "; page: ", "StringC", diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index 4a885389b34d1..2d07d13fafcda 100644 --- a/api_docs/kbn_slo_schema.mdx +++ b/api_docs/kbn_slo_schema.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-slo-schema title: "@kbn/slo-schema" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/slo-schema plugin -date: 2024-01-23 +date: 2024-01-24 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 a56ed01d85caf..ada0da6074173 100644 --- a/api_docs/kbn_some_dev_log.mdx +++ b/api_docs/kbn_some_dev_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-some-dev-log title: "@kbn/some-dev-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/some-dev-log plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/some-dev-log'] --- import kbnSomeDevLogObj from './kbn_some_dev_log.devdocs.json'; diff --git a/api_docs/kbn_sort_predicates.devdocs.json b/api_docs/kbn_sort_predicates.devdocs.json new file mode 100644 index 0000000000000..12e85f26183af --- /dev/null +++ b/api_docs/kbn_sort_predicates.devdocs.json @@ -0,0 +1,105 @@ +{ + "id": "@kbn/sort-predicates", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/sort-predicates", + "id": "def-common.getSortingCriteria", + "type": "Function", + "tags": [], + "label": "getSortingCriteria", + "description": [], + "signature": [ + "(type: string | undefined, sortBy: string, formatter: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + ") => (rowA: Record, rowB: Record, direction: \"asc\" | \"desc\") => number" + ], + "path": "packages/kbn-sort-predicates/src/sorting.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sort-predicates", + "id": "def-common.getSortingCriteria.$1", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-sort-predicates/src/sorting.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/sort-predicates", + "id": "def-common.getSortingCriteria.$2", + "type": "string", + "tags": [], + "label": "sortBy", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-sort-predicates/src/sorting.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/sort-predicates", + "id": "def-common.getSortingCriteria.$3", + "type": "Object", + "tags": [], + "label": "formatter", + "description": [], + "signature": [ + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + } + ], + "path": "packages/kbn-sort-predicates/src/sorting.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx new file mode 100644 index 0000000000000..6630f91b7d4d0 --- /dev/null +++ b/api_docs/kbn_sort_predicates.mdx @@ -0,0 +1,30 @@ +--- +#### +#### This document is auto-generated and is meant to be viewed inside our experimental, new docs system. +#### Reach out in #docs-engineering for more info. +#### +id: kibKbnSortPredicatesPluginApi +slug: /kibana-dev-docs/api/kbn-sort-predicates +title: "@kbn/sort-predicates" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/sort-predicates plugin +date: 2024-01-24 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates'] +--- +import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json'; + + + +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 4 | 0 | 4 | 0 | + +## Common + +### Functions + + diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index ec1938dd34b08..51ef50dec1f20 100644 --- a/api_docs/kbn_std.mdx +++ b/api_docs/kbn_std.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-std title: "@kbn/std" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/std plugin -date: 2024-01-23 +date: 2024-01-24 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 8d86d0adf1fff..1513c02f537a8 100644 --- a/api_docs/kbn_stdio_dev_helpers.mdx +++ b/api_docs/kbn_stdio_dev_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-stdio-dev-helpers title: "@kbn/stdio-dev-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/stdio-dev-helpers plugin -date: 2024-01-23 +date: 2024-01-24 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 4c3f63bd460d0..4d2d6dcbb6ae1 100644 --- a/api_docs/kbn_storybook.mdx +++ b/api_docs/kbn_storybook.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-storybook title: "@kbn/storybook" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/storybook plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index 11a1ccf8f3422..14c56ab0dc6b6 100644 --- a/api_docs/kbn_telemetry_tools.mdx +++ b/api_docs/kbn_telemetry_tools.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-telemetry-tools title: "@kbn/telemetry-tools" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/telemetry-tools plugin -date: 2024-01-23 +date: 2024-01-24 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 afc4d0cbd7d63..940da8f0b53e0 100644 --- a/api_docs/kbn_test.mdx +++ b/api_docs/kbn_test.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test title: "@kbn/test" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test plugin -date: 2024-01-23 +date: 2024-01-24 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 73c711cd76c88..bb65eb76d73a8 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-01-23 +date: 2024-01-24 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 48d40e9072b0b..49141dfbfc140 100644 --- a/api_docs/kbn_test_jest_helpers.mdx +++ b/api_docs/kbn_test_jest_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-jest-helpers title: "@kbn/test-jest-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-jest-helpers plugin -date: 2024-01-23 +date: 2024-01-24 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 accf0e27cf4ce..fd5fe6abe18f8 100644 --- a/api_docs/kbn_test_subj_selector.mdx +++ b/api_docs/kbn_test_subj_selector.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-test-subj-selector title: "@kbn/test-subj-selector" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/test-subj-selector plugin -date: 2024-01-23 +date: 2024-01-24 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 b9eb244c48174..998a63e373e7f 100644 --- a/api_docs/kbn_text_based_editor.mdx +++ b/api_docs/kbn_text_based_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-text-based-editor title: "@kbn/text-based-editor" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/text-based-editor plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index a64d3f514d7b6..9122a1d3f9c08 100644 --- a/api_docs/kbn_tooling_log.mdx +++ b/api_docs/kbn_tooling_log.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-tooling-log title: "@kbn/tooling-log" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/tooling-log plugin -date: 2024-01-23 +date: 2024-01-24 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 17d381041dc96..6561640e613ee 100644 --- a/api_docs/kbn_triggers_actions_ui_types.mdx +++ b/api_docs/kbn_triggers_actions_ui_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-triggers-actions-ui-types title: "@kbn/triggers-actions-ui-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/triggers-actions-ui-types plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/triggers-actions-ui-types'] --- import kbnTriggersActionsUiTypesObj from './kbn_triggers_actions_ui_types.devdocs.json'; diff --git a/api_docs/kbn_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index 1c1d8e210a9c7..c4c1c31eb3cca 100644 --- a/api_docs/kbn_ts_projects.mdx +++ b/api_docs/kbn_ts_projects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ts-projects title: "@kbn/ts-projects" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ts-projects plugin -date: 2024-01-23 +date: 2024-01-24 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 5ad35e2358d5e..ad664e75f5cb1 100644 --- a/api_docs/kbn_typed_react_router_config.mdx +++ b/api_docs/kbn_typed_react_router_config.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-typed-react-router-config title: "@kbn/typed-react-router-config" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/typed-react-router-config plugin -date: 2024-01-23 +date: 2024-01-24 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 621890b4b1006..62be59db206ce 100644 --- a/api_docs/kbn_ui_actions_browser.mdx +++ b/api_docs/kbn_ui_actions_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-actions-browser title: "@kbn/ui-actions-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-actions-browser plugin -date: 2024-01-23 +date: 2024-01-24 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 0a36df8a95eff..f89378b7cec84 100644 --- a/api_docs/kbn_ui_shared_deps_src.mdx +++ b/api_docs/kbn_ui_shared_deps_src.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-shared-deps-src title: "@kbn/ui-shared-deps-src" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-shared-deps-src plugin -date: 2024-01-23 +date: 2024-01-24 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 8308379daaa7d..38c1f23529597 100644 --- a/api_docs/kbn_ui_theme.mdx +++ b/api_docs/kbn_ui_theme.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ui-theme title: "@kbn/ui-theme" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ui-theme plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-theme'] --- import kbnUiThemeObj from './kbn_ui_theme.devdocs.json'; diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index cf0d063b8ea29..2375209b0561a 100644 --- a/api_docs/kbn_unified_data_table.mdx +++ b/api_docs/kbn_unified_data_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-data-table title: "@kbn/unified-data-table" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-data-table plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-data-table'] --- import kbnUnifiedDataTableObj from './kbn_unified_data_table.devdocs.json'; diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index db603fba9236c..7dab5abfc5338 100644 --- a/api_docs/kbn_unified_doc_viewer.mdx +++ b/api_docs/kbn_unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-doc-viewer title: "@kbn/unified-doc-viewer" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-doc-viewer plugin -date: 2024-01-23 +date: 2024-01-24 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 aa907a6d3f86e..ea1e753f39320 100644 --- a/api_docs/kbn_unified_field_list.mdx +++ b/api_docs/kbn_unified_field_list.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unified-field-list title: "@kbn/unified-field-list" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unified-field-list plugin -date: 2024-01-23 +date: 2024-01-24 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 d58f115dd6ea3..0a2fabdec6979 100644 --- a/api_docs/kbn_unsaved_changes_badge.mdx +++ b/api_docs/kbn_unsaved_changes_badge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-unsaved-changes-badge title: "@kbn/unsaved-changes-badge" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/unsaved-changes-badge plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge'] --- import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json'; diff --git a/api_docs/kbn_url_state.mdx b/api_docs/kbn_url_state.mdx index 7830bfdb10ae3..0e655b2db5374 100644 --- a/api_docs/kbn_url_state.mdx +++ b/api_docs/kbn_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-url-state title: "@kbn/url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/url-state plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/url-state'] --- import kbnUrlStateObj from './kbn_url_state.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index 858cb6aa1949b..51139c5005587 100644 --- a/api_docs/kbn_use_tracked_promise.mdx +++ b/api_docs/kbn_use_tracked_promise.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-use-tracked-promise title: "@kbn/use-tracked-promise" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/use-tracked-promise plugin -date: 2024-01-23 +date: 2024-01-24 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 6d7a93eede3ce..e33ab98448cd1 100644 --- a/api_docs/kbn_user_profile_components.mdx +++ b/api_docs/kbn_user_profile_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-user-profile-components title: "@kbn/user-profile-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/user-profile-components plugin -date: 2024-01-23 +date: 2024-01-24 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 c1e4e4d5dad27..71b01e4256145 100644 --- a/api_docs/kbn_utility_types.mdx +++ b/api_docs/kbn_utility_types.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types title: "@kbn/utility-types" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types plugin -date: 2024-01-23 +date: 2024-01-24 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 6772dc889e735..843db8d01f9da 100644 --- a/api_docs/kbn_utility_types_jest.mdx +++ b/api_docs/kbn_utility_types_jest.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utility-types-jest title: "@kbn/utility-types-jest" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utility-types-jest plugin -date: 2024-01-23 +date: 2024-01-24 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 b7c2967ac9331..1bc7f5822570f 100644 --- a/api_docs/kbn_utils.mdx +++ b/api_docs/kbn_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-utils title: "@kbn/utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/utils plugin -date: 2024-01-23 +date: 2024-01-24 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 8d3c405d913e8..f3eb2a2ffbb5c 100644 --- a/api_docs/kbn_visualization_ui_components.mdx +++ b/api_docs/kbn_visualization_ui_components.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-ui-components title: "@kbn/visualization-ui-components" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-ui-components plugin -date: 2024-01-23 +date: 2024-01-24 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 e8398bea04e06..c683956c9ffb6 100644 --- a/api_docs/kbn_visualization_utils.mdx +++ b/api_docs/kbn_visualization_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-visualization-utils title: "@kbn/visualization-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/visualization-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 86a6c826d18e1..ec7ea59f50c4d 100644 --- a/api_docs/kbn_xstate_utils.mdx +++ b/api_docs/kbn_xstate_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-xstate-utils title: "@kbn/xstate-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/xstate-utils plugin -date: 2024-01-23 +date: 2024-01-24 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 40fbd00d7e14c..3ae658da756e3 100644 --- a/api_docs/kbn_yarn_lock_validator.mdx +++ b/api_docs/kbn_yarn_lock_validator.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-yarn-lock-validator title: "@kbn/yarn-lock-validator" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/yarn-lock-validator plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx index 157156d3f636a..b3633e2ba050d 100644 --- a/api_docs/kbn_zod_helpers.mdx +++ b/api_docs/kbn_zod_helpers.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-zod-helpers title: "@kbn/zod-helpers" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/zod-helpers plugin -date: 2024-01-23 +date: 2024-01-24 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 da6ef5086455f..8c89f38c8f70c 100644 --- a/api_docs/kibana_overview.mdx +++ b/api_docs/kibana_overview.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaOverview title: "kibanaOverview" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaOverview plugin -date: 2024-01-23 +date: 2024-01-24 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 2e755d53c4ba2..27ae657544855 100644 --- a/api_docs/kibana_react.mdx +++ b/api_docs/kibana_react.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaReact title: "kibanaReact" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaReact plugin -date: 2024-01-23 +date: 2024-01-24 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 0ec43a01e9567..fd31b85b7db6b 100644 --- a/api_docs/kibana_utils.mdx +++ b/api_docs/kibana_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kibanaUtils title: "kibanaUtils" image: https://source.unsplash.com/400x175/?github description: API docs for the kibanaUtils plugin -date: 2024-01-23 +date: 2024-01-24 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 26db0b51dc057..91745954f3575 100644 --- a/api_docs/kubernetes_security.mdx +++ b/api_docs/kubernetes_security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kubernetesSecurity title: "kubernetesSecurity" image: https://source.unsplash.com/400x175/?github description: API docs for the kubernetesSecurity plugin -date: 2024-01-23 +date: 2024-01-24 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 af5f331178737..202587a8468b5 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -8539,6 +8539,71 @@ ], "returnComment": [] }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSortedColumns", + "type": "Function", + "tags": [], + "label": "getSortedColumns", + "description": [ + "\nA visualization can share how columns are visually sorted" + ], + "signature": [ + "((state: T, datasourceLayers?: Partial> | undefined) => string[]) | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSortedColumns.$1", + "type": "Uncategorized", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "T" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSortedColumns.$2", + "type": "Object", + "tags": [], + "label": "datasourceLayers", + "description": [], + "signature": [ + "Partial> | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, { "parentPluginId": "lens", "id": "def-public.Visualization.getTelemetryEventsOnSave", diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 335bdf47ecb77..3049d5800a3ef 100644 --- a/api_docs/lens.mdx +++ b/api_docs/lens.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lens title: "lens" image: https://source.unsplash.com/400x175/?github description: API docs for the lens plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 655 | 0 | 555 | 61 | +| 658 | 0 | 557 | 61 | ## Client diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index c12bca8178375..4a509d102d31d 100644 --- a/api_docs/license_api_guard.mdx +++ b/api_docs/license_api_guard.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseApiGuard title: "licenseApiGuard" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseApiGuard plugin -date: 2024-01-23 +date: 2024-01-24 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 0a40dcdf0fcc2..0bc40d1f58957 100644 --- a/api_docs/license_management.mdx +++ b/api_docs/license_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licenseManagement title: "licenseManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the licenseManagement plugin -date: 2024-01-23 +date: 2024-01-24 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 da9619b1c1acd..9840c18653e3f 100644 --- a/api_docs/licensing.mdx +++ b/api_docs/licensing.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/licensing title: "licensing" image: https://source.unsplash.com/400x175/?github description: API docs for the licensing plugin -date: 2024-01-23 +date: 2024-01-24 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 8f7707c96e27b..d2acab1445183 100644 --- a/api_docs/links.mdx +++ b/api_docs/links.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/links title: "links" image: https://source.unsplash.com/400x175/?github description: API docs for the links plugin -date: 2024-01-23 +date: 2024-01-24 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 da8f98731898c..05cd0d6110977 100644 --- a/api_docs/lists.mdx +++ b/api_docs/lists.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/lists title: "lists" image: https://source.unsplash.com/400x175/?github description: API docs for the lists plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/log_explorer.mdx b/api_docs/log_explorer.mdx index 8333c8148d293..6b7c9654616b9 100644 --- a/api_docs/log_explorer.mdx +++ b/api_docs/log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logExplorer title: "logExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logExplorer plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logExplorer'] --- import logExplorerObj from './log_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index cd1ef7be96dce..156cd15584165 100644 --- a/api_docs/logs_shared.mdx +++ b/api_docs/logs_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logsShared title: "logsShared" image: https://source.unsplash.com/400x175/?github description: API docs for the logsShared plugin -date: 2024-01-23 +date: 2024-01-24 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 0090e8dbcb6c1..f87ab59754932 100644 --- a/api_docs/management.mdx +++ b/api_docs/management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/management title: "management" image: https://source.unsplash.com/400x175/?github description: API docs for the management plugin -date: 2024-01-23 +date: 2024-01-24 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 f5facced656da..c1dddfccc5f07 100644 --- a/api_docs/maps.mdx +++ b/api_docs/maps.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/maps title: "maps" image: https://source.unsplash.com/400x175/?github description: API docs for the maps plugin -date: 2024-01-23 +date: 2024-01-24 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 da35da9edf9d4..54b21cb5b2e86 100644 --- a/api_docs/maps_ems.mdx +++ b/api_docs/maps_ems.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mapsEms title: "mapsEms" image: https://source.unsplash.com/400x175/?github description: API docs for the mapsEms plugin -date: 2024-01-23 +date: 2024-01-24 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 3e136b07919f4..9c1ff43192255 100644 --- a/api_docs/metrics_data_access.mdx +++ b/api_docs/metrics_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/metricsDataAccess title: "metricsDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the metricsDataAccess plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index c6ad3cf1aaea7..534530c454778 100644 --- a/api_docs/ml.mdx +++ b/api_docs/ml.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ml title: "ml" image: https://source.unsplash.com/400x175/?github description: API docs for the ml plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx index ad7dde73b0a2c..98c6971543eba 100644 --- a/api_docs/mock_idp_plugin.mdx +++ b/api_docs/mock_idp_plugin.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/mockIdpPlugin title: "mockIdpPlugin" image: https://source.unsplash.com/400x175/?github description: API docs for the mockIdpPlugin plugin -date: 2024-01-23 +date: 2024-01-24 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 058181dc9ff7a..df0d6d085af61 100644 --- a/api_docs/monitoring.mdx +++ b/api_docs/monitoring.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoring title: "monitoring" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoring plugin -date: 2024-01-23 +date: 2024-01-24 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 c9d6afd2d509b..4e625ddce82aa 100644 --- a/api_docs/monitoring_collection.mdx +++ b/api_docs/monitoring_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/monitoringCollection title: "monitoringCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the monitoringCollection plugin -date: 2024-01-23 +date: 2024-01-24 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 918f3a246d60a..ed83feb75f10e 100644 --- a/api_docs/navigation.mdx +++ b/api_docs/navigation.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/navigation title: "navigation" image: https://source.unsplash.com/400x175/?github description: API docs for the navigation plugin -date: 2024-01-23 +date: 2024-01-24 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 403c657fe800a..b30e12e656e65 100644 --- a/api_docs/newsfeed.mdx +++ b/api_docs/newsfeed.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/newsfeed title: "newsfeed" image: https://source.unsplash.com/400x175/?github description: API docs for the newsfeed plugin -date: 2024-01-23 +date: 2024-01-24 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 b7a16d002a130..55031393470bc 100644 --- a/api_docs/no_data_page.mdx +++ b/api_docs/no_data_page.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/noDataPage title: "noDataPage" image: https://source.unsplash.com/400x175/?github description: API docs for the noDataPage plugin -date: 2024-01-23 +date: 2024-01-24 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 c86a494699258..6a60579373f44 100644 --- a/api_docs/notifications.mdx +++ b/api_docs/notifications.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/notifications title: "notifications" image: https://source.unsplash.com/400x175/?github description: API docs for the notifications plugin -date: 2024-01-23 +date: 2024-01-24 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 07884e7d848af..ef4610ed3d2bf 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -9350,7 +9350,9 @@ "PartialC", "<{ query: ", "PartialC", - "<{ kqlQuery: ", + "<{ filters: ", + "StringC", + "; kqlQuery: ", "StringC", "; page: ", "StringC", @@ -9380,7 +9382,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - " & { params?: { query?: { kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string; total: string; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"cardinality\" | \"last_value\" | \"std_deviation\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); } & { filter?: string | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; revision: number; settings: { syncDelay: string; frequency: string; }; enabled: boolean; tags: string[]; groupBy: string; createdAt: string; updatedAt: string; version: number; } & { instanceId?: string | undefined; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; })[]; }>; } & ", + " & { params?: { query?: { filters?: string | undefined; kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string; total: string; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"cardinality\" | \"last_value\" | \"std_deviation\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); } & { filter?: string | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; revision: number; settings: { syncDelay: string; frequency: string; }; enabled: boolean; tags: string[]; groupBy: string; createdAt: string; updatedAt: string; version: number; } & { instanceId?: string | undefined; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; })[]; }>; } & ", { "pluginId": "observability", "scope": "server", @@ -11624,7 +11626,9 @@ "PartialC", "<{ query: ", "PartialC", - "<{ kqlQuery: ", + "<{ filters: ", + "StringC", + "; kqlQuery: ", "StringC", "; page: ", "StringC", @@ -11654,7 +11658,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - " & { params?: { query?: { kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string; total: string; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"cardinality\" | \"last_value\" | \"std_deviation\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); } & { filter?: string | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; revision: number; settings: { syncDelay: string; frequency: string; }; enabled: boolean; tags: string[]; groupBy: string; createdAt: string; updatedAt: string; version: number; } & { instanceId?: string | undefined; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; })[]; }>; } & ", + " & { params?: { query?: { filters?: string | undefined; kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string; total: string; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"cardinality\" | \"last_value\" | \"std_deviation\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); } & { filter?: string | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; revision: number; settings: { syncDelay: string; frequency: string; }; enabled: boolean; tags: string[]; groupBy: string; createdAt: string; updatedAt: string; version: number; } & { instanceId?: string | undefined; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; })[]; }>; } & ", { "pluginId": "observability", "scope": "server", diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index 533be8bb26918..4cefd6e68d53e 100644 --- a/api_docs/observability.mdx +++ b/api_docs/observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observability title: "observability" image: https://source.unsplash.com/400x175/?github description: API docs for the observability plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observability'] --- import observabilityObj from './observability.devdocs.json'; diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index 12af85ed1ab19..62afbcdcf80e3 100644 --- a/api_docs/observability_a_i_assistant.mdx +++ b/api_docs/observability_a_i_assistant.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityAIAssistant title: "observabilityAIAssistant" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityAIAssistant plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; diff --git a/api_docs/observability_log_explorer.mdx b/api_docs/observability_log_explorer.mdx index efe671bdb66e0..88d7a71c985e4 100644 --- a/api_docs/observability_log_explorer.mdx +++ b/api_docs/observability_log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogExplorer title: "observabilityLogExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogExplorer plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogExplorer'] --- import observabilityLogExplorerObj from './observability_log_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index 990ede8ea07cd..5fb75efe87b79 100644 --- a/api_docs/observability_onboarding.mdx +++ b/api_docs/observability_onboarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityOnboarding title: "observabilityOnboarding" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityOnboarding plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityOnboarding'] --- import observabilityOnboardingObj from './observability_onboarding.devdocs.json'; diff --git a/api_docs/observability_shared.devdocs.json b/api_docs/observability_shared.devdocs.json index 5ff5a8c12fb60..e84330bda7aff 100644 --- a/api_docs/observability_shared.devdocs.json +++ b/api_docs/observability_shared.devdocs.json @@ -1276,7 +1276,15 @@ "section": "def-common.ChromeBreadcrumb", "text": "ChromeBreadcrumb" }, - "[], app?: { id: string; label: string; } | undefined) => void" + "[], app?: { id: string; label: string; } | undefined, breadcrumbsAppendExtension?: ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeBreadcrumbsAppendExtension", + "text": "ChromeBreadcrumbsAppendExtension" + }, + " | undefined) => void" ], "path": "x-pack/plugins/observability_shared/public/hooks/use_breadcrumbs.ts", "deprecated": false, @@ -1338,6 +1346,28 @@ "trackAdoption": false } ] + }, + { + "parentPluginId": "observabilityShared", + "id": "def-public.useBreadcrumbs.$3", + "type": "Object", + "tags": [], + "label": "breadcrumbsAppendExtension", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeBreadcrumbsAppendExtension", + "text": "ChromeBreadcrumbsAppendExtension" + }, + " | undefined" + ], + "path": "x-pack/plugins/observability_shared/public/hooks/use_breadcrumbs.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [], diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index fcba384f41d51..88c5c1b883d3e 100644 --- a/api_docs/observability_shared.mdx +++ b/api_docs/observability_shared.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityShared title: "observabilityShared" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityShared plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityShared'] --- import observabilitySharedObj from './observability_shared.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observ | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 314 | 1 | 309 | 15 | +| 315 | 1 | 310 | 15 | ## Client diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index cadea0abcd43b..9198591bd4f5b 100644 --- a/api_docs/osquery.mdx +++ b/api_docs/osquery.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/osquery title: "osquery" image: https://source.unsplash.com/400x175/?github description: API docs for the osquery plugin -date: 2024-01-23 +date: 2024-01-24 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 d7bd1bb0a1ffb..5f8b573b2f647 100644 --- a/api_docs/painless_lab.mdx +++ b/api_docs/painless_lab.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/painlessLab title: "painlessLab" image: https://source.unsplash.com/400x175/?github description: API docs for the painlessLab plugin -date: 2024-01-23 +date: 2024-01-24 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 e990a6c08c203..55eaeec71381a 100644 --- a/api_docs/plugin_directory.mdx +++ b/api_docs/plugin_directory.mdx @@ -7,7 +7,7 @@ id: kibDevDocsPluginDirectory slug: /kibana-dev-docs/api-meta/plugin-api-directory title: Directory description: Directory of public APIs available through plugins or packages. -date: 2024-01-23 +date: 2024-01-24 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 | |--------------|----------|------------------------| -| 745 | 637 | 41 | +| 747 | 639 | 41 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 79272 | 230 | 67871 | 1706 | +| 79311 | 230 | 67909 | 1706 | ## Plugin Directory @@ -32,7 +32,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 2 | 0 | 2 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 70 | 1 | 4 | 1 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 830 | 1 | 799 | 51 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 834 | 1 | 803 | 51 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | The user interface for Elastic APM | 29 | 0 | 29 | 125 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 9 | 0 | 9 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | Asset manager plugin for entity assets (inventory, topology, etc) | 9 | 0 | 9 | 2 | @@ -69,7 +69,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 37 | 0 | 35 | 2 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | APIs used to assess the quality of data in Elasticsearch indexes | 2 | 0 | 0 | 0 | | | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | Server APIs for the Elastic AI Assistant | 41 | 0 | 27 | 0 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 519 | 1 | 419 | 8 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 520 | 1 | 420 | 8 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Extends embeddable plugin with more functionality | 14 | 0 | 14 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides encryption and decryption utilities for saved objects containing sensitive information. | 53 | 0 | 46 | 1 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Adds dashboards for discovering and managing Enterprise Search products. | 5 | 0 | 5 | 0 | @@ -119,7 +119,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | kibanaUsageCollection | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 0 | 0 | 0 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 609 | 3 | 416 | 9 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 5 | 0 | 5 | 1 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 655 | 0 | 555 | 61 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 658 | 0 | 557 | 61 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 8 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 | @@ -144,7 +144,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 75 | 0 | 73 | 13 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin exposes and registers observability log consumption features. | 18 | 0 | 18 | 1 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 14 | 0 | 14 | 0 | -| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 314 | 1 | 309 | 15 | +| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 315 | 1 | 310 | 15 | | | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 23 | 0 | 23 | 7 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 2 | 0 | 2 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds a standardized Presentation panel which allows any forward ref component to interface with various Kibana systems. | 11 | 0 | 11 | 3 | @@ -430,6 +430,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 16 | 0 | 16 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 19 | 0 | 17 | 6 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 2 | 0 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 26 | 0 | 26 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 14 | 0 | 9 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 44 | 0 | 43 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 5 | 0 | 5 | 0 | @@ -660,6 +661,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 11 | 0 | 3 | 0 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 144 | 0 | 144 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 20 | 0 | 12 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 102 | 2 | 65 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 4 | 0 | 2 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 41 | 2 | 21 | 0 | diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx index 78fc5c9847a3a..f3d0d0bb4853c 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-01-23 +date: 2024-01-24 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 ab4042b13998b..59e4f63d90f66 100644 --- a/api_docs/presentation_util.mdx +++ b/api_docs/presentation_util.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/presentationUtil title: "presentationUtil" image: https://source.unsplash.com/400x175/?github description: API docs for the presentationUtil plugin -date: 2024-01-23 +date: 2024-01-24 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 0f8b0e8cc8678..18dd7f886c652 100644 --- a/api_docs/profiling.mdx +++ b/api_docs/profiling.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profiling title: "profiling" image: https://source.unsplash.com/400x175/?github description: API docs for the profiling plugin -date: 2024-01-23 +date: 2024-01-24 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 5ec65d12f3c0d..fa66d204b754e 100644 --- a/api_docs/profiling_data_access.mdx +++ b/api_docs/profiling_data_access.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/profilingDataAccess title: "profilingDataAccess" image: https://source.unsplash.com/400x175/?github description: API docs for the profilingDataAccess plugin -date: 2024-01-23 +date: 2024-01-24 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 cb9c58a1a418d..04c42bc699604 100644 --- a/api_docs/remote_clusters.mdx +++ b/api_docs/remote_clusters.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/remoteClusters title: "remoteClusters" image: https://source.unsplash.com/400x175/?github description: API docs for the remoteClusters plugin -date: 2024-01-23 +date: 2024-01-24 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 288af7cffaa75..1ceb6d9e94c99 100644 --- a/api_docs/reporting.mdx +++ b/api_docs/reporting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/reporting title: "reporting" image: https://source.unsplash.com/400x175/?github description: API docs for the reporting plugin -date: 2024-01-23 +date: 2024-01-24 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 6a3a14f03e44c..da213b8749929 100644 --- a/api_docs/rollup.mdx +++ b/api_docs/rollup.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/rollup title: "rollup" image: https://source.unsplash.com/400x175/?github description: API docs for the rollup plugin -date: 2024-01-23 +date: 2024-01-24 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 2815d25b6811c..749c95845f692 100644 --- a/api_docs/rule_registry.mdx +++ b/api_docs/rule_registry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ruleRegistry title: "ruleRegistry" image: https://source.unsplash.com/400x175/?github description: API docs for the ruleRegistry plugin -date: 2024-01-23 +date: 2024-01-24 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 c6d932ba26837..139e194c06678 100644 --- a/api_docs/runtime_fields.mdx +++ b/api_docs/runtime_fields.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/runtimeFields title: "runtimeFields" image: https://source.unsplash.com/400x175/?github description: API docs for the runtimeFields plugin -date: 2024-01-23 +date: 2024-01-24 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 1a139887e8388..27900154c4b59 100644 --- a/api_docs/saved_objects.mdx +++ b/api_docs/saved_objects.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjects title: "savedObjects" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjects plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjects'] --- import savedObjectsObj from './saved_objects.devdocs.json'; diff --git a/api_docs/saved_objects_finder.mdx b/api_docs/saved_objects_finder.mdx index e44bdb77dee2c..5fb2bf1641586 100644 --- a/api_docs/saved_objects_finder.mdx +++ b/api_docs/saved_objects_finder.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsFinder title: "savedObjectsFinder" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsFinder plugin -date: 2024-01-23 +date: 2024-01-24 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 6e8525746cb82..bf221f57bdff1 100644 --- a/api_docs/saved_objects_management.mdx +++ b/api_docs/saved_objects_management.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsManagement title: "savedObjectsManagement" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsManagement plugin -date: 2024-01-23 +date: 2024-01-24 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 b3147a57e3971..9239e145fa3ed 100644 --- a/api_docs/saved_objects_tagging.mdx +++ b/api_docs/saved_objects_tagging.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTagging title: "savedObjectsTagging" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTagging plugin -date: 2024-01-23 +date: 2024-01-24 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 92f4a42aebced..bb5c77b59703c 100644 --- a/api_docs/saved_objects_tagging_oss.mdx +++ b/api_docs/saved_objects_tagging_oss.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedObjectsTaggingOss title: "savedObjectsTaggingOss" image: https://source.unsplash.com/400x175/?github description: API docs for the savedObjectsTaggingOss plugin -date: 2024-01-23 +date: 2024-01-24 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 4de6b84046818..91aee2b16f97c 100644 --- a/api_docs/saved_search.mdx +++ b/api_docs/saved_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/savedSearch title: "savedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the savedSearch plugin -date: 2024-01-23 +date: 2024-01-24 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 37ded3a59ec4a..c630166c0bdfa 100644 --- a/api_docs/screenshot_mode.mdx +++ b/api_docs/screenshot_mode.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotMode title: "screenshotMode" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotMode plugin -date: 2024-01-23 +date: 2024-01-24 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 3ae92841686c0..2b885796c9a91 100644 --- a/api_docs/screenshotting.mdx +++ b/api_docs/screenshotting.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/screenshotting title: "screenshotting" image: https://source.unsplash.com/400x175/?github description: API docs for the screenshotting plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 29d7582be7b57..2fe1959a4ce66 100644 --- a/api_docs/security.mdx +++ b/api_docs/security.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/security title: "security" image: https://source.unsplash.com/400x175/?github description: API docs for the security plugin -date: 2024-01-23 +date: 2024-01-24 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 35f04edb35917..8370607653106 100644 --- a/api_docs/security_solution.mdx +++ b/api_docs/security_solution.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolution title: "securitySolution" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolution plugin -date: 2024-01-23 +date: 2024-01-24 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 286d6670ffeee..911db36f28291 100644 --- a/api_docs/security_solution_ess.mdx +++ b/api_docs/security_solution_ess.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionEss title: "securitySolutionEss" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionEss plugin -date: 2024-01-23 +date: 2024-01-24 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 b009a3b7c40da..bd591d93554a8 100644 --- a/api_docs/security_solution_serverless.mdx +++ b/api_docs/security_solution_serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/securitySolutionServerless title: "securitySolutionServerless" image: https://source.unsplash.com/400x175/?github description: API docs for the securitySolutionServerless plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.devdocs.json b/api_docs/serverless.devdocs.json index 90c52b9aaca0d..da295e570a95b 100644 --- a/api_docs/serverless.devdocs.json +++ b/api_docs/serverless.devdocs.json @@ -304,12 +304,7 @@ "path": "x-pack/plugins/serverless/public/types.ts", "deprecated": true, "trackAdoption": false, - "references": [ - { - "plugin": "securitySolutionServerless", - "path": "x-pack/plugins/security_solution_serverless/public/navigation/index.ts" - } - ], + "references": [], "children": [ { "parentPluginId": "serverless", diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index 9d2333b69af3f..f08e0a3a5704b 100644 --- a/api_docs/serverless.mdx +++ b/api_docs/serverless.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverless title: "serverless" image: https://source.unsplash.com/400x175/?github description: API docs for the serverless plugin -date: 2024-01-23 +date: 2024-01-24 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 33dfd90b2cc10..32ea9344b1b9c 100644 --- a/api_docs/serverless_observability.mdx +++ b/api_docs/serverless_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessObservability title: "serverlessObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessObservability plugin -date: 2024-01-23 +date: 2024-01-24 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 9ec18454037ed..11b63b6189299 100644 --- a/api_docs/serverless_search.mdx +++ b/api_docs/serverless_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/serverlessSearch title: "serverlessSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the serverlessSearch plugin -date: 2024-01-23 +date: 2024-01-24 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 8afec45b05ce2..5025128a06350 100644 --- a/api_docs/session_view.mdx +++ b/api_docs/session_view.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/sessionView title: "sessionView" image: https://source.unsplash.com/400x175/?github description: API docs for the sessionView plugin -date: 2024-01-23 +date: 2024-01-24 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 18cbad69916cc..6d1aa9cdbf539 100644 --- a/api_docs/share.mdx +++ b/api_docs/share.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/share title: "share" image: https://source.unsplash.com/400x175/?github description: API docs for the share plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index 953d41fcf0a1e..fb6daf6a075da 100644 --- a/api_docs/snapshot_restore.mdx +++ b/api_docs/snapshot_restore.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/snapshotRestore title: "snapshotRestore" image: https://source.unsplash.com/400x175/?github description: API docs for the snapshotRestore plugin -date: 2024-01-23 +date: 2024-01-24 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 f7f53a6b4ff45..8fd2470d726ca 100644 --- a/api_docs/spaces.mdx +++ b/api_docs/spaces.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/spaces title: "spaces" image: https://source.unsplash.com/400x175/?github description: API docs for the spaces plugin -date: 2024-01-23 +date: 2024-01-24 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 74d0bbb181055..ade169d549cac 100644 --- a/api_docs/stack_alerts.mdx +++ b/api_docs/stack_alerts.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackAlerts title: "stackAlerts" image: https://source.unsplash.com/400x175/?github description: API docs for the stackAlerts plugin -date: 2024-01-23 +date: 2024-01-24 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 218142d26174d..571f5438ce3f8 100644 --- a/api_docs/stack_connectors.mdx +++ b/api_docs/stack_connectors.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/stackConnectors title: "stackConnectors" image: https://source.unsplash.com/400x175/?github description: API docs for the stackConnectors plugin -date: 2024-01-23 +date: 2024-01-24 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 71e431d603ab9..8ef730544acf9 100644 --- a/api_docs/task_manager.mdx +++ b/api_docs/task_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/taskManager title: "taskManager" image: https://source.unsplash.com/400x175/?github description: API docs for the taskManager plugin -date: 2024-01-23 +date: 2024-01-24 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 8a6eb8dad6fde..bc75763dd4a44 100644 --- a/api_docs/telemetry.mdx +++ b/api_docs/telemetry.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetry title: "telemetry" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetry plugin -date: 2024-01-23 +date: 2024-01-24 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 b9c14f313113b..da2e4bd3e456e 100644 --- a/api_docs/telemetry_collection_manager.mdx +++ b/api_docs/telemetry_collection_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionManager title: "telemetryCollectionManager" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionManager plugin -date: 2024-01-23 +date: 2024-01-24 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 cbcf072eaaddc..68c849a2b1bde 100644 --- a/api_docs/telemetry_collection_xpack.mdx +++ b/api_docs/telemetry_collection_xpack.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryCollectionXpack title: "telemetryCollectionXpack" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryCollectionXpack plugin -date: 2024-01-23 +date: 2024-01-24 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 3ecc571c852f1..3c48995ca801d 100644 --- a/api_docs/telemetry_management_section.mdx +++ b/api_docs/telemetry_management_section.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/telemetryManagementSection title: "telemetryManagementSection" image: https://source.unsplash.com/400x175/?github description: API docs for the telemetryManagementSection plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index 8fa1f327ff75b..970343d7bbab9 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index c99357172e022..424ceb625da97 100644 --- a/api_docs/threat_intelligence.mdx +++ b/api_docs/threat_intelligence.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/threatIntelligence title: "threatIntelligence" image: https://source.unsplash.com/400x175/?github description: API docs for the threatIntelligence plugin -date: 2024-01-23 +date: 2024-01-24 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 cea3d3d999831..b68ae37498756 100644 --- a/api_docs/timelines.mdx +++ b/api_docs/timelines.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/timelines title: "timelines" image: https://source.unsplash.com/400x175/?github description: API docs for the timelines plugin -date: 2024-01-23 +date: 2024-01-24 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 9053a2d0d241a..3864f0de24bee 100644 --- a/api_docs/transform.mdx +++ b/api_docs/transform.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/transform title: "transform" image: https://source.unsplash.com/400x175/?github description: API docs for the transform plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'transform'] --- import transformObj from './transform.devdocs.json'; diff --git a/api_docs/triggers_actions_ui.devdocs.json b/api_docs/triggers_actions_ui.devdocs.json index a8a75c76dd81e..cf3e20ce5204e 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -5102,7 +5102,7 @@ "label": "setRuleProperty", "description": [], "signature": [ - "(key: Prop, value: ", + "(key: Prop, value: ", "SanitizedRule", "[Prop] | null) => void" ], diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index f2fbe8e54f995..7828166fa71ca 100644 --- a/api_docs/triggers_actions_ui.mdx +++ b/api_docs/triggers_actions_ui.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/triggersActionsUi title: "triggersActionsUi" image: https://source.unsplash.com/400x175/?github description: API docs for the triggersActionsUi plugin -date: 2024-01-23 +date: 2024-01-24 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 081e6efe7423e..94d4719c14156 100644 --- a/api_docs/ui_actions.mdx +++ b/api_docs/ui_actions.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActions title: "uiActions" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActions plugin -date: 2024-01-23 +date: 2024-01-24 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 24ed0bd8cf73e..133ae106ef486 100644 --- a/api_docs/ui_actions_enhanced.mdx +++ b/api_docs/ui_actions_enhanced.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uiActionsEnhanced title: "uiActionsEnhanced" image: https://source.unsplash.com/400x175/?github description: API docs for the uiActionsEnhanced plugin -date: 2024-01-23 +date: 2024-01-24 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 d141fb01691d0..583c90b2996d3 100644 --- a/api_docs/unified_doc_viewer.mdx +++ b/api_docs/unified_doc_viewer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedDocViewer title: "unifiedDocViewer" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedDocViewer plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer'] --- import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json'; diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index ae45ca1788e85..7ed165e36b779 100644 --- a/api_docs/unified_histogram.mdx +++ b/api_docs/unified_histogram.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedHistogram title: "unifiedHistogram" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedHistogram plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedHistogram'] --- import unifiedHistogramObj from './unified_histogram.devdocs.json'; diff --git a/api_docs/unified_search.devdocs.json b/api_docs/unified_search.devdocs.json index 0d5e841aaada5..cd2fe338a8c6f 100644 --- a/api_docs/unified_search.devdocs.json +++ b/api_docs/unified_search.devdocs.json @@ -731,7 +731,7 @@ "SuggestionsListSize", " | undefined; suggestionsAbstraction?: ", "SuggestionsAbstraction", - " | undefined; isScreenshotMode?: boolean | undefined; submitOnBlur?: boolean | undefined; timeHistory?: ", + " | undefined; isScreenshotMode?: boolean | undefined; submitOnBlur?: boolean | undefined; renderQueryInputAppend?: (() => React.ReactNode) | undefined; timeHistory?: ", { "pluginId": "data", "scope": "public", diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index ef591f5ddef62..6a2c31d182b44 100644 --- a/api_docs/unified_search.mdx +++ b/api_docs/unified_search.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch title: "unifiedSearch" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch plugin -date: 2024-01-23 +date: 2024-01-24 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 4b81c23af3d14..fa712d02dc2b3 100644 --- a/api_docs/unified_search_autocomplete.mdx +++ b/api_docs/unified_search_autocomplete.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/unifiedSearch-autocomplete title: "unifiedSearch.autocomplete" image: https://source.unsplash.com/400x175/?github description: API docs for the unifiedSearch.autocomplete plugin -date: 2024-01-23 +date: 2024-01-24 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 80aabb5ebeb83..9d8b0bfc686db 100644 --- a/api_docs/uptime.mdx +++ b/api_docs/uptime.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/uptime title: "uptime" image: https://source.unsplash.com/400x175/?github description: API docs for the uptime plugin -date: 2024-01-23 +date: 2024-01-24 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 706f2ed37799d..be8c06c8e7170 100644 --- a/api_docs/url_forwarding.mdx +++ b/api_docs/url_forwarding.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/urlForwarding title: "urlForwarding" image: https://source.unsplash.com/400x175/?github description: API docs for the urlForwarding plugin -date: 2024-01-23 +date: 2024-01-24 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 9b65c9ae04450..8e6307ba3f143 100644 --- a/api_docs/usage_collection.mdx +++ b/api_docs/usage_collection.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/usageCollection title: "usageCollection" image: https://source.unsplash.com/400x175/?github description: API docs for the usageCollection plugin -date: 2024-01-23 +date: 2024-01-24 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 864897f6f43c8..f31a7ee114e83 100644 --- a/api_docs/ux.mdx +++ b/api_docs/ux.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/ux title: "ux" image: https://source.unsplash.com/400x175/?github description: API docs for the ux plugin -date: 2024-01-23 +date: 2024-01-24 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 cfadf2dbd9247..4c65486223982 100644 --- a/api_docs/vis_default_editor.mdx +++ b/api_docs/vis_default_editor.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visDefaultEditor title: "visDefaultEditor" image: https://source.unsplash.com/400x175/?github description: API docs for the visDefaultEditor plugin -date: 2024-01-23 +date: 2024-01-24 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 86b7fa32f7b10..d6726f44665cf 100644 --- a/api_docs/vis_type_gauge.mdx +++ b/api_docs/vis_type_gauge.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeGauge title: "visTypeGauge" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeGauge plugin -date: 2024-01-23 +date: 2024-01-24 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 153d9ad755fd6..86d23f5309c07 100644 --- a/api_docs/vis_type_heatmap.mdx +++ b/api_docs/vis_type_heatmap.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeHeatmap title: "visTypeHeatmap" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeHeatmap plugin -date: 2024-01-23 +date: 2024-01-24 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 a1e88e070fec4..c9663713193bf 100644 --- a/api_docs/vis_type_pie.mdx +++ b/api_docs/vis_type_pie.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypePie title: "visTypePie" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypePie plugin -date: 2024-01-23 +date: 2024-01-24 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 fb5318bf6181a..3cf1af08cda4d 100644 --- a/api_docs/vis_type_table.mdx +++ b/api_docs/vis_type_table.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTable title: "visTypeTable" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTable plugin -date: 2024-01-23 +date: 2024-01-24 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 775bf26750816..429c019ccd0b7 100644 --- a/api_docs/vis_type_timelion.mdx +++ b/api_docs/vis_type_timelion.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimelion title: "visTypeTimelion" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimelion plugin -date: 2024-01-23 +date: 2024-01-24 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 e1f90468e0ec2..fe0dcafe76e24 100644 --- a/api_docs/vis_type_timeseries.mdx +++ b/api_docs/vis_type_timeseries.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeTimeseries title: "visTypeTimeseries" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeTimeseries plugin -date: 2024-01-23 +date: 2024-01-24 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 cdaba03d9baa6..099f857fc8dda 100644 --- a/api_docs/vis_type_vega.mdx +++ b/api_docs/vis_type_vega.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVega title: "visTypeVega" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVega plugin -date: 2024-01-23 +date: 2024-01-24 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 8c274804d2c9c..72a974ffdf53e 100644 --- a/api_docs/vis_type_vislib.mdx +++ b/api_docs/vis_type_vislib.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeVislib title: "visTypeVislib" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeVislib plugin -date: 2024-01-23 +date: 2024-01-24 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 cb4a1dad0de5d..dbb4f1d635a89 100644 --- a/api_docs/vis_type_xy.mdx +++ b/api_docs/vis_type_xy.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visTypeXy title: "visTypeXy" image: https://source.unsplash.com/400x175/?github description: API docs for the visTypeXy plugin -date: 2024-01-23 +date: 2024-01-24 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 40849cda9b1f3..df2c864f1c514 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -6903,7 +6903,23 @@ "section": "def-common.Filter", "text": "Filter" }, - "[] | undefined>; setPanelTitle: (newTitle: string | undefined) => void; isEditingEnabled: () => boolean; setHidePanelTitle: (hide: boolean | undefined) => void; getTypeDisplayName: () => string; setPanelDescription: (newTitle: string | undefined) => void; render: (domNode: HTMLElement) => Promise; readonly isContainer: boolean; reload: () => Promise; getExplicitInputIsEqual: (lastExplicitInput: Partial<", + "[] | undefined>; onPhaseChange: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; setPanelTitle: (newTitle: string | undefined) => void; isEditingEnabled: () => boolean; setHidePanelTitle: (hide: boolean | undefined) => void; getTypeDisplayName: () => string; setPanelDescription: (newTitle: string | undefined) => void; render: (domNode: HTMLElement) => Promise; readonly isContainer: boolean; reload: () => Promise; getExplicitInputIsEqual: (lastExplicitInput: Partial<", { "pluginId": "visualizations", "scope": "public", diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 5c7cfc97acb19..536572bbf496f 100644 --- a/api_docs/visualizations.mdx +++ b/api_docs/visualizations.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/visualizations title: "visualizations" image: https://source.unsplash.com/400x175/?github description: API docs for the visualizations plugin -date: 2024-01-23 +date: 2024-01-24 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index f69a6d6775ac8..5e5681047e938 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -108,11 +108,11 @@ Roles with at least a sub-feature privilege configured will not have access to t === Features {kib} 8.12.0 adds the following new and notable features. -Alerting:: -* The case list filter bar is now customizable, filters are removable and custom fields can be used as filters ({kibana-pull}172276[#172276]). APM:: * Adds viewInApp URL to the custom threshold rule type ({kibana-pull}171985[#171985]). * Adds back the mobile crashes & errors tab ({kibana-pull}165892[#165892]). +Cases:: +* The case list filter bar is now customizable, filters are removable and custom fields can be used as filters ({kibana-pull}172276[#172276]). Elastic Security:: For the Elastic Security 8.12.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. Elastic Search:: diff --git a/docs/api/alerting/list_rule_types.asciidoc b/docs/api/alerting/list_rule_types.asciidoc index 05324e9b9a026..e7a7c1ad14063 100644 --- a/docs/api/alerting/list_rule_types.asciidoc +++ b/docs/api/alerting/list_rule_types.asciidoc @@ -63,7 +63,8 @@ context and state in action parameter templates, and a short human readable description. When you create a rule in {kib}, it uses this information to prompt you for these variables in action parameter editors. -// `alerts`:: TBD +`alerts`:: +(object) Details about alerts as data documents for this rule type, including any custom mappings. `authorized_consumers`:: (object) The list of the plugins IDs that have access to the rule type. @@ -82,7 +83,8 @@ action. (boolean) Indicates whether the rule type is enabled or disabled based on the subscription. -// `has_alerts_mappings`:: TBD +`has_alerts_mappings`:: +(boolean) Indicates whether the rule type has custom mappings for the alert data. // `has_fields_for_a_a_d`:: TBD diff --git a/package.json b/package.json index 7a670cd4e57cd..48621c38d2b4c 100644 --- a/package.json +++ b/package.json @@ -118,6 +118,7 @@ "@emotion/serialize": "^1.1.2", "@emotion/server": "^11.11.0", "@emotion/styled": "^11.11.0", + "@faker-js/faker": "^8.3.1", "@grpc/grpc-js": "^1.6.8", "@hapi/accept": "^5.0.2", "@hapi/boom": "^9.1.4", @@ -364,6 +365,7 @@ "@kbn/custom-integrations-plugin": "link:src/plugins/custom_integrations", "@kbn/dashboard-enhanced-plugin": "link:x-pack/plugins/dashboard_enhanced", "@kbn/dashboard-plugin": "link:src/plugins/dashboard", + "@kbn/data-forge": "link:x-pack/packages/kbn-data-forge", "@kbn/data-plugin": "link:src/plugins/data", "@kbn/data-search-plugin": "link:test/plugin_functional/plugins/data_search", "@kbn/data-service": "link:packages/kbn-data-service", @@ -766,6 +768,7 @@ "@kbn/shared-ux-utility": "link:packages/kbn-shared-ux-utility", "@kbn/slo-schema": "link:x-pack/packages/kbn-slo-schema", "@kbn/snapshot-restore-plugin": "link:x-pack/plugins/snapshot_restore", + "@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/stack-alerts-plugin": "link:x-pack/plugins/stack_alerts", diff --git a/packages/kbn-monaco/package.json b/packages/kbn-monaco/package.json index fc546d73017cb..a20980d11864e 100644 --- a/packages/kbn-monaco/package.json +++ b/packages/kbn-monaco/package.json @@ -5,7 +5,7 @@ "license": "SSPL-1.0 OR Elastic License 2.0", "scripts": { "build:antlr4ts:painless": "../../node_modules/antlr4ts-cli/antlr4ts ./src/painless/antlr/painless_lexer.g4 ./src/painless/antlr/painless_parser.g4 && node ./scripts/fix_generated_antlr.js painless", - "build:antlr4ts:esql": "../../node_modules/antlr4ts-cli/antlr4ts src/esql/antlr/esql_lexer.g4 src/esql/antlr/esql_parser.g4 && node ./scripts/fix_generated_antlr.js esql", + "build:antlr4ts:esql": "../../node_modules/antlr4ts-cli/antlr4ts src/esql/antlr/esql_lexer.g4 src/esql/antlr/esql_parser.g4 && node ./scripts/fix_generated_antlr.js esql && node ./scripts/esql_update_ast_script.js", "build:antlr4ts": "npm run build:antlr4ts:painless && npm run build:antlr4ts:esql" } } diff --git a/packages/kbn-monaco/scripts/esql_update_ast_script.js b/packages/kbn-monaco/scripts/esql_update_ast_script.js new file mode 100644 index 0000000000000..1cee3d7024b7c --- /dev/null +++ b/packages/kbn-monaco/scripts/esql_update_ast_script.js @@ -0,0 +1,122 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +const { join } = require('path'); +const { ESLint } = require('eslint'); +const partition = require('lodash/partition'); +const { readdirSync, readFileSync, writeFileSync } = require('fs'); +const ora = require('ora'); +const log = ora('Updating ES|QL AST walker from antlr grammar').start(); +/* + * This script will read from the parser file generated by the "build:antlr4ts:esql" task + * and extract all quoted/unquoted tokens to update their ids + * into the "ast_helper" file. + * This prevents the bundle size to increase by ~500 kb ("esql_parser" size). + * This script is run at the end of "build:antlr4ts:esql" task, so no need to call it manually. + */ +async function execute(folder) { + const generatedAntlrFolder = join(__dirname, '..', 'src', folder, 'antlr'); + + const generatedAntlrFolderContents = readdirSync(generatedAntlrFolder); + + const tokenRegex = /public static readonly (?[A-Z_]*(UN)*QUOTED_[A-Z_]+) = (?\d+);/; + const lexerFile = generatedAntlrFolderContents.find((file) => file === 'esql_parser.ts'); + const lexerFileRows = readFileSync(join(generatedAntlrFolder, lexerFile), 'utf8') + .toString() + .split('\n'); + const tokenList = []; + for (const row of lexerFileRows) { + const match = row.match(tokenRegex); + if (match?.groups) { + tokenList.push(match.groups); + } + } + const [unquotedList, quotedList] = partition(tokenList, ({ name }) => /UNQUOTED/.test(name)); + + // now all quote/unquoted tokens are registered + // dump them into the ast_helper file + const astHelperFileFolder = join(__dirname, '..', 'src', folder, 'lib', 'ast'); + const astHelperFilename = 'ast_helpers.ts'; + + try { + const astHelperContentRows = readFileSync(join(astHelperFileFolder, astHelperFilename), 'utf8') + .toString() + .split('\n'); + + const startAutoGeneratedComment = astHelperContentRows.findIndex( + (row) => row === '/* SCRIPT_MARKER_START */' + ); + const endAutoGeneratedComment = + astHelperContentRows.findIndex((row) => row === '/* SCRIPT_MARKER_END */') + 1; + + const newFunctionsContent = ` +/* SCRIPT_MARKER_START */ +function getQuotedText(ctx: ParserRuleContext) { + return [ + ${quotedList.map(({ name, value }) => `${value} /* esql_parser.${name} */`).join(', ')} + ] + .map((keyCode) => ctx.tryGetToken(keyCode, 0)) + .filter(nonNullable)[0]; + } + +function getUnquotedText(ctx: ParserRuleContext) { + return [ + ${unquotedList.map(({ name, value }) => `${value} /* esql_parser.${name} */`).join(', ')} + + ] + .map((keyCode) => ctx.tryGetToken(keyCode, 0)) + .filter(nonNullable)[0]; +} +/* SCRIPT_MARKER_END */ +`; + + const fileContent = astHelperContentRows + .slice(0, startAutoGeneratedComment) + .concat(newFunctionsContent.split('\n'), astHelperContentRows.slice(endAutoGeneratedComment)); + + const fileContentString = fileContent.join('\n'); + + const eslint = new ESLint({ + fix: true, + overrideConfig: { + parser: '@typescript-eslint/parser', + parserOptions: { + sourceType: 'module', + ecmaVersion: 2018, + }, + rules: { + '@kbn/imports/no_unresolvable_imports': 'off', + 'prettier/prettier': [ + 'error', + { + parser: 'typescript', + }, + ], + }, + }, + }); + + const results = await eslint.lintText(fileContentString); + + if (results.some(({ messages }) => messages.length > 0)) { + const formatter = await eslint.loadFormatter('stylish'); + const resultText = formatter.format(results); + process.exitCode = 1; + return log.fail(resultText); + } + + const filePath = join(astHelperFileFolder, astHelperFilename); + writeFileSync(filePath, results[0].output || '', { encoding: 'utf8' }); + } catch (err) { + return log.fail(err.message); + } + + log.succeed('Updated ES|QL helper from antlr grammar successfully'); +} + +execute('esql'); diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.g4 b/packages/kbn-monaco/src/esql/antlr/esql_lexer.g4 index d22db2818d4e7..bde15b20e0618 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.g4 +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.g4 @@ -185,8 +185,8 @@ EXPR_WS // mode FROM_MODE; FROM_PIPE : PIPE -> type(PIPE), popMode; -FROM_OPENING_BRACKET : OPENING_BRACKET -> type(OPENING_BRACKET), pushMode(FROM_MODE), pushMode(FROM_MODE); -FROM_CLOSING_BRACKET : CLOSING_BRACKET -> type(CLOSING_BRACKET), popMode, popMode; +FROM_OPENING_BRACKET : OPENING_BRACKET -> type(OPENING_BRACKET); +FROM_CLOSING_BRACKET : CLOSING_BRACKET -> type(CLOSING_BRACKET); FROM_COMMA : COMMA -> type(COMMA); FROM_ASSIGN : ASSIGN -> type(ASSIGN); @@ -228,11 +228,15 @@ fragment UNQUOTED_ID_BODY_WITH_PATTERN : (LETTER | DIGIT | UNDERSCORE | ASTERISK) ; -PROJECT_UNQUOTED_IDENTIFIER +UNQUOTED_ID_PATTERN : (LETTER | ASTERISK) UNQUOTED_ID_BODY_WITH_PATTERN* | (UNDERSCORE | ASPERAND) UNQUOTED_ID_BODY_WITH_PATTERN+ ; +PROJECT_UNQUOTED_IDENTIFIER + : UNQUOTED_ID_PATTERN -> type(UNQUOTED_ID_PATTERN) + ; + PROJECT_QUOTED_IDENTIFIER : QUOTED_IDENTIFIER -> type(QUOTED_IDENTIFIER) ; @@ -265,7 +269,7 @@ RENAME_QUOTED_IDENTIFIER // use the unquoted pattern to let the parser invalidate fields with * RENAME_UNQUOTED_IDENTIFIER - : PROJECT_UNQUOTED_IDENTIFIER -> type(PROJECT_UNQUOTED_IDENTIFIER) + : UNQUOTED_ID_PATTERN -> type(UNQUOTED_ID_PATTERN) ; RENAME_LINE_COMMENT @@ -283,19 +287,28 @@ RENAME_WS // | ENRICH ON key WITH fields mode ENRICH_MODE; ENRICH_PIPE : PIPE -> type(PIPE), popMode; +ENRICH_OPENING_BRACKET : OPENING_BRACKET -> type(OPENING_BRACKET), pushMode(SETTING_MODE); ON : O N -> pushMode(ENRICH_FIELD_MODE); WITH : W I T H -> pushMode(ENRICH_FIELD_MODE); -// use the unquoted pattern to let the parser invalidate fields with * -ENRICH_POLICY_UNQUOTED_IDENTIFIER - : FROM_UNQUOTED_IDENTIFIER -> type(FROM_UNQUOTED_IDENTIFIER) +// similar to that of an index +// see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#indices-create-api-path-params +fragment ENRICH_POLICY_NAME_BODY + : ~[\\/?"<>| ,#\t\r\n:] + ; +ENRICH_POLICY_NAME + : (LETTER | DIGIT) ENRICH_POLICY_NAME_BODY* ; ENRICH_QUOTED_IDENTIFIER : QUOTED_IDENTIFIER -> type(QUOTED_IDENTIFIER) ; +ENRICH_MODE_UNQUOTED_VALUE + : ENRICH_POLICY_NAME -> type(ENRICH_POLICY_NAME) + ; + ENRICH_LINE_COMMENT : LINE_COMMENT -> channel(HIDDEN) ; @@ -318,7 +331,7 @@ ENRICH_FIELD_DOT: DOT -> type(DOT); ENRICH_FIELD_WITH : WITH -> type(WITH) ; ENRICH_FIELD_UNQUOTED_IDENTIFIER - : PROJECT_UNQUOTED_IDENTIFIER -> type(PROJECT_UNQUOTED_IDENTIFIER) + : UNQUOTED_ID_PATTERN -> type(UNQUOTED_ID_PATTERN) ; ENRICH_FIELD_QUOTED_IDENTIFIER @@ -383,6 +396,22 @@ SHOW_WS : WS -> channel(HIDDEN) ; +mode SETTING_MODE; +SETTING_CLOSING_BRACKET : CLOSING_BRACKET -> type(CLOSING_BRACKET), popMode; +COLON : ':'; +SETTING + : (ASPERAND | DIGIT| DOT | LETTER | UNDERSCORE)+ + ; +SETTING_LINE_COMMENT + : LINE_COMMENT -> channel(HIDDEN) + ; +SETTTING_MULTILINE_COMMENT + : MULTILINE_COMMENT -> channel(HIDDEN) + ; +SETTING_WS + : WS -> channel(HIDDEN) + ; + fragment A : [aA]; // match either an 'a' or 'A' fragment B : [bB]; fragment C : [cC]; diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp b/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp index d2516b469b29d..c484e0b7424a7 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp @@ -98,6 +98,12 @@ null null null null +null +':' +null +null +null +null token symbolic names: null @@ -175,7 +181,7 @@ FROM_UNQUOTED_IDENTIFIER FROM_LINE_COMMENT FROM_MULTILINE_COMMENT FROM_WS -PROJECT_UNQUOTED_IDENTIFIER +UNQUOTED_ID_PATTERN PROJECT_LINE_COMMENT PROJECT_MULTILINE_COMMENT PROJECT_WS @@ -185,6 +191,7 @@ RENAME_MULTILINE_COMMENT RENAME_WS ON WITH +ENRICH_POLICY_NAME ENRICH_LINE_COMMENT ENRICH_MULTILINE_COMMENT ENRICH_WS @@ -199,6 +206,11 @@ FUNCTIONS SHOW_LINE_COMMENT SHOW_MULTILINE_COMMENT SHOW_WS +COLON +SETTING +SETTING_LINE_COMMENT +SETTTING_MULTILINE_COMMENT +SETTING_WS rule names: DISSECT @@ -298,6 +310,7 @@ PROJECT_PIPE PROJECT_DOT PROJECT_COMMA UNQUOTED_ID_BODY_WITH_PATTERN +UNQUOTED_ID_PATTERN PROJECT_UNQUOTED_IDENTIFIER PROJECT_QUOTED_IDENTIFIER PROJECT_LINE_COMMENT @@ -314,10 +327,13 @@ RENAME_LINE_COMMENT RENAME_MULTILINE_COMMENT RENAME_WS ENRICH_PIPE +ENRICH_OPENING_BRACKET ON WITH -ENRICH_POLICY_UNQUOTED_IDENTIFIER +ENRICH_POLICY_NAME_BODY +ENRICH_POLICY_NAME ENRICH_QUOTED_IDENTIFIER +ENRICH_MODE_UNQUOTED_VALUE ENRICH_LINE_COMMENT ENRICH_MULTILINE_COMMENT ENRICH_WS @@ -344,6 +360,12 @@ FUNCTIONS SHOW_LINE_COMMENT SHOW_MULTILINE_COMMENT SHOW_WS +SETTING_CLOSING_BRACKET +COLON +SETTING +SETTING_LINE_COMMENT +SETTTING_MULTILINE_COMMENT +SETTING_WS A B C @@ -386,6 +408,7 @@ ENRICH_MODE ENRICH_FIELD_MODE MVEXPAND_MODE SHOW_MODE +SETTING_MODE atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 100, 1196, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 6, 20, 505, 10, 20, 13, 20, 14, 20, 506, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 515, 10, 21, 12, 21, 14, 21, 518, 11, 21, 3, 21, 5, 21, 521, 10, 21, 3, 21, 5, 21, 524, 10, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 533, 10, 22, 12, 22, 14, 22, 536, 11, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 6, 23, 544, 10, 23, 13, 23, 14, 23, 545, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 5, 34, 587, 10, 34, 3, 34, 6, 34, 590, 10, 34, 13, 34, 14, 34, 591, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 5, 37, 601, 10, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 5, 39, 608, 10, 39, 3, 40, 3, 40, 3, 40, 7, 40, 613, 10, 40, 12, 40, 14, 40, 616, 11, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 7, 40, 624, 10, 40, 12, 40, 14, 40, 627, 11, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 634, 10, 40, 3, 40, 5, 40, 637, 10, 40, 5, 40, 639, 10, 40, 3, 41, 6, 41, 642, 10, 41, 13, 41, 14, 41, 643, 3, 42, 6, 42, 647, 10, 42, 13, 42, 14, 42, 648, 3, 42, 3, 42, 7, 42, 653, 10, 42, 12, 42, 14, 42, 656, 11, 42, 3, 42, 3, 42, 6, 42, 660, 10, 42, 13, 42, 14, 42, 661, 3, 42, 6, 42, 665, 10, 42, 13, 42, 14, 42, 666, 3, 42, 3, 42, 7, 42, 671, 10, 42, 12, 42, 14, 42, 674, 11, 42, 5, 42, 676, 10, 42, 3, 42, 3, 42, 3, 42, 3, 42, 6, 42, 682, 10, 42, 13, 42, 14, 42, 683, 3, 42, 3, 42, 5, 42, 688, 10, 42, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 7, 78, 813, 10, 78, 12, 78, 14, 78, 816, 11, 78, 3, 78, 3, 78, 5, 78, 820, 10, 78, 3, 78, 6, 78, 823, 10, 78, 13, 78, 14, 78, 824, 5, 78, 827, 10, 78, 3, 79, 3, 79, 6, 79, 831, 10, 79, 13, 79, 14, 79, 832, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 886, 10, 89, 3, 90, 6, 90, 889, 10, 90, 13, 90, 14, 90, 890, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 5, 98, 926, 10, 98, 3, 99, 3, 99, 5, 99, 930, 10, 99, 3, 99, 7, 99, 933, 10, 99, 12, 99, 14, 99, 936, 11, 99, 3, 99, 3, 99, 5, 99, 940, 10, 99, 3, 99, 6, 99, 943, 10, 99, 13, 99, 14, 99, 944, 5, 99, 947, 10, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 146, 3, 146, 3, 147, 3, 147, 3, 148, 3, 148, 3, 149, 3, 149, 3, 150, 3, 150, 3, 151, 3, 151, 3, 152, 3, 152, 3, 153, 3, 153, 3, 154, 3, 154, 3, 155, 3, 155, 3, 156, 3, 156, 3, 157, 3, 157, 3, 158, 3, 158, 3, 159, 3, 159, 3, 160, 3, 160, 3, 161, 3, 161, 3, 162, 3, 162, 3, 163, 3, 163, 3, 164, 3, 164, 3, 165, 3, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 168, 3, 168, 3, 169, 3, 169, 3, 170, 3, 170, 4, 534, 625, 2, 2, 171, 12, 2, 3, 14, 2, 4, 16, 2, 5, 18, 2, 6, 20, 2, 7, 22, 2, 8, 24, 2, 9, 26, 2, 10, 28, 2, 11, 30, 2, 12, 32, 2, 13, 34, 2, 14, 36, 2, 15, 38, 2, 16, 40, 2, 17, 42, 2, 18, 44, 2, 19, 46, 2, 20, 48, 2, 21, 50, 2, 22, 52, 2, 23, 54, 2, 24, 56, 2, 2, 58, 2, 2, 60, 2, 25, 62, 2, 26, 64, 2, 27, 66, 2, 28, 68, 2, 2, 70, 2, 2, 72, 2, 2, 74, 2, 2, 76, 2, 2, 78, 2, 2, 80, 2, 2, 82, 2, 2, 84, 2, 2, 86, 2, 2, 88, 2, 29, 90, 2, 30, 92, 2, 31, 94, 2, 32, 96, 2, 33, 98, 2, 34, 100, 2, 35, 102, 2, 36, 104, 2, 37, 106, 2, 38, 108, 2, 39, 110, 2, 40, 112, 2, 41, 114, 2, 42, 116, 2, 43, 118, 2, 44, 120, 2, 45, 122, 2, 46, 124, 2, 47, 126, 2, 48, 128, 2, 49, 130, 2, 50, 132, 2, 51, 134, 2, 52, 136, 2, 53, 138, 2, 54, 140, 2, 55, 142, 2, 56, 144, 2, 57, 146, 2, 58, 148, 2, 59, 150, 2, 60, 152, 2, 61, 154, 2, 62, 156, 2, 63, 158, 2, 64, 160, 2, 65, 162, 2, 66, 164, 2, 67, 166, 2, 68, 168, 2, 69, 170, 2, 70, 172, 2, 71, 174, 2, 2, 176, 2, 2, 178, 2, 2, 180, 2, 2, 182, 2, 2, 184, 2, 72, 186, 2, 2, 188, 2, 73, 190, 2, 2, 192, 2, 74, 194, 2, 75, 196, 2, 76, 198, 2, 2, 200, 2, 2, 202, 2, 2, 204, 2, 2, 206, 2, 77, 208, 2, 2, 210, 2, 78, 212, 2, 79, 214, 2, 80, 216, 2, 2, 218, 2, 2, 220, 2, 2, 222, 2, 2, 224, 2, 81, 226, 2, 2, 228, 2, 2, 230, 2, 82, 232, 2, 83, 234, 2, 84, 236, 2, 2, 238, 2, 85, 240, 2, 86, 242, 2, 2, 244, 2, 2, 246, 2, 87, 248, 2, 88, 250, 2, 89, 252, 2, 2, 254, 2, 2, 256, 2, 2, 258, 2, 2, 260, 2, 2, 262, 2, 2, 264, 2, 2, 266, 2, 90, 268, 2, 91, 270, 2, 92, 272, 2, 2, 274, 2, 2, 276, 2, 2, 278, 2, 2, 280, 2, 93, 282, 2, 94, 284, 2, 95, 286, 2, 2, 288, 2, 96, 290, 2, 97, 292, 2, 98, 294, 2, 99, 296, 2, 100, 298, 2, 2, 300, 2, 2, 302, 2, 2, 304, 2, 2, 306, 2, 2, 308, 2, 2, 310, 2, 2, 312, 2, 2, 314, 2, 2, 316, 2, 2, 318, 2, 2, 320, 2, 2, 322, 2, 2, 324, 2, 2, 326, 2, 2, 328, 2, 2, 330, 2, 2, 332, 2, 2, 334, 2, 2, 336, 2, 2, 338, 2, 2, 340, 2, 2, 342, 2, 2, 344, 2, 2, 346, 2, 2, 348, 2, 2, 12, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 39, 8, 2, 11, 12, 15, 15, 34, 34, 49, 49, 93, 93, 95, 95, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 50, 59, 4, 2, 67, 92, 99, 124, 7, 2, 36, 36, 94, 94, 112, 112, 116, 116, 118, 118, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 3, 2, 98, 98, 12, 2, 11, 12, 15, 15, 34, 34, 46, 46, 49, 49, 63, 63, 93, 93, 95, 95, 98, 98, 126, 126, 4, 2, 44, 44, 49, 49, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 72, 72, 104, 104, 4, 2, 73, 73, 105, 105, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 1192, 2, 12, 3, 2, 2, 2, 2, 14, 3, 2, 2, 2, 2, 16, 3, 2, 2, 2, 2, 18, 3, 2, 2, 2, 2, 20, 3, 2, 2, 2, 2, 22, 3, 2, 2, 2, 2, 24, 3, 2, 2, 2, 2, 26, 3, 2, 2, 2, 2, 28, 3, 2, 2, 2, 2, 30, 3, 2, 2, 2, 2, 32, 3, 2, 2, 2, 2, 34, 3, 2, 2, 2, 2, 36, 3, 2, 2, 2, 2, 38, 3, 2, 2, 2, 2, 40, 3, 2, 2, 2, 2, 42, 3, 2, 2, 2, 2, 44, 3, 2, 2, 2, 2, 46, 3, 2, 2, 2, 2, 48, 3, 2, 2, 2, 2, 50, 3, 2, 2, 2, 2, 52, 3, 2, 2, 2, 2, 54, 3, 2, 2, 2, 3, 56, 3, 2, 2, 2, 3, 58, 3, 2, 2, 2, 3, 60, 3, 2, 2, 2, 3, 62, 3, 2, 2, 2, 3, 64, 3, 2, 2, 2, 4, 66, 3, 2, 2, 2, 4, 88, 3, 2, 2, 2, 4, 90, 3, 2, 2, 2, 4, 92, 3, 2, 2, 2, 4, 94, 3, 2, 2, 2, 4, 96, 3, 2, 2, 2, 4, 98, 3, 2, 2, 2, 4, 100, 3, 2, 2, 2, 4, 102, 3, 2, 2, 2, 4, 104, 3, 2, 2, 2, 4, 106, 3, 2, 2, 2, 4, 108, 3, 2, 2, 2, 4, 110, 3, 2, 2, 2, 4, 112, 3, 2, 2, 2, 4, 114, 3, 2, 2, 2, 4, 116, 3, 2, 2, 2, 4, 118, 3, 2, 2, 2, 4, 120, 3, 2, 2, 2, 4, 122, 3, 2, 2, 2, 4, 124, 3, 2, 2, 2, 4, 126, 3, 2, 2, 2, 4, 128, 3, 2, 2, 2, 4, 130, 3, 2, 2, 2, 4, 132, 3, 2, 2, 2, 4, 134, 3, 2, 2, 2, 4, 136, 3, 2, 2, 2, 4, 138, 3, 2, 2, 2, 4, 140, 3, 2, 2, 2, 4, 142, 3, 2, 2, 2, 4, 144, 3, 2, 2, 2, 4, 146, 3, 2, 2, 2, 4, 148, 3, 2, 2, 2, 4, 150, 3, 2, 2, 2, 4, 152, 3, 2, 2, 2, 4, 154, 3, 2, 2, 2, 4, 156, 3, 2, 2, 2, 4, 158, 3, 2, 2, 2, 4, 160, 3, 2, 2, 2, 4, 162, 3, 2, 2, 2, 4, 164, 3, 2, 2, 2, 4, 166, 3, 2, 2, 2, 4, 168, 3, 2, 2, 2, 4, 170, 3, 2, 2, 2, 4, 172, 3, 2, 2, 2, 5, 174, 3, 2, 2, 2, 5, 176, 3, 2, 2, 2, 5, 178, 3, 2, 2, 2, 5, 180, 3, 2, 2, 2, 5, 182, 3, 2, 2, 2, 5, 184, 3, 2, 2, 2, 5, 188, 3, 2, 2, 2, 5, 190, 3, 2, 2, 2, 5, 192, 3, 2, 2, 2, 5, 194, 3, 2, 2, 2, 5, 196, 3, 2, 2, 2, 6, 198, 3, 2, 2, 2, 6, 200, 3, 2, 2, 2, 6, 202, 3, 2, 2, 2, 6, 206, 3, 2, 2, 2, 6, 208, 3, 2, 2, 2, 6, 210, 3, 2, 2, 2, 6, 212, 3, 2, 2, 2, 6, 214, 3, 2, 2, 2, 7, 216, 3, 2, 2, 2, 7, 218, 3, 2, 2, 2, 7, 220, 3, 2, 2, 2, 7, 222, 3, 2, 2, 2, 7, 224, 3, 2, 2, 2, 7, 226, 3, 2, 2, 2, 7, 228, 3, 2, 2, 2, 7, 230, 3, 2, 2, 2, 7, 232, 3, 2, 2, 2, 7, 234, 3, 2, 2, 2, 8, 236, 3, 2, 2, 2, 8, 238, 3, 2, 2, 2, 8, 240, 3, 2, 2, 2, 8, 242, 3, 2, 2, 2, 8, 244, 3, 2, 2, 2, 8, 246, 3, 2, 2, 2, 8, 248, 3, 2, 2, 2, 8, 250, 3, 2, 2, 2, 9, 252, 3, 2, 2, 2, 9, 254, 3, 2, 2, 2, 9, 256, 3, 2, 2, 2, 9, 258, 3, 2, 2, 2, 9, 260, 3, 2, 2, 2, 9, 262, 3, 2, 2, 2, 9, 264, 3, 2, 2, 2, 9, 266, 3, 2, 2, 2, 9, 268, 3, 2, 2, 2, 9, 270, 3, 2, 2, 2, 10, 272, 3, 2, 2, 2, 10, 274, 3, 2, 2, 2, 10, 276, 3, 2, 2, 2, 10, 278, 3, 2, 2, 2, 10, 280, 3, 2, 2, 2, 10, 282, 3, 2, 2, 2, 10, 284, 3, 2, 2, 2, 11, 286, 3, 2, 2, 2, 11, 288, 3, 2, 2, 2, 11, 290, 3, 2, 2, 2, 11, 292, 3, 2, 2, 2, 11, 294, 3, 2, 2, 2, 11, 296, 3, 2, 2, 2, 12, 350, 3, 2, 2, 2, 14, 360, 3, 2, 2, 2, 16, 367, 3, 2, 2, 2, 18, 376, 3, 2, 2, 2, 20, 383, 3, 2, 2, 2, 22, 393, 3, 2, 2, 2, 24, 400, 3, 2, 2, 2, 26, 407, 3, 2, 2, 2, 28, 421, 3, 2, 2, 2, 30, 428, 3, 2, 2, 2, 32, 436, 3, 2, 2, 2, 34, 448, 3, 2, 2, 2, 36, 458, 3, 2, 2, 2, 38, 467, 3, 2, 2, 2, 40, 473, 3, 2, 2, 2, 42, 480, 3, 2, 2, 2, 44, 487, 3, 2, 2, 2, 46, 495, 3, 2, 2, 2, 48, 504, 3, 2, 2, 2, 50, 510, 3, 2, 2, 2, 52, 527, 3, 2, 2, 2, 54, 543, 3, 2, 2, 2, 56, 549, 3, 2, 2, 2, 58, 554, 3, 2, 2, 2, 60, 559, 3, 2, 2, 2, 62, 563, 3, 2, 2, 2, 64, 567, 3, 2, 2, 2, 66, 571, 3, 2, 2, 2, 68, 575, 3, 2, 2, 2, 70, 577, 3, 2, 2, 2, 72, 579, 3, 2, 2, 2, 74, 582, 3, 2, 2, 2, 76, 584, 3, 2, 2, 2, 78, 593, 3, 2, 2, 2, 80, 595, 3, 2, 2, 2, 82, 600, 3, 2, 2, 2, 84, 602, 3, 2, 2, 2, 86, 607, 3, 2, 2, 2, 88, 638, 3, 2, 2, 2, 90, 641, 3, 2, 2, 2, 92, 687, 3, 2, 2, 2, 94, 689, 3, 2, 2, 2, 96, 692, 3, 2, 2, 2, 98, 696, 3, 2, 2, 2, 100, 700, 3, 2, 2, 2, 102, 702, 3, 2, 2, 2, 104, 704, 3, 2, 2, 2, 106, 709, 3, 2, 2, 2, 108, 711, 3, 2, 2, 2, 110, 717, 3, 2, 2, 2, 112, 723, 3, 2, 2, 2, 114, 728, 3, 2, 2, 2, 116, 730, 3, 2, 2, 2, 118, 733, 3, 2, 2, 2, 120, 736, 3, 2, 2, 2, 122, 741, 3, 2, 2, 2, 124, 745, 3, 2, 2, 2, 126, 750, 3, 2, 2, 2, 128, 756, 3, 2, 2, 2, 130, 759, 3, 2, 2, 2, 132, 761, 3, 2, 2, 2, 134, 767, 3, 2, 2, 2, 136, 769, 3, 2, 2, 2, 138, 774, 3, 2, 2, 2, 140, 777, 3, 2, 2, 2, 142, 780, 3, 2, 2, 2, 144, 782, 3, 2, 2, 2, 146, 785, 3, 2, 2, 2, 148, 787, 3, 2, 2, 2, 150, 790, 3, 2, 2, 2, 152, 792, 3, 2, 2, 2, 154, 794, 3, 2, 2, 2, 156, 796, 3, 2, 2, 2, 158, 798, 3, 2, 2, 2, 160, 800, 3, 2, 2, 2, 162, 805, 3, 2, 2, 2, 164, 826, 3, 2, 2, 2, 166, 828, 3, 2, 2, 2, 168, 836, 3, 2, 2, 2, 170, 840, 3, 2, 2, 2, 172, 844, 3, 2, 2, 2, 174, 848, 3, 2, 2, 2, 176, 853, 3, 2, 2, 2, 178, 859, 3, 2, 2, 2, 180, 865, 3, 2, 2, 2, 182, 869, 3, 2, 2, 2, 184, 873, 3, 2, 2, 2, 186, 885, 3, 2, 2, 2, 188, 888, 3, 2, 2, 2, 190, 892, 3, 2, 2, 2, 192, 896, 3, 2, 2, 2, 194, 900, 3, 2, 2, 2, 196, 904, 3, 2, 2, 2, 198, 908, 3, 2, 2, 2, 200, 913, 3, 2, 2, 2, 202, 917, 3, 2, 2, 2, 204, 925, 3, 2, 2, 2, 206, 946, 3, 2, 2, 2, 208, 948, 3, 2, 2, 2, 210, 952, 3, 2, 2, 2, 212, 956, 3, 2, 2, 2, 214, 960, 3, 2, 2, 2, 216, 964, 3, 2, 2, 2, 218, 969, 3, 2, 2, 2, 220, 973, 3, 2, 2, 2, 222, 977, 3, 2, 2, 2, 224, 981, 3, 2, 2, 2, 226, 984, 3, 2, 2, 2, 228, 988, 3, 2, 2, 2, 230, 992, 3, 2, 2, 2, 232, 996, 3, 2, 2, 2, 234, 1000, 3, 2, 2, 2, 236, 1004, 3, 2, 2, 2, 238, 1009, 3, 2, 2, 2, 240, 1014, 3, 2, 2, 2, 242, 1021, 3, 2, 2, 2, 244, 1025, 3, 2, 2, 2, 246, 1029, 3, 2, 2, 2, 248, 1033, 3, 2, 2, 2, 250, 1037, 3, 2, 2, 2, 252, 1041, 3, 2, 2, 2, 254, 1047, 3, 2, 2, 2, 256, 1051, 3, 2, 2, 2, 258, 1055, 3, 2, 2, 2, 260, 1059, 3, 2, 2, 2, 262, 1063, 3, 2, 2, 2, 264, 1067, 3, 2, 2, 2, 266, 1071, 3, 2, 2, 2, 268, 1075, 3, 2, 2, 2, 270, 1079, 3, 2, 2, 2, 272, 1083, 3, 2, 2, 2, 274, 1088, 3, 2, 2, 2, 276, 1092, 3, 2, 2, 2, 278, 1096, 3, 2, 2, 2, 280, 1100, 3, 2, 2, 2, 282, 1104, 3, 2, 2, 2, 284, 1108, 3, 2, 2, 2, 286, 1112, 3, 2, 2, 2, 288, 1117, 3, 2, 2, 2, 290, 1122, 3, 2, 2, 2, 292, 1132, 3, 2, 2, 2, 294, 1136, 3, 2, 2, 2, 296, 1140, 3, 2, 2, 2, 298, 1144, 3, 2, 2, 2, 300, 1146, 3, 2, 2, 2, 302, 1148, 3, 2, 2, 2, 304, 1150, 3, 2, 2, 2, 306, 1152, 3, 2, 2, 2, 308, 1154, 3, 2, 2, 2, 310, 1156, 3, 2, 2, 2, 312, 1158, 3, 2, 2, 2, 314, 1160, 3, 2, 2, 2, 316, 1162, 3, 2, 2, 2, 318, 1164, 3, 2, 2, 2, 320, 1166, 3, 2, 2, 2, 322, 1168, 3, 2, 2, 2, 324, 1170, 3, 2, 2, 2, 326, 1172, 3, 2, 2, 2, 328, 1174, 3, 2, 2, 2, 330, 1176, 3, 2, 2, 2, 332, 1178, 3, 2, 2, 2, 334, 1180, 3, 2, 2, 2, 336, 1182, 3, 2, 2, 2, 338, 1184, 3, 2, 2, 2, 340, 1186, 3, 2, 2, 2, 342, 1188, 3, 2, 2, 2, 344, 1190, 3, 2, 2, 2, 346, 1192, 3, 2, 2, 2, 348, 1194, 3, 2, 2, 2, 350, 351, 5, 304, 148, 2, 351, 352, 5, 314, 153, 2, 352, 353, 5, 334, 163, 2, 353, 354, 5, 334, 163, 2, 354, 355, 5, 306, 149, 2, 355, 356, 5, 302, 147, 2, 356, 357, 5, 336, 164, 2, 357, 358, 3, 2, 2, 2, 358, 359, 8, 2, 2, 2, 359, 13, 3, 2, 2, 2, 360, 361, 5, 304, 148, 2, 361, 362, 5, 332, 162, 2, 362, 363, 5, 326, 159, 2, 363, 364, 5, 328, 160, 2, 364, 365, 3, 2, 2, 2, 365, 366, 8, 3, 3, 2, 366, 15, 3, 2, 2, 2, 367, 368, 5, 306, 149, 2, 368, 369, 5, 324, 158, 2, 369, 370, 5, 332, 162, 2, 370, 371, 5, 314, 153, 2, 371, 372, 5, 302, 147, 2, 372, 373, 5, 312, 152, 2, 373, 374, 3, 2, 2, 2, 374, 375, 8, 4, 4, 2, 375, 17, 3, 2, 2, 2, 376, 377, 5, 306, 149, 2, 377, 378, 5, 340, 166, 2, 378, 379, 5, 298, 145, 2, 379, 380, 5, 320, 156, 2, 380, 381, 3, 2, 2, 2, 381, 382, 8, 5, 2, 2, 382, 19, 3, 2, 2, 2, 383, 384, 5, 306, 149, 2, 384, 385, 5, 344, 168, 2, 385, 386, 5, 328, 160, 2, 386, 387, 5, 320, 156, 2, 387, 388, 5, 298, 145, 2, 388, 389, 5, 314, 153, 2, 389, 390, 5, 324, 158, 2, 390, 391, 3, 2, 2, 2, 391, 392, 8, 6, 5, 2, 392, 21, 3, 2, 2, 2, 393, 394, 5, 308, 150, 2, 394, 395, 5, 332, 162, 2, 395, 396, 5, 326, 159, 2, 396, 397, 5, 322, 157, 2, 397, 398, 3, 2, 2, 2, 398, 399, 8, 7, 6, 2, 399, 23, 3, 2, 2, 2, 400, 401, 5, 310, 151, 2, 401, 402, 5, 332, 162, 2, 402, 403, 5, 326, 159, 2, 403, 404, 5, 318, 155, 2, 404, 405, 3, 2, 2, 2, 405, 406, 8, 8, 2, 2, 406, 25, 3, 2, 2, 2, 407, 408, 5, 314, 153, 2, 408, 409, 5, 324, 158, 2, 409, 410, 5, 320, 156, 2, 410, 411, 5, 314, 153, 2, 411, 412, 5, 324, 158, 2, 412, 413, 5, 306, 149, 2, 413, 414, 5, 334, 163, 2, 414, 415, 5, 336, 164, 2, 415, 416, 5, 298, 145, 2, 416, 417, 5, 336, 164, 2, 417, 418, 5, 334, 163, 2, 418, 419, 3, 2, 2, 2, 419, 420, 8, 9, 2, 2, 420, 27, 3, 2, 2, 2, 421, 422, 5, 318, 155, 2, 422, 423, 5, 306, 149, 2, 423, 424, 5, 306, 149, 2, 424, 425, 5, 328, 160, 2, 425, 426, 3, 2, 2, 2, 426, 427, 8, 10, 3, 2, 427, 29, 3, 2, 2, 2, 428, 429, 5, 320, 156, 2, 429, 430, 5, 314, 153, 2, 430, 431, 5, 322, 157, 2, 431, 432, 5, 314, 153, 2, 432, 433, 5, 336, 164, 2, 433, 434, 3, 2, 2, 2, 434, 435, 8, 11, 2, 2, 435, 31, 3, 2, 2, 2, 436, 437, 5, 322, 157, 2, 437, 438, 5, 340, 166, 2, 438, 439, 5, 84, 38, 2, 439, 440, 5, 306, 149, 2, 440, 441, 5, 344, 168, 2, 441, 442, 5, 328, 160, 2, 442, 443, 5, 298, 145, 2, 443, 444, 5, 324, 158, 2, 444, 445, 5, 304, 148, 2, 445, 446, 3, 2, 2, 2, 446, 447, 8, 12, 7, 2, 447, 33, 3, 2, 2, 2, 448, 449, 5, 328, 160, 2, 449, 450, 5, 332, 162, 2, 450, 451, 5, 326, 159, 2, 451, 452, 5, 316, 154, 2, 452, 453, 5, 306, 149, 2, 453, 454, 5, 302, 147, 2, 454, 455, 5, 336, 164, 2, 455, 456, 3, 2, 2, 2, 456, 457, 8, 13, 3, 2, 457, 35, 3, 2, 2, 2, 458, 459, 5, 332, 162, 2, 459, 460, 5, 306, 149, 2, 460, 461, 5, 324, 158, 2, 461, 462, 5, 298, 145, 2, 462, 463, 5, 322, 157, 2, 463, 464, 5, 306, 149, 2, 464, 465, 3, 2, 2, 2, 465, 466, 8, 14, 8, 2, 466, 37, 3, 2, 2, 2, 467, 468, 5, 332, 162, 2, 468, 469, 5, 326, 159, 2, 469, 470, 5, 342, 167, 2, 470, 471, 3, 2, 2, 2, 471, 472, 8, 15, 2, 2, 472, 39, 3, 2, 2, 2, 473, 474, 5, 334, 163, 2, 474, 475, 5, 312, 152, 2, 475, 476, 5, 326, 159, 2, 476, 477, 5, 342, 167, 2, 477, 478, 3, 2, 2, 2, 478, 479, 8, 16, 9, 2, 479, 41, 3, 2, 2, 2, 480, 481, 5, 334, 163, 2, 481, 482, 5, 326, 159, 2, 482, 483, 5, 332, 162, 2, 483, 484, 5, 336, 164, 2, 484, 485, 3, 2, 2, 2, 485, 486, 8, 17, 2, 2, 486, 43, 3, 2, 2, 2, 487, 488, 5, 334, 163, 2, 488, 489, 5, 336, 164, 2, 489, 490, 5, 298, 145, 2, 490, 491, 5, 336, 164, 2, 491, 492, 5, 334, 163, 2, 492, 493, 3, 2, 2, 2, 493, 494, 8, 18, 2, 2, 494, 45, 3, 2, 2, 2, 495, 496, 5, 342, 167, 2, 496, 497, 5, 312, 152, 2, 497, 498, 5, 306, 149, 2, 498, 499, 5, 332, 162, 2, 499, 500, 5, 306, 149, 2, 500, 501, 3, 2, 2, 2, 501, 502, 8, 19, 2, 2, 502, 47, 3, 2, 2, 2, 503, 505, 10, 2, 2, 2, 504, 503, 3, 2, 2, 2, 505, 506, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 506, 507, 3, 2, 2, 2, 507, 508, 3, 2, 2, 2, 508, 509, 8, 20, 2, 2, 509, 49, 3, 2, 2, 2, 510, 511, 7, 49, 2, 2, 511, 512, 7, 49, 2, 2, 512, 516, 3, 2, 2, 2, 513, 515, 10, 3, 2, 2, 514, 513, 3, 2, 2, 2, 515, 518, 3, 2, 2, 2, 516, 514, 3, 2, 2, 2, 516, 517, 3, 2, 2, 2, 517, 520, 3, 2, 2, 2, 518, 516, 3, 2, 2, 2, 519, 521, 7, 15, 2, 2, 520, 519, 3, 2, 2, 2, 520, 521, 3, 2, 2, 2, 521, 523, 3, 2, 2, 2, 522, 524, 7, 12, 2, 2, 523, 522, 3, 2, 2, 2, 523, 524, 3, 2, 2, 2, 524, 525, 3, 2, 2, 2, 525, 526, 8, 21, 10, 2, 526, 51, 3, 2, 2, 2, 527, 528, 7, 49, 2, 2, 528, 529, 7, 44, 2, 2, 529, 534, 3, 2, 2, 2, 530, 533, 5, 52, 22, 2, 531, 533, 11, 2, 2, 2, 532, 530, 3, 2, 2, 2, 532, 531, 3, 2, 2, 2, 533, 536, 3, 2, 2, 2, 534, 535, 3, 2, 2, 2, 534, 532, 3, 2, 2, 2, 535, 537, 3, 2, 2, 2, 536, 534, 3, 2, 2, 2, 537, 538, 7, 44, 2, 2, 538, 539, 7, 49, 2, 2, 539, 540, 3, 2, 2, 2, 540, 541, 8, 22, 10, 2, 541, 53, 3, 2, 2, 2, 542, 544, 9, 4, 2, 2, 543, 542, 3, 2, 2, 2, 544, 545, 3, 2, 2, 2, 545, 543, 3, 2, 2, 2, 545, 546, 3, 2, 2, 2, 546, 547, 3, 2, 2, 2, 547, 548, 8, 23, 10, 2, 548, 55, 3, 2, 2, 2, 549, 550, 5, 160, 76, 2, 550, 551, 3, 2, 2, 2, 551, 552, 8, 24, 11, 2, 552, 553, 8, 24, 12, 2, 553, 57, 3, 2, 2, 2, 554, 555, 5, 66, 29, 2, 555, 556, 3, 2, 2, 2, 556, 557, 8, 25, 13, 2, 557, 558, 8, 25, 14, 2, 558, 59, 3, 2, 2, 2, 559, 560, 5, 54, 23, 2, 560, 561, 3, 2, 2, 2, 561, 562, 8, 26, 10, 2, 562, 61, 3, 2, 2, 2, 563, 564, 5, 50, 21, 2, 564, 565, 3, 2, 2, 2, 565, 566, 8, 27, 10, 2, 566, 63, 3, 2, 2, 2, 567, 568, 5, 52, 22, 2, 568, 569, 3, 2, 2, 2, 569, 570, 8, 28, 10, 2, 570, 65, 3, 2, 2, 2, 571, 572, 7, 126, 2, 2, 572, 573, 3, 2, 2, 2, 573, 574, 8, 29, 14, 2, 574, 67, 3, 2, 2, 2, 575, 576, 9, 5, 2, 2, 576, 69, 3, 2, 2, 2, 577, 578, 9, 6, 2, 2, 578, 71, 3, 2, 2, 2, 579, 580, 7, 94, 2, 2, 580, 581, 9, 7, 2, 2, 581, 73, 3, 2, 2, 2, 582, 583, 10, 8, 2, 2, 583, 75, 3, 2, 2, 2, 584, 586, 9, 9, 2, 2, 585, 587, 9, 10, 2, 2, 586, 585, 3, 2, 2, 2, 586, 587, 3, 2, 2, 2, 587, 589, 3, 2, 2, 2, 588, 590, 5, 68, 30, 2, 589, 588, 3, 2, 2, 2, 590, 591, 3, 2, 2, 2, 591, 589, 3, 2, 2, 2, 591, 592, 3, 2, 2, 2, 592, 77, 3, 2, 2, 2, 593, 594, 7, 66, 2, 2, 594, 79, 3, 2, 2, 2, 595, 596, 7, 98, 2, 2, 596, 81, 3, 2, 2, 2, 597, 601, 10, 11, 2, 2, 598, 599, 7, 98, 2, 2, 599, 601, 7, 98, 2, 2, 600, 597, 3, 2, 2, 2, 600, 598, 3, 2, 2, 2, 601, 83, 3, 2, 2, 2, 602, 603, 7, 97, 2, 2, 603, 85, 3, 2, 2, 2, 604, 608, 5, 70, 31, 2, 605, 608, 5, 68, 30, 2, 606, 608, 5, 84, 38, 2, 607, 604, 3, 2, 2, 2, 607, 605, 3, 2, 2, 2, 607, 606, 3, 2, 2, 2, 608, 87, 3, 2, 2, 2, 609, 614, 7, 36, 2, 2, 610, 613, 5, 72, 32, 2, 611, 613, 5, 74, 33, 2, 612, 610, 3, 2, 2, 2, 612, 611, 3, 2, 2, 2, 613, 616, 3, 2, 2, 2, 614, 612, 3, 2, 2, 2, 614, 615, 3, 2, 2, 2, 615, 617, 3, 2, 2, 2, 616, 614, 3, 2, 2, 2, 617, 639, 7, 36, 2, 2, 618, 619, 7, 36, 2, 2, 619, 620, 7, 36, 2, 2, 620, 621, 7, 36, 2, 2, 621, 625, 3, 2, 2, 2, 622, 624, 10, 3, 2, 2, 623, 622, 3, 2, 2, 2, 624, 627, 3, 2, 2, 2, 625, 626, 3, 2, 2, 2, 625, 623, 3, 2, 2, 2, 626, 628, 3, 2, 2, 2, 627, 625, 3, 2, 2, 2, 628, 629, 7, 36, 2, 2, 629, 630, 7, 36, 2, 2, 630, 631, 7, 36, 2, 2, 631, 633, 3, 2, 2, 2, 632, 634, 7, 36, 2, 2, 633, 632, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 636, 3, 2, 2, 2, 635, 637, 7, 36, 2, 2, 636, 635, 3, 2, 2, 2, 636, 637, 3, 2, 2, 2, 637, 639, 3, 2, 2, 2, 638, 609, 3, 2, 2, 2, 638, 618, 3, 2, 2, 2, 639, 89, 3, 2, 2, 2, 640, 642, 5, 68, 30, 2, 641, 640, 3, 2, 2, 2, 642, 643, 3, 2, 2, 2, 643, 641, 3, 2, 2, 2, 643, 644, 3, 2, 2, 2, 644, 91, 3, 2, 2, 2, 645, 647, 5, 68, 30, 2, 646, 645, 3, 2, 2, 2, 647, 648, 3, 2, 2, 2, 648, 646, 3, 2, 2, 2, 648, 649, 3, 2, 2, 2, 649, 650, 3, 2, 2, 2, 650, 654, 5, 106, 49, 2, 651, 653, 5, 68, 30, 2, 652, 651, 3, 2, 2, 2, 653, 656, 3, 2, 2, 2, 654, 652, 3, 2, 2, 2, 654, 655, 3, 2, 2, 2, 655, 688, 3, 2, 2, 2, 656, 654, 3, 2, 2, 2, 657, 659, 5, 106, 49, 2, 658, 660, 5, 68, 30, 2, 659, 658, 3, 2, 2, 2, 660, 661, 3, 2, 2, 2, 661, 659, 3, 2, 2, 2, 661, 662, 3, 2, 2, 2, 662, 688, 3, 2, 2, 2, 663, 665, 5, 68, 30, 2, 664, 663, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 664, 3, 2, 2, 2, 666, 667, 3, 2, 2, 2, 667, 675, 3, 2, 2, 2, 668, 672, 5, 106, 49, 2, 669, 671, 5, 68, 30, 2, 670, 669, 3, 2, 2, 2, 671, 674, 3, 2, 2, 2, 672, 670, 3, 2, 2, 2, 672, 673, 3, 2, 2, 2, 673, 676, 3, 2, 2, 2, 674, 672, 3, 2, 2, 2, 675, 668, 3, 2, 2, 2, 675, 676, 3, 2, 2, 2, 676, 677, 3, 2, 2, 2, 677, 678, 5, 76, 34, 2, 678, 688, 3, 2, 2, 2, 679, 681, 5, 106, 49, 2, 680, 682, 5, 68, 30, 2, 681, 680, 3, 2, 2, 2, 682, 683, 3, 2, 2, 2, 683, 681, 3, 2, 2, 2, 683, 684, 3, 2, 2, 2, 684, 685, 3, 2, 2, 2, 685, 686, 5, 76, 34, 2, 686, 688, 3, 2, 2, 2, 687, 646, 3, 2, 2, 2, 687, 657, 3, 2, 2, 2, 687, 664, 3, 2, 2, 2, 687, 679, 3, 2, 2, 2, 688, 93, 3, 2, 2, 2, 689, 690, 5, 300, 146, 2, 690, 691, 5, 346, 169, 2, 691, 95, 3, 2, 2, 2, 692, 693, 5, 298, 145, 2, 693, 694, 5, 324, 158, 2, 694, 695, 5, 304, 148, 2, 695, 97, 3, 2, 2, 2, 696, 697, 5, 298, 145, 2, 697, 698, 5, 334, 163, 2, 698, 699, 5, 302, 147, 2, 699, 99, 3, 2, 2, 2, 700, 701, 7, 63, 2, 2, 701, 101, 3, 2, 2, 2, 702, 703, 7, 46, 2, 2, 703, 103, 3, 2, 2, 2, 704, 705, 5, 304, 148, 2, 705, 706, 5, 306, 149, 2, 706, 707, 5, 334, 163, 2, 707, 708, 5, 302, 147, 2, 708, 105, 3, 2, 2, 2, 709, 710, 7, 48, 2, 2, 710, 107, 3, 2, 2, 2, 711, 712, 5, 308, 150, 2, 712, 713, 5, 298, 145, 2, 713, 714, 5, 320, 156, 2, 714, 715, 5, 334, 163, 2, 715, 716, 5, 306, 149, 2, 716, 109, 3, 2, 2, 2, 717, 718, 5, 308, 150, 2, 718, 719, 5, 314, 153, 2, 719, 720, 5, 332, 162, 2, 720, 721, 5, 334, 163, 2, 721, 722, 5, 336, 164, 2, 722, 111, 3, 2, 2, 2, 723, 724, 5, 320, 156, 2, 724, 725, 5, 298, 145, 2, 725, 726, 5, 334, 163, 2, 726, 727, 5, 336, 164, 2, 727, 113, 3, 2, 2, 2, 728, 729, 7, 42, 2, 2, 729, 115, 3, 2, 2, 2, 730, 731, 5, 314, 153, 2, 731, 732, 5, 324, 158, 2, 732, 117, 3, 2, 2, 2, 733, 734, 5, 314, 153, 2, 734, 735, 5, 334, 163, 2, 735, 119, 3, 2, 2, 2, 736, 737, 5, 320, 156, 2, 737, 738, 5, 314, 153, 2, 738, 739, 5, 318, 155, 2, 739, 740, 5, 306, 149, 2, 740, 121, 3, 2, 2, 2, 741, 742, 5, 324, 158, 2, 742, 743, 5, 326, 159, 2, 743, 744, 5, 336, 164, 2, 744, 123, 3, 2, 2, 2, 745, 746, 5, 324, 158, 2, 746, 747, 5, 338, 165, 2, 747, 748, 5, 320, 156, 2, 748, 749, 5, 320, 156, 2, 749, 125, 3, 2, 2, 2, 750, 751, 5, 324, 158, 2, 751, 752, 5, 338, 165, 2, 752, 753, 5, 320, 156, 2, 753, 754, 5, 320, 156, 2, 754, 755, 5, 334, 163, 2, 755, 127, 3, 2, 2, 2, 756, 757, 5, 326, 159, 2, 757, 758, 5, 332, 162, 2, 758, 129, 3, 2, 2, 2, 759, 760, 7, 65, 2, 2, 760, 131, 3, 2, 2, 2, 761, 762, 5, 332, 162, 2, 762, 763, 5, 320, 156, 2, 763, 764, 5, 314, 153, 2, 764, 765, 5, 318, 155, 2, 765, 766, 5, 306, 149, 2, 766, 133, 3, 2, 2, 2, 767, 768, 7, 43, 2, 2, 768, 135, 3, 2, 2, 2, 769, 770, 5, 336, 164, 2, 770, 771, 5, 332, 162, 2, 771, 772, 5, 338, 165, 2, 772, 773, 5, 306, 149, 2, 773, 137, 3, 2, 2, 2, 774, 775, 7, 63, 2, 2, 775, 776, 7, 63, 2, 2, 776, 139, 3, 2, 2, 2, 777, 778, 7, 35, 2, 2, 778, 779, 7, 63, 2, 2, 779, 141, 3, 2, 2, 2, 780, 781, 7, 62, 2, 2, 781, 143, 3, 2, 2, 2, 782, 783, 7, 62, 2, 2, 783, 784, 7, 63, 2, 2, 784, 145, 3, 2, 2, 2, 785, 786, 7, 64, 2, 2, 786, 147, 3, 2, 2, 2, 787, 788, 7, 64, 2, 2, 788, 789, 7, 63, 2, 2, 789, 149, 3, 2, 2, 2, 790, 791, 7, 45, 2, 2, 791, 151, 3, 2, 2, 2, 792, 793, 7, 47, 2, 2, 793, 153, 3, 2, 2, 2, 794, 795, 7, 44, 2, 2, 795, 155, 3, 2, 2, 2, 796, 797, 7, 49, 2, 2, 797, 157, 3, 2, 2, 2, 798, 799, 7, 39, 2, 2, 799, 159, 3, 2, 2, 2, 800, 801, 7, 93, 2, 2, 801, 802, 3, 2, 2, 2, 802, 803, 8, 76, 2, 2, 803, 804, 8, 76, 2, 2, 804, 161, 3, 2, 2, 2, 805, 806, 7, 95, 2, 2, 806, 807, 3, 2, 2, 2, 807, 808, 8, 77, 14, 2, 808, 809, 8, 77, 14, 2, 809, 163, 3, 2, 2, 2, 810, 814, 5, 70, 31, 2, 811, 813, 5, 86, 39, 2, 812, 811, 3, 2, 2, 2, 813, 816, 3, 2, 2, 2, 814, 812, 3, 2, 2, 2, 814, 815, 3, 2, 2, 2, 815, 827, 3, 2, 2, 2, 816, 814, 3, 2, 2, 2, 817, 820, 5, 84, 38, 2, 818, 820, 5, 78, 35, 2, 819, 817, 3, 2, 2, 2, 819, 818, 3, 2, 2, 2, 820, 822, 3, 2, 2, 2, 821, 823, 5, 86, 39, 2, 822, 821, 3, 2, 2, 2, 823, 824, 3, 2, 2, 2, 824, 822, 3, 2, 2, 2, 824, 825, 3, 2, 2, 2, 825, 827, 3, 2, 2, 2, 826, 810, 3, 2, 2, 2, 826, 819, 3, 2, 2, 2, 827, 165, 3, 2, 2, 2, 828, 830, 5, 80, 36, 2, 829, 831, 5, 82, 37, 2, 830, 829, 3, 2, 2, 2, 831, 832, 3, 2, 2, 2, 832, 830, 3, 2, 2, 2, 832, 833, 3, 2, 2, 2, 833, 834, 3, 2, 2, 2, 834, 835, 5, 80, 36, 2, 835, 167, 3, 2, 2, 2, 836, 837, 5, 50, 21, 2, 837, 838, 3, 2, 2, 2, 838, 839, 8, 80, 10, 2, 839, 169, 3, 2, 2, 2, 840, 841, 5, 52, 22, 2, 841, 842, 3, 2, 2, 2, 842, 843, 8, 81, 10, 2, 843, 171, 3, 2, 2, 2, 844, 845, 5, 54, 23, 2, 845, 846, 3, 2, 2, 2, 846, 847, 8, 82, 10, 2, 847, 173, 3, 2, 2, 2, 848, 849, 5, 66, 29, 2, 849, 850, 3, 2, 2, 2, 850, 851, 8, 83, 13, 2, 851, 852, 8, 83, 14, 2, 852, 175, 3, 2, 2, 2, 853, 854, 5, 160, 76, 2, 854, 855, 3, 2, 2, 2, 855, 856, 8, 84, 11, 2, 856, 857, 8, 84, 6, 2, 857, 858, 8, 84, 6, 2, 858, 177, 3, 2, 2, 2, 859, 860, 5, 162, 77, 2, 860, 861, 3, 2, 2, 2, 861, 862, 8, 85, 15, 2, 862, 863, 8, 85, 14, 2, 863, 864, 8, 85, 14, 2, 864, 179, 3, 2, 2, 2, 865, 866, 5, 102, 47, 2, 866, 867, 3, 2, 2, 2, 867, 868, 8, 86, 16, 2, 868, 181, 3, 2, 2, 2, 869, 870, 5, 100, 46, 2, 870, 871, 3, 2, 2, 2, 871, 872, 8, 87, 17, 2, 872, 183, 3, 2, 2, 2, 873, 874, 5, 322, 157, 2, 874, 875, 5, 306, 149, 2, 875, 876, 5, 336, 164, 2, 876, 877, 5, 298, 145, 2, 877, 878, 5, 304, 148, 2, 878, 879, 5, 298, 145, 2, 879, 880, 5, 336, 164, 2, 880, 881, 5, 298, 145, 2, 881, 185, 3, 2, 2, 2, 882, 886, 10, 12, 2, 2, 883, 884, 7, 49, 2, 2, 884, 886, 10, 13, 2, 2, 885, 882, 3, 2, 2, 2, 885, 883, 3, 2, 2, 2, 886, 187, 3, 2, 2, 2, 887, 889, 5, 186, 89, 2, 888, 887, 3, 2, 2, 2, 889, 890, 3, 2, 2, 2, 890, 888, 3, 2, 2, 2, 890, 891, 3, 2, 2, 2, 891, 189, 3, 2, 2, 2, 892, 893, 5, 166, 79, 2, 893, 894, 3, 2, 2, 2, 894, 895, 8, 91, 18, 2, 895, 191, 3, 2, 2, 2, 896, 897, 5, 50, 21, 2, 897, 898, 3, 2, 2, 2, 898, 899, 8, 92, 10, 2, 899, 193, 3, 2, 2, 2, 900, 901, 5, 52, 22, 2, 901, 902, 3, 2, 2, 2, 902, 903, 8, 93, 10, 2, 903, 195, 3, 2, 2, 2, 904, 905, 5, 54, 23, 2, 905, 906, 3, 2, 2, 2, 906, 907, 8, 94, 10, 2, 907, 197, 3, 2, 2, 2, 908, 909, 5, 66, 29, 2, 909, 910, 3, 2, 2, 2, 910, 911, 8, 95, 13, 2, 911, 912, 8, 95, 14, 2, 912, 199, 3, 2, 2, 2, 913, 914, 5, 106, 49, 2, 914, 915, 3, 2, 2, 2, 915, 916, 8, 96, 19, 2, 916, 201, 3, 2, 2, 2, 917, 918, 5, 102, 47, 2, 918, 919, 3, 2, 2, 2, 919, 920, 8, 97, 16, 2, 920, 203, 3, 2, 2, 2, 921, 926, 5, 70, 31, 2, 922, 926, 5, 68, 30, 2, 923, 926, 5, 84, 38, 2, 924, 926, 5, 154, 73, 2, 925, 921, 3, 2, 2, 2, 925, 922, 3, 2, 2, 2, 925, 923, 3, 2, 2, 2, 925, 924, 3, 2, 2, 2, 926, 205, 3, 2, 2, 2, 927, 930, 5, 70, 31, 2, 928, 930, 5, 154, 73, 2, 929, 927, 3, 2, 2, 2, 929, 928, 3, 2, 2, 2, 930, 934, 3, 2, 2, 2, 931, 933, 5, 204, 98, 2, 932, 931, 3, 2, 2, 2, 933, 936, 3, 2, 2, 2, 934, 932, 3, 2, 2, 2, 934, 935, 3, 2, 2, 2, 935, 947, 3, 2, 2, 2, 936, 934, 3, 2, 2, 2, 937, 940, 5, 84, 38, 2, 938, 940, 5, 78, 35, 2, 939, 937, 3, 2, 2, 2, 939, 938, 3, 2, 2, 2, 940, 942, 3, 2, 2, 2, 941, 943, 5, 204, 98, 2, 942, 941, 3, 2, 2, 2, 943, 944, 3, 2, 2, 2, 944, 942, 3, 2, 2, 2, 944, 945, 3, 2, 2, 2, 945, 947, 3, 2, 2, 2, 946, 929, 3, 2, 2, 2, 946, 939, 3, 2, 2, 2, 947, 207, 3, 2, 2, 2, 948, 949, 5, 166, 79, 2, 949, 950, 3, 2, 2, 2, 950, 951, 8, 100, 18, 2, 951, 209, 3, 2, 2, 2, 952, 953, 5, 50, 21, 2, 953, 954, 3, 2, 2, 2, 954, 955, 8, 101, 10, 2, 955, 211, 3, 2, 2, 2, 956, 957, 5, 52, 22, 2, 957, 958, 3, 2, 2, 2, 958, 959, 8, 102, 10, 2, 959, 213, 3, 2, 2, 2, 960, 961, 5, 54, 23, 2, 961, 962, 3, 2, 2, 2, 962, 963, 8, 103, 10, 2, 963, 215, 3, 2, 2, 2, 964, 965, 5, 66, 29, 2, 965, 966, 3, 2, 2, 2, 966, 967, 8, 104, 13, 2, 967, 968, 8, 104, 14, 2, 968, 217, 3, 2, 2, 2, 969, 970, 5, 100, 46, 2, 970, 971, 3, 2, 2, 2, 971, 972, 8, 105, 17, 2, 972, 219, 3, 2, 2, 2, 973, 974, 5, 102, 47, 2, 974, 975, 3, 2, 2, 2, 975, 976, 8, 106, 16, 2, 976, 221, 3, 2, 2, 2, 977, 978, 5, 106, 49, 2, 978, 979, 3, 2, 2, 2, 979, 980, 8, 107, 19, 2, 980, 223, 3, 2, 2, 2, 981, 982, 5, 298, 145, 2, 982, 983, 5, 334, 163, 2, 983, 225, 3, 2, 2, 2, 984, 985, 5, 166, 79, 2, 985, 986, 3, 2, 2, 2, 986, 987, 8, 109, 18, 2, 987, 227, 3, 2, 2, 2, 988, 989, 5, 206, 99, 2, 989, 990, 3, 2, 2, 2, 990, 991, 8, 110, 20, 2, 991, 229, 3, 2, 2, 2, 992, 993, 5, 50, 21, 2, 993, 994, 3, 2, 2, 2, 994, 995, 8, 111, 10, 2, 995, 231, 3, 2, 2, 2, 996, 997, 5, 52, 22, 2, 997, 998, 3, 2, 2, 2, 998, 999, 8, 112, 10, 2, 999, 233, 3, 2, 2, 2, 1000, 1001, 5, 54, 23, 2, 1001, 1002, 3, 2, 2, 2, 1002, 1003, 8, 113, 10, 2, 1003, 235, 3, 2, 2, 2, 1004, 1005, 5, 66, 29, 2, 1005, 1006, 3, 2, 2, 2, 1006, 1007, 8, 114, 13, 2, 1007, 1008, 8, 114, 14, 2, 1008, 237, 3, 2, 2, 2, 1009, 1010, 5, 326, 159, 2, 1010, 1011, 5, 324, 158, 2, 1011, 1012, 3, 2, 2, 2, 1012, 1013, 8, 115, 21, 2, 1013, 239, 3, 2, 2, 2, 1014, 1015, 5, 342, 167, 2, 1015, 1016, 5, 314, 153, 2, 1016, 1017, 5, 336, 164, 2, 1017, 1018, 5, 312, 152, 2, 1018, 1019, 3, 2, 2, 2, 1019, 1020, 8, 116, 21, 2, 1020, 241, 3, 2, 2, 2, 1021, 1022, 5, 188, 90, 2, 1022, 1023, 3, 2, 2, 2, 1023, 1024, 8, 117, 22, 2, 1024, 243, 3, 2, 2, 2, 1025, 1026, 5, 166, 79, 2, 1026, 1027, 3, 2, 2, 2, 1027, 1028, 8, 118, 18, 2, 1028, 245, 3, 2, 2, 2, 1029, 1030, 5, 50, 21, 2, 1030, 1031, 3, 2, 2, 2, 1031, 1032, 8, 119, 10, 2, 1032, 247, 3, 2, 2, 2, 1033, 1034, 5, 52, 22, 2, 1034, 1035, 3, 2, 2, 2, 1035, 1036, 8, 120, 10, 2, 1036, 249, 3, 2, 2, 2, 1037, 1038, 5, 54, 23, 2, 1038, 1039, 3, 2, 2, 2, 1039, 1040, 8, 121, 10, 2, 1040, 251, 3, 2, 2, 2, 1041, 1042, 5, 66, 29, 2, 1042, 1043, 3, 2, 2, 2, 1043, 1044, 8, 122, 13, 2, 1044, 1045, 8, 122, 14, 2, 1045, 1046, 8, 122, 14, 2, 1046, 253, 3, 2, 2, 2, 1047, 1048, 5, 100, 46, 2, 1048, 1049, 3, 2, 2, 2, 1049, 1050, 8, 123, 17, 2, 1050, 255, 3, 2, 2, 2, 1051, 1052, 5, 102, 47, 2, 1052, 1053, 3, 2, 2, 2, 1053, 1054, 8, 124, 16, 2, 1054, 257, 3, 2, 2, 2, 1055, 1056, 5, 106, 49, 2, 1056, 1057, 3, 2, 2, 2, 1057, 1058, 8, 125, 19, 2, 1058, 259, 3, 2, 2, 2, 1059, 1060, 5, 240, 116, 2, 1060, 1061, 3, 2, 2, 2, 1061, 1062, 8, 126, 23, 2, 1062, 261, 3, 2, 2, 2, 1063, 1064, 5, 206, 99, 2, 1064, 1065, 3, 2, 2, 2, 1065, 1066, 8, 127, 20, 2, 1066, 263, 3, 2, 2, 2, 1067, 1068, 5, 166, 79, 2, 1068, 1069, 3, 2, 2, 2, 1069, 1070, 8, 128, 18, 2, 1070, 265, 3, 2, 2, 2, 1071, 1072, 5, 50, 21, 2, 1072, 1073, 3, 2, 2, 2, 1073, 1074, 8, 129, 10, 2, 1074, 267, 3, 2, 2, 2, 1075, 1076, 5, 52, 22, 2, 1076, 1077, 3, 2, 2, 2, 1077, 1078, 8, 130, 10, 2, 1078, 269, 3, 2, 2, 2, 1079, 1080, 5, 54, 23, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1082, 8, 131, 10, 2, 1082, 271, 3, 2, 2, 2, 1083, 1084, 5, 66, 29, 2, 1084, 1085, 3, 2, 2, 2, 1085, 1086, 8, 132, 13, 2, 1086, 1087, 8, 132, 14, 2, 1087, 273, 3, 2, 2, 2, 1088, 1089, 5, 106, 49, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1091, 8, 133, 19, 2, 1091, 275, 3, 2, 2, 2, 1092, 1093, 5, 166, 79, 2, 1093, 1094, 3, 2, 2, 2, 1094, 1095, 8, 134, 18, 2, 1095, 277, 3, 2, 2, 2, 1096, 1097, 5, 164, 78, 2, 1097, 1098, 3, 2, 2, 2, 1098, 1099, 8, 135, 24, 2, 1099, 279, 3, 2, 2, 2, 1100, 1101, 5, 50, 21, 2, 1101, 1102, 3, 2, 2, 2, 1102, 1103, 8, 136, 10, 2, 1103, 281, 3, 2, 2, 2, 1104, 1105, 5, 52, 22, 2, 1105, 1106, 3, 2, 2, 2, 1106, 1107, 8, 137, 10, 2, 1107, 283, 3, 2, 2, 2, 1108, 1109, 5, 54, 23, 2, 1109, 1110, 3, 2, 2, 2, 1110, 1111, 8, 138, 10, 2, 1111, 285, 3, 2, 2, 2, 1112, 1113, 5, 66, 29, 2, 1113, 1114, 3, 2, 2, 2, 1114, 1115, 8, 139, 13, 2, 1115, 1116, 8, 139, 14, 2, 1116, 287, 3, 2, 2, 2, 1117, 1118, 5, 314, 153, 2, 1118, 1119, 5, 324, 158, 2, 1119, 1120, 5, 308, 150, 2, 1120, 1121, 5, 326, 159, 2, 1121, 289, 3, 2, 2, 2, 1122, 1123, 5, 308, 150, 2, 1123, 1124, 5, 338, 165, 2, 1124, 1125, 5, 324, 158, 2, 1125, 1126, 5, 302, 147, 2, 1126, 1127, 5, 336, 164, 2, 1127, 1128, 5, 314, 153, 2, 1128, 1129, 5, 326, 159, 2, 1129, 1130, 5, 324, 158, 2, 1130, 1131, 5, 334, 163, 2, 1131, 291, 3, 2, 2, 2, 1132, 1133, 5, 50, 21, 2, 1133, 1134, 3, 2, 2, 2, 1134, 1135, 8, 142, 10, 2, 1135, 293, 3, 2, 2, 2, 1136, 1137, 5, 52, 22, 2, 1137, 1138, 3, 2, 2, 2, 1138, 1139, 8, 143, 10, 2, 1139, 295, 3, 2, 2, 2, 1140, 1141, 5, 54, 23, 2, 1141, 1142, 3, 2, 2, 2, 1142, 1143, 8, 144, 10, 2, 1143, 297, 3, 2, 2, 2, 1144, 1145, 9, 14, 2, 2, 1145, 299, 3, 2, 2, 2, 1146, 1147, 9, 15, 2, 2, 1147, 301, 3, 2, 2, 2, 1148, 1149, 9, 16, 2, 2, 1149, 303, 3, 2, 2, 2, 1150, 1151, 9, 17, 2, 2, 1151, 305, 3, 2, 2, 2, 1152, 1153, 9, 9, 2, 2, 1153, 307, 3, 2, 2, 2, 1154, 1155, 9, 18, 2, 2, 1155, 309, 3, 2, 2, 2, 1156, 1157, 9, 19, 2, 2, 1157, 311, 3, 2, 2, 2, 1158, 1159, 9, 20, 2, 2, 1159, 313, 3, 2, 2, 2, 1160, 1161, 9, 21, 2, 2, 1161, 315, 3, 2, 2, 2, 1162, 1163, 9, 22, 2, 2, 1163, 317, 3, 2, 2, 2, 1164, 1165, 9, 23, 2, 2, 1165, 319, 3, 2, 2, 2, 1166, 1167, 9, 24, 2, 2, 1167, 321, 3, 2, 2, 2, 1168, 1169, 9, 25, 2, 2, 1169, 323, 3, 2, 2, 2, 1170, 1171, 9, 26, 2, 2, 1171, 325, 3, 2, 2, 2, 1172, 1173, 9, 27, 2, 2, 1173, 327, 3, 2, 2, 2, 1174, 1175, 9, 28, 2, 2, 1175, 329, 3, 2, 2, 2, 1176, 1177, 9, 29, 2, 2, 1177, 331, 3, 2, 2, 2, 1178, 1179, 9, 30, 2, 2, 1179, 333, 3, 2, 2, 2, 1180, 1181, 9, 31, 2, 2, 1181, 335, 3, 2, 2, 2, 1182, 1183, 9, 32, 2, 2, 1183, 337, 3, 2, 2, 2, 1184, 1185, 9, 33, 2, 2, 1185, 339, 3, 2, 2, 2, 1186, 1187, 9, 34, 2, 2, 1187, 341, 3, 2, 2, 2, 1188, 1189, 9, 35, 2, 2, 1189, 343, 3, 2, 2, 2, 1190, 1191, 9, 36, 2, 2, 1191, 345, 3, 2, 2, 2, 1192, 1193, 9, 37, 2, 2, 1193, 347, 3, 2, 2, 2, 1194, 1195, 9, 38, 2, 2, 1195, 349, 3, 2, 2, 2, 51, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 506, 516, 520, 523, 532, 534, 545, 586, 591, 600, 607, 612, 614, 625, 633, 636, 638, 643, 648, 654, 661, 666, 672, 675, 683, 687, 814, 819, 824, 826, 832, 885, 890, 925, 929, 934, 939, 944, 946, 25, 7, 4, 2, 7, 6, 2, 7, 8, 2, 7, 3, 2, 7, 5, 2, 7, 10, 2, 7, 7, 2, 7, 11, 2, 2, 3, 2, 9, 65, 2, 7, 2, 2, 9, 28, 2, 6, 2, 2, 9, 66, 2, 9, 36, 2, 9, 35, 2, 9, 68, 2, 9, 38, 2, 9, 77, 2, 7, 9, 2, 9, 73, 2, 9, 86, 2, 9, 67, 2] \ No newline at end of file +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 106, 1262, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 6, 20, 526, 10, 20, 13, 20, 14, 20, 527, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 536, 10, 21, 12, 21, 14, 21, 539, 11, 21, 3, 21, 5, 21, 542, 10, 21, 3, 21, 5, 21, 545, 10, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 554, 10, 22, 12, 22, 14, 22, 557, 11, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 6, 23, 565, 10, 23, 13, 23, 14, 23, 566, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 5, 34, 608, 10, 34, 3, 34, 6, 34, 611, 10, 34, 13, 34, 14, 34, 612, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 5, 37, 622, 10, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 5, 39, 629, 10, 39, 3, 40, 3, 40, 3, 40, 7, 40, 634, 10, 40, 12, 40, 14, 40, 637, 11, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 7, 40, 645, 10, 40, 12, 40, 14, 40, 648, 11, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 655, 10, 40, 3, 40, 5, 40, 658, 10, 40, 5, 40, 660, 10, 40, 3, 41, 6, 41, 663, 10, 41, 13, 41, 14, 41, 664, 3, 42, 6, 42, 668, 10, 42, 13, 42, 14, 42, 669, 3, 42, 3, 42, 7, 42, 674, 10, 42, 12, 42, 14, 42, 677, 11, 42, 3, 42, 3, 42, 6, 42, 681, 10, 42, 13, 42, 14, 42, 682, 3, 42, 6, 42, 686, 10, 42, 13, 42, 14, 42, 687, 3, 42, 3, 42, 7, 42, 692, 10, 42, 12, 42, 14, 42, 695, 11, 42, 5, 42, 697, 10, 42, 3, 42, 3, 42, 3, 42, 3, 42, 6, 42, 703, 10, 42, 13, 42, 14, 42, 704, 3, 42, 3, 42, 5, 42, 709, 10, 42, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 7, 78, 834, 10, 78, 12, 78, 14, 78, 837, 11, 78, 3, 78, 3, 78, 5, 78, 841, 10, 78, 3, 78, 6, 78, 844, 10, 78, 13, 78, 14, 78, 845, 5, 78, 848, 10, 78, 3, 79, 3, 79, 6, 79, 852, 10, 79, 13, 79, 14, 79, 853, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 903, 10, 89, 3, 90, 6, 90, 906, 10, 90, 13, 90, 14, 90, 907, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 5, 98, 943, 10, 98, 3, 99, 3, 99, 5, 99, 947, 10, 99, 3, 99, 7, 99, 950, 10, 99, 12, 99, 14, 99, 953, 11, 99, 3, 99, 3, 99, 5, 99, 957, 10, 99, 3, 99, 6, 99, 960, 10, 99, 13, 99, 14, 99, 961, 5, 99, 964, 10, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 120, 3, 120, 5, 120, 1052, 10, 120, 3, 120, 7, 120, 1055, 10, 120, 12, 120, 14, 120, 1058, 11, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 6, 151, 1195, 10, 151, 13, 151, 14, 151, 1196, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 156, 3, 156, 3, 157, 3, 157, 3, 158, 3, 158, 3, 159, 3, 159, 3, 160, 3, 160, 3, 161, 3, 161, 3, 162, 3, 162, 3, 163, 3, 163, 3, 164, 3, 164, 3, 165, 3, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 168, 3, 168, 3, 169, 3, 169, 3, 170, 3, 170, 3, 171, 3, 171, 3, 172, 3, 172, 3, 173, 3, 173, 3, 174, 3, 174, 3, 175, 3, 175, 3, 176, 3, 176, 3, 177, 3, 177, 3, 178, 3, 178, 3, 179, 3, 179, 3, 180, 3, 180, 4, 555, 646, 2, 2, 181, 13, 2, 3, 15, 2, 4, 17, 2, 5, 19, 2, 6, 21, 2, 7, 23, 2, 8, 25, 2, 9, 27, 2, 10, 29, 2, 11, 31, 2, 12, 33, 2, 13, 35, 2, 14, 37, 2, 15, 39, 2, 16, 41, 2, 17, 43, 2, 18, 45, 2, 19, 47, 2, 20, 49, 2, 21, 51, 2, 22, 53, 2, 23, 55, 2, 24, 57, 2, 2, 59, 2, 2, 61, 2, 25, 63, 2, 26, 65, 2, 27, 67, 2, 28, 69, 2, 2, 71, 2, 2, 73, 2, 2, 75, 2, 2, 77, 2, 2, 79, 2, 2, 81, 2, 2, 83, 2, 2, 85, 2, 2, 87, 2, 2, 89, 2, 29, 91, 2, 30, 93, 2, 31, 95, 2, 32, 97, 2, 33, 99, 2, 34, 101, 2, 35, 103, 2, 36, 105, 2, 37, 107, 2, 38, 109, 2, 39, 111, 2, 40, 113, 2, 41, 115, 2, 42, 117, 2, 43, 119, 2, 44, 121, 2, 45, 123, 2, 46, 125, 2, 47, 127, 2, 48, 129, 2, 49, 131, 2, 50, 133, 2, 51, 135, 2, 52, 137, 2, 53, 139, 2, 54, 141, 2, 55, 143, 2, 56, 145, 2, 57, 147, 2, 58, 149, 2, 59, 151, 2, 60, 153, 2, 61, 155, 2, 62, 157, 2, 63, 159, 2, 64, 161, 2, 65, 163, 2, 66, 165, 2, 67, 167, 2, 68, 169, 2, 69, 171, 2, 70, 173, 2, 71, 175, 2, 2, 177, 2, 2, 179, 2, 2, 181, 2, 2, 183, 2, 2, 185, 2, 72, 187, 2, 2, 189, 2, 73, 191, 2, 2, 193, 2, 74, 195, 2, 75, 197, 2, 76, 199, 2, 2, 201, 2, 2, 203, 2, 2, 205, 2, 2, 207, 2, 77, 209, 2, 2, 211, 2, 2, 213, 2, 78, 215, 2, 79, 217, 2, 80, 219, 2, 2, 221, 2, 2, 223, 2, 2, 225, 2, 2, 227, 2, 81, 229, 2, 2, 231, 2, 2, 233, 2, 82, 235, 2, 83, 237, 2, 84, 239, 2, 2, 241, 2, 2, 243, 2, 85, 245, 2, 86, 247, 2, 2, 249, 2, 87, 251, 2, 2, 253, 2, 2, 255, 2, 88, 257, 2, 89, 259, 2, 90, 261, 2, 2, 263, 2, 2, 265, 2, 2, 267, 2, 2, 269, 2, 2, 271, 2, 2, 273, 2, 2, 275, 2, 91, 277, 2, 92, 279, 2, 93, 281, 2, 2, 283, 2, 2, 285, 2, 2, 287, 2, 2, 289, 2, 94, 291, 2, 95, 293, 2, 96, 295, 2, 2, 297, 2, 97, 299, 2, 98, 301, 2, 99, 303, 2, 100, 305, 2, 101, 307, 2, 2, 309, 2, 102, 311, 2, 103, 313, 2, 104, 315, 2, 105, 317, 2, 106, 319, 2, 2, 321, 2, 2, 323, 2, 2, 325, 2, 2, 327, 2, 2, 329, 2, 2, 331, 2, 2, 333, 2, 2, 335, 2, 2, 337, 2, 2, 339, 2, 2, 341, 2, 2, 343, 2, 2, 345, 2, 2, 347, 2, 2, 349, 2, 2, 351, 2, 2, 353, 2, 2, 355, 2, 2, 357, 2, 2, 359, 2, 2, 361, 2, 2, 363, 2, 2, 365, 2, 2, 367, 2, 2, 369, 2, 2, 13, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 40, 8, 2, 11, 12, 15, 15, 34, 34, 49, 49, 93, 93, 95, 95, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 50, 59, 4, 2, 67, 92, 99, 124, 7, 2, 36, 36, 94, 94, 112, 112, 116, 116, 118, 118, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 3, 2, 98, 98, 12, 2, 11, 12, 15, 15, 34, 34, 46, 46, 49, 49, 63, 63, 93, 93, 95, 95, 98, 98, 126, 126, 4, 2, 44, 44, 49, 49, 13, 2, 11, 12, 15, 15, 34, 34, 36, 37, 46, 46, 49, 49, 60, 60, 62, 62, 64, 65, 94, 94, 126, 126, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 72, 72, 104, 104, 4, 2, 73, 73, 105, 105, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 1263, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 3, 57, 3, 2, 2, 2, 3, 59, 3, 2, 2, 2, 3, 61, 3, 2, 2, 2, 3, 63, 3, 2, 2, 2, 3, 65, 3, 2, 2, 2, 4, 67, 3, 2, 2, 2, 4, 89, 3, 2, 2, 2, 4, 91, 3, 2, 2, 2, 4, 93, 3, 2, 2, 2, 4, 95, 3, 2, 2, 2, 4, 97, 3, 2, 2, 2, 4, 99, 3, 2, 2, 2, 4, 101, 3, 2, 2, 2, 4, 103, 3, 2, 2, 2, 4, 105, 3, 2, 2, 2, 4, 107, 3, 2, 2, 2, 4, 109, 3, 2, 2, 2, 4, 111, 3, 2, 2, 2, 4, 113, 3, 2, 2, 2, 4, 115, 3, 2, 2, 2, 4, 117, 3, 2, 2, 2, 4, 119, 3, 2, 2, 2, 4, 121, 3, 2, 2, 2, 4, 123, 3, 2, 2, 2, 4, 125, 3, 2, 2, 2, 4, 127, 3, 2, 2, 2, 4, 129, 3, 2, 2, 2, 4, 131, 3, 2, 2, 2, 4, 133, 3, 2, 2, 2, 4, 135, 3, 2, 2, 2, 4, 137, 3, 2, 2, 2, 4, 139, 3, 2, 2, 2, 4, 141, 3, 2, 2, 2, 4, 143, 3, 2, 2, 2, 4, 145, 3, 2, 2, 2, 4, 147, 3, 2, 2, 2, 4, 149, 3, 2, 2, 2, 4, 151, 3, 2, 2, 2, 4, 153, 3, 2, 2, 2, 4, 155, 3, 2, 2, 2, 4, 157, 3, 2, 2, 2, 4, 159, 3, 2, 2, 2, 4, 161, 3, 2, 2, 2, 4, 163, 3, 2, 2, 2, 4, 165, 3, 2, 2, 2, 4, 167, 3, 2, 2, 2, 4, 169, 3, 2, 2, 2, 4, 171, 3, 2, 2, 2, 4, 173, 3, 2, 2, 2, 5, 175, 3, 2, 2, 2, 5, 177, 3, 2, 2, 2, 5, 179, 3, 2, 2, 2, 5, 181, 3, 2, 2, 2, 5, 183, 3, 2, 2, 2, 5, 185, 3, 2, 2, 2, 5, 189, 3, 2, 2, 2, 5, 191, 3, 2, 2, 2, 5, 193, 3, 2, 2, 2, 5, 195, 3, 2, 2, 2, 5, 197, 3, 2, 2, 2, 6, 199, 3, 2, 2, 2, 6, 201, 3, 2, 2, 2, 6, 203, 3, 2, 2, 2, 6, 207, 3, 2, 2, 2, 6, 209, 3, 2, 2, 2, 6, 211, 3, 2, 2, 2, 6, 213, 3, 2, 2, 2, 6, 215, 3, 2, 2, 2, 6, 217, 3, 2, 2, 2, 7, 219, 3, 2, 2, 2, 7, 221, 3, 2, 2, 2, 7, 223, 3, 2, 2, 2, 7, 225, 3, 2, 2, 2, 7, 227, 3, 2, 2, 2, 7, 229, 3, 2, 2, 2, 7, 231, 3, 2, 2, 2, 7, 233, 3, 2, 2, 2, 7, 235, 3, 2, 2, 2, 7, 237, 3, 2, 2, 2, 8, 239, 3, 2, 2, 2, 8, 241, 3, 2, 2, 2, 8, 243, 3, 2, 2, 2, 8, 245, 3, 2, 2, 2, 8, 249, 3, 2, 2, 2, 8, 251, 3, 2, 2, 2, 8, 253, 3, 2, 2, 2, 8, 255, 3, 2, 2, 2, 8, 257, 3, 2, 2, 2, 8, 259, 3, 2, 2, 2, 9, 261, 3, 2, 2, 2, 9, 263, 3, 2, 2, 2, 9, 265, 3, 2, 2, 2, 9, 267, 3, 2, 2, 2, 9, 269, 3, 2, 2, 2, 9, 271, 3, 2, 2, 2, 9, 273, 3, 2, 2, 2, 9, 275, 3, 2, 2, 2, 9, 277, 3, 2, 2, 2, 9, 279, 3, 2, 2, 2, 10, 281, 3, 2, 2, 2, 10, 283, 3, 2, 2, 2, 10, 285, 3, 2, 2, 2, 10, 287, 3, 2, 2, 2, 10, 289, 3, 2, 2, 2, 10, 291, 3, 2, 2, 2, 10, 293, 3, 2, 2, 2, 11, 295, 3, 2, 2, 2, 11, 297, 3, 2, 2, 2, 11, 299, 3, 2, 2, 2, 11, 301, 3, 2, 2, 2, 11, 303, 3, 2, 2, 2, 11, 305, 3, 2, 2, 2, 12, 307, 3, 2, 2, 2, 12, 309, 3, 2, 2, 2, 12, 311, 3, 2, 2, 2, 12, 313, 3, 2, 2, 2, 12, 315, 3, 2, 2, 2, 12, 317, 3, 2, 2, 2, 13, 371, 3, 2, 2, 2, 15, 381, 3, 2, 2, 2, 17, 388, 3, 2, 2, 2, 19, 397, 3, 2, 2, 2, 21, 404, 3, 2, 2, 2, 23, 414, 3, 2, 2, 2, 25, 421, 3, 2, 2, 2, 27, 428, 3, 2, 2, 2, 29, 442, 3, 2, 2, 2, 31, 449, 3, 2, 2, 2, 33, 457, 3, 2, 2, 2, 35, 469, 3, 2, 2, 2, 37, 479, 3, 2, 2, 2, 39, 488, 3, 2, 2, 2, 41, 494, 3, 2, 2, 2, 43, 501, 3, 2, 2, 2, 45, 508, 3, 2, 2, 2, 47, 516, 3, 2, 2, 2, 49, 525, 3, 2, 2, 2, 51, 531, 3, 2, 2, 2, 53, 548, 3, 2, 2, 2, 55, 564, 3, 2, 2, 2, 57, 570, 3, 2, 2, 2, 59, 575, 3, 2, 2, 2, 61, 580, 3, 2, 2, 2, 63, 584, 3, 2, 2, 2, 65, 588, 3, 2, 2, 2, 67, 592, 3, 2, 2, 2, 69, 596, 3, 2, 2, 2, 71, 598, 3, 2, 2, 2, 73, 600, 3, 2, 2, 2, 75, 603, 3, 2, 2, 2, 77, 605, 3, 2, 2, 2, 79, 614, 3, 2, 2, 2, 81, 616, 3, 2, 2, 2, 83, 621, 3, 2, 2, 2, 85, 623, 3, 2, 2, 2, 87, 628, 3, 2, 2, 2, 89, 659, 3, 2, 2, 2, 91, 662, 3, 2, 2, 2, 93, 708, 3, 2, 2, 2, 95, 710, 3, 2, 2, 2, 97, 713, 3, 2, 2, 2, 99, 717, 3, 2, 2, 2, 101, 721, 3, 2, 2, 2, 103, 723, 3, 2, 2, 2, 105, 725, 3, 2, 2, 2, 107, 730, 3, 2, 2, 2, 109, 732, 3, 2, 2, 2, 111, 738, 3, 2, 2, 2, 113, 744, 3, 2, 2, 2, 115, 749, 3, 2, 2, 2, 117, 751, 3, 2, 2, 2, 119, 754, 3, 2, 2, 2, 121, 757, 3, 2, 2, 2, 123, 762, 3, 2, 2, 2, 125, 766, 3, 2, 2, 2, 127, 771, 3, 2, 2, 2, 129, 777, 3, 2, 2, 2, 131, 780, 3, 2, 2, 2, 133, 782, 3, 2, 2, 2, 135, 788, 3, 2, 2, 2, 137, 790, 3, 2, 2, 2, 139, 795, 3, 2, 2, 2, 141, 798, 3, 2, 2, 2, 143, 801, 3, 2, 2, 2, 145, 803, 3, 2, 2, 2, 147, 806, 3, 2, 2, 2, 149, 808, 3, 2, 2, 2, 151, 811, 3, 2, 2, 2, 153, 813, 3, 2, 2, 2, 155, 815, 3, 2, 2, 2, 157, 817, 3, 2, 2, 2, 159, 819, 3, 2, 2, 2, 161, 821, 3, 2, 2, 2, 163, 826, 3, 2, 2, 2, 165, 847, 3, 2, 2, 2, 167, 849, 3, 2, 2, 2, 169, 857, 3, 2, 2, 2, 171, 861, 3, 2, 2, 2, 173, 865, 3, 2, 2, 2, 175, 869, 3, 2, 2, 2, 177, 874, 3, 2, 2, 2, 179, 878, 3, 2, 2, 2, 181, 882, 3, 2, 2, 2, 183, 886, 3, 2, 2, 2, 185, 890, 3, 2, 2, 2, 187, 902, 3, 2, 2, 2, 189, 905, 3, 2, 2, 2, 191, 909, 3, 2, 2, 2, 193, 913, 3, 2, 2, 2, 195, 917, 3, 2, 2, 2, 197, 921, 3, 2, 2, 2, 199, 925, 3, 2, 2, 2, 201, 930, 3, 2, 2, 2, 203, 934, 3, 2, 2, 2, 205, 942, 3, 2, 2, 2, 207, 963, 3, 2, 2, 2, 209, 965, 3, 2, 2, 2, 211, 969, 3, 2, 2, 2, 213, 973, 3, 2, 2, 2, 215, 977, 3, 2, 2, 2, 217, 981, 3, 2, 2, 2, 219, 985, 3, 2, 2, 2, 221, 990, 3, 2, 2, 2, 223, 994, 3, 2, 2, 2, 225, 998, 3, 2, 2, 2, 227, 1002, 3, 2, 2, 2, 229, 1005, 3, 2, 2, 2, 231, 1009, 3, 2, 2, 2, 233, 1013, 3, 2, 2, 2, 235, 1017, 3, 2, 2, 2, 237, 1021, 3, 2, 2, 2, 239, 1025, 3, 2, 2, 2, 241, 1030, 3, 2, 2, 2, 243, 1035, 3, 2, 2, 2, 245, 1040, 3, 2, 2, 2, 247, 1047, 3, 2, 2, 2, 249, 1051, 3, 2, 2, 2, 251, 1059, 3, 2, 2, 2, 253, 1063, 3, 2, 2, 2, 255, 1067, 3, 2, 2, 2, 257, 1071, 3, 2, 2, 2, 259, 1075, 3, 2, 2, 2, 261, 1079, 3, 2, 2, 2, 263, 1085, 3, 2, 2, 2, 265, 1089, 3, 2, 2, 2, 267, 1093, 3, 2, 2, 2, 269, 1097, 3, 2, 2, 2, 271, 1101, 3, 2, 2, 2, 273, 1105, 3, 2, 2, 2, 275, 1109, 3, 2, 2, 2, 277, 1113, 3, 2, 2, 2, 279, 1117, 3, 2, 2, 2, 281, 1121, 3, 2, 2, 2, 283, 1126, 3, 2, 2, 2, 285, 1130, 3, 2, 2, 2, 287, 1134, 3, 2, 2, 2, 289, 1138, 3, 2, 2, 2, 291, 1142, 3, 2, 2, 2, 293, 1146, 3, 2, 2, 2, 295, 1150, 3, 2, 2, 2, 297, 1155, 3, 2, 2, 2, 299, 1160, 3, 2, 2, 2, 301, 1170, 3, 2, 2, 2, 303, 1174, 3, 2, 2, 2, 305, 1178, 3, 2, 2, 2, 307, 1182, 3, 2, 2, 2, 309, 1187, 3, 2, 2, 2, 311, 1194, 3, 2, 2, 2, 313, 1198, 3, 2, 2, 2, 315, 1202, 3, 2, 2, 2, 317, 1206, 3, 2, 2, 2, 319, 1210, 3, 2, 2, 2, 321, 1212, 3, 2, 2, 2, 323, 1214, 3, 2, 2, 2, 325, 1216, 3, 2, 2, 2, 327, 1218, 3, 2, 2, 2, 329, 1220, 3, 2, 2, 2, 331, 1222, 3, 2, 2, 2, 333, 1224, 3, 2, 2, 2, 335, 1226, 3, 2, 2, 2, 337, 1228, 3, 2, 2, 2, 339, 1230, 3, 2, 2, 2, 341, 1232, 3, 2, 2, 2, 343, 1234, 3, 2, 2, 2, 345, 1236, 3, 2, 2, 2, 347, 1238, 3, 2, 2, 2, 349, 1240, 3, 2, 2, 2, 351, 1242, 3, 2, 2, 2, 353, 1244, 3, 2, 2, 2, 355, 1246, 3, 2, 2, 2, 357, 1248, 3, 2, 2, 2, 359, 1250, 3, 2, 2, 2, 361, 1252, 3, 2, 2, 2, 363, 1254, 3, 2, 2, 2, 365, 1256, 3, 2, 2, 2, 367, 1258, 3, 2, 2, 2, 369, 1260, 3, 2, 2, 2, 371, 372, 5, 325, 158, 2, 372, 373, 5, 335, 163, 2, 373, 374, 5, 355, 173, 2, 374, 375, 5, 355, 173, 2, 375, 376, 5, 327, 159, 2, 376, 377, 5, 323, 157, 2, 377, 378, 5, 357, 174, 2, 378, 379, 3, 2, 2, 2, 379, 380, 8, 2, 2, 2, 380, 14, 3, 2, 2, 2, 381, 382, 5, 325, 158, 2, 382, 383, 5, 353, 172, 2, 383, 384, 5, 347, 169, 2, 384, 385, 5, 349, 170, 2, 385, 386, 3, 2, 2, 2, 386, 387, 8, 3, 3, 2, 387, 16, 3, 2, 2, 2, 388, 389, 5, 327, 159, 2, 389, 390, 5, 345, 168, 2, 390, 391, 5, 353, 172, 2, 391, 392, 5, 335, 163, 2, 392, 393, 5, 323, 157, 2, 393, 394, 5, 333, 162, 2, 394, 395, 3, 2, 2, 2, 395, 396, 8, 4, 4, 2, 396, 18, 3, 2, 2, 2, 397, 398, 5, 327, 159, 2, 398, 399, 5, 361, 176, 2, 399, 400, 5, 319, 155, 2, 400, 401, 5, 341, 166, 2, 401, 402, 3, 2, 2, 2, 402, 403, 8, 5, 2, 2, 403, 20, 3, 2, 2, 2, 404, 405, 5, 327, 159, 2, 405, 406, 5, 365, 178, 2, 406, 407, 5, 349, 170, 2, 407, 408, 5, 341, 166, 2, 408, 409, 5, 319, 155, 2, 409, 410, 5, 335, 163, 2, 410, 411, 5, 345, 168, 2, 411, 412, 3, 2, 2, 2, 412, 413, 8, 6, 5, 2, 413, 22, 3, 2, 2, 2, 414, 415, 5, 329, 160, 2, 415, 416, 5, 353, 172, 2, 416, 417, 5, 347, 169, 2, 417, 418, 5, 343, 167, 2, 418, 419, 3, 2, 2, 2, 419, 420, 8, 7, 6, 2, 420, 24, 3, 2, 2, 2, 421, 422, 5, 331, 161, 2, 422, 423, 5, 353, 172, 2, 423, 424, 5, 347, 169, 2, 424, 425, 5, 339, 165, 2, 425, 426, 3, 2, 2, 2, 426, 427, 8, 8, 2, 2, 427, 26, 3, 2, 2, 2, 428, 429, 5, 335, 163, 2, 429, 430, 5, 345, 168, 2, 430, 431, 5, 341, 166, 2, 431, 432, 5, 335, 163, 2, 432, 433, 5, 345, 168, 2, 433, 434, 5, 327, 159, 2, 434, 435, 5, 355, 173, 2, 435, 436, 5, 357, 174, 2, 436, 437, 5, 319, 155, 2, 437, 438, 5, 357, 174, 2, 438, 439, 5, 355, 173, 2, 439, 440, 3, 2, 2, 2, 440, 441, 8, 9, 2, 2, 441, 28, 3, 2, 2, 2, 442, 443, 5, 339, 165, 2, 443, 444, 5, 327, 159, 2, 444, 445, 5, 327, 159, 2, 445, 446, 5, 349, 170, 2, 446, 447, 3, 2, 2, 2, 447, 448, 8, 10, 3, 2, 448, 30, 3, 2, 2, 2, 449, 450, 5, 341, 166, 2, 450, 451, 5, 335, 163, 2, 451, 452, 5, 343, 167, 2, 452, 453, 5, 335, 163, 2, 453, 454, 5, 357, 174, 2, 454, 455, 3, 2, 2, 2, 455, 456, 8, 11, 2, 2, 456, 32, 3, 2, 2, 2, 457, 458, 5, 343, 167, 2, 458, 459, 5, 361, 176, 2, 459, 460, 5, 85, 38, 2, 460, 461, 5, 327, 159, 2, 461, 462, 5, 365, 178, 2, 462, 463, 5, 349, 170, 2, 463, 464, 5, 319, 155, 2, 464, 465, 5, 345, 168, 2, 465, 466, 5, 325, 158, 2, 466, 467, 3, 2, 2, 2, 467, 468, 8, 12, 7, 2, 468, 34, 3, 2, 2, 2, 469, 470, 5, 349, 170, 2, 470, 471, 5, 353, 172, 2, 471, 472, 5, 347, 169, 2, 472, 473, 5, 337, 164, 2, 473, 474, 5, 327, 159, 2, 474, 475, 5, 323, 157, 2, 475, 476, 5, 357, 174, 2, 476, 477, 3, 2, 2, 2, 477, 478, 8, 13, 3, 2, 478, 36, 3, 2, 2, 2, 479, 480, 5, 353, 172, 2, 480, 481, 5, 327, 159, 2, 481, 482, 5, 345, 168, 2, 482, 483, 5, 319, 155, 2, 483, 484, 5, 343, 167, 2, 484, 485, 5, 327, 159, 2, 485, 486, 3, 2, 2, 2, 486, 487, 8, 14, 8, 2, 487, 38, 3, 2, 2, 2, 488, 489, 5, 353, 172, 2, 489, 490, 5, 347, 169, 2, 490, 491, 5, 363, 177, 2, 491, 492, 3, 2, 2, 2, 492, 493, 8, 15, 2, 2, 493, 40, 3, 2, 2, 2, 494, 495, 5, 355, 173, 2, 495, 496, 5, 333, 162, 2, 496, 497, 5, 347, 169, 2, 497, 498, 5, 363, 177, 2, 498, 499, 3, 2, 2, 2, 499, 500, 8, 16, 9, 2, 500, 42, 3, 2, 2, 2, 501, 502, 5, 355, 173, 2, 502, 503, 5, 347, 169, 2, 503, 504, 5, 353, 172, 2, 504, 505, 5, 357, 174, 2, 505, 506, 3, 2, 2, 2, 506, 507, 8, 17, 2, 2, 507, 44, 3, 2, 2, 2, 508, 509, 5, 355, 173, 2, 509, 510, 5, 357, 174, 2, 510, 511, 5, 319, 155, 2, 511, 512, 5, 357, 174, 2, 512, 513, 5, 355, 173, 2, 513, 514, 3, 2, 2, 2, 514, 515, 8, 18, 2, 2, 515, 46, 3, 2, 2, 2, 516, 517, 5, 363, 177, 2, 517, 518, 5, 333, 162, 2, 518, 519, 5, 327, 159, 2, 519, 520, 5, 353, 172, 2, 520, 521, 5, 327, 159, 2, 521, 522, 3, 2, 2, 2, 522, 523, 8, 19, 2, 2, 523, 48, 3, 2, 2, 2, 524, 526, 10, 2, 2, 2, 525, 524, 3, 2, 2, 2, 526, 527, 3, 2, 2, 2, 527, 525, 3, 2, 2, 2, 527, 528, 3, 2, 2, 2, 528, 529, 3, 2, 2, 2, 529, 530, 8, 20, 2, 2, 530, 50, 3, 2, 2, 2, 531, 532, 7, 49, 2, 2, 532, 533, 7, 49, 2, 2, 533, 537, 3, 2, 2, 2, 534, 536, 10, 3, 2, 2, 535, 534, 3, 2, 2, 2, 536, 539, 3, 2, 2, 2, 537, 535, 3, 2, 2, 2, 537, 538, 3, 2, 2, 2, 538, 541, 3, 2, 2, 2, 539, 537, 3, 2, 2, 2, 540, 542, 7, 15, 2, 2, 541, 540, 3, 2, 2, 2, 541, 542, 3, 2, 2, 2, 542, 544, 3, 2, 2, 2, 543, 545, 7, 12, 2, 2, 544, 543, 3, 2, 2, 2, 544, 545, 3, 2, 2, 2, 545, 546, 3, 2, 2, 2, 546, 547, 8, 21, 10, 2, 547, 52, 3, 2, 2, 2, 548, 549, 7, 49, 2, 2, 549, 550, 7, 44, 2, 2, 550, 555, 3, 2, 2, 2, 551, 554, 5, 53, 22, 2, 552, 554, 11, 2, 2, 2, 553, 551, 3, 2, 2, 2, 553, 552, 3, 2, 2, 2, 554, 557, 3, 2, 2, 2, 555, 556, 3, 2, 2, 2, 555, 553, 3, 2, 2, 2, 556, 558, 3, 2, 2, 2, 557, 555, 3, 2, 2, 2, 558, 559, 7, 44, 2, 2, 559, 560, 7, 49, 2, 2, 560, 561, 3, 2, 2, 2, 561, 562, 8, 22, 10, 2, 562, 54, 3, 2, 2, 2, 563, 565, 9, 4, 2, 2, 564, 563, 3, 2, 2, 2, 565, 566, 3, 2, 2, 2, 566, 564, 3, 2, 2, 2, 566, 567, 3, 2, 2, 2, 567, 568, 3, 2, 2, 2, 568, 569, 8, 23, 10, 2, 569, 56, 3, 2, 2, 2, 570, 571, 5, 161, 76, 2, 571, 572, 3, 2, 2, 2, 572, 573, 8, 24, 11, 2, 573, 574, 8, 24, 12, 2, 574, 58, 3, 2, 2, 2, 575, 576, 5, 67, 29, 2, 576, 577, 3, 2, 2, 2, 577, 578, 8, 25, 13, 2, 578, 579, 8, 25, 14, 2, 579, 60, 3, 2, 2, 2, 580, 581, 5, 55, 23, 2, 581, 582, 3, 2, 2, 2, 582, 583, 8, 26, 10, 2, 583, 62, 3, 2, 2, 2, 584, 585, 5, 51, 21, 2, 585, 586, 3, 2, 2, 2, 586, 587, 8, 27, 10, 2, 587, 64, 3, 2, 2, 2, 588, 589, 5, 53, 22, 2, 589, 590, 3, 2, 2, 2, 590, 591, 8, 28, 10, 2, 591, 66, 3, 2, 2, 2, 592, 593, 7, 126, 2, 2, 593, 594, 3, 2, 2, 2, 594, 595, 8, 29, 14, 2, 595, 68, 3, 2, 2, 2, 596, 597, 9, 5, 2, 2, 597, 70, 3, 2, 2, 2, 598, 599, 9, 6, 2, 2, 599, 72, 3, 2, 2, 2, 600, 601, 7, 94, 2, 2, 601, 602, 9, 7, 2, 2, 602, 74, 3, 2, 2, 2, 603, 604, 10, 8, 2, 2, 604, 76, 3, 2, 2, 2, 605, 607, 9, 9, 2, 2, 606, 608, 9, 10, 2, 2, 607, 606, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 610, 3, 2, 2, 2, 609, 611, 5, 69, 30, 2, 610, 609, 3, 2, 2, 2, 611, 612, 3, 2, 2, 2, 612, 610, 3, 2, 2, 2, 612, 613, 3, 2, 2, 2, 613, 78, 3, 2, 2, 2, 614, 615, 7, 66, 2, 2, 615, 80, 3, 2, 2, 2, 616, 617, 7, 98, 2, 2, 617, 82, 3, 2, 2, 2, 618, 622, 10, 11, 2, 2, 619, 620, 7, 98, 2, 2, 620, 622, 7, 98, 2, 2, 621, 618, 3, 2, 2, 2, 621, 619, 3, 2, 2, 2, 622, 84, 3, 2, 2, 2, 623, 624, 7, 97, 2, 2, 624, 86, 3, 2, 2, 2, 625, 629, 5, 71, 31, 2, 626, 629, 5, 69, 30, 2, 627, 629, 5, 85, 38, 2, 628, 625, 3, 2, 2, 2, 628, 626, 3, 2, 2, 2, 628, 627, 3, 2, 2, 2, 629, 88, 3, 2, 2, 2, 630, 635, 7, 36, 2, 2, 631, 634, 5, 73, 32, 2, 632, 634, 5, 75, 33, 2, 633, 631, 3, 2, 2, 2, 633, 632, 3, 2, 2, 2, 634, 637, 3, 2, 2, 2, 635, 633, 3, 2, 2, 2, 635, 636, 3, 2, 2, 2, 636, 638, 3, 2, 2, 2, 637, 635, 3, 2, 2, 2, 638, 660, 7, 36, 2, 2, 639, 640, 7, 36, 2, 2, 640, 641, 7, 36, 2, 2, 641, 642, 7, 36, 2, 2, 642, 646, 3, 2, 2, 2, 643, 645, 10, 3, 2, 2, 644, 643, 3, 2, 2, 2, 645, 648, 3, 2, 2, 2, 646, 647, 3, 2, 2, 2, 646, 644, 3, 2, 2, 2, 647, 649, 3, 2, 2, 2, 648, 646, 3, 2, 2, 2, 649, 650, 7, 36, 2, 2, 650, 651, 7, 36, 2, 2, 651, 652, 7, 36, 2, 2, 652, 654, 3, 2, 2, 2, 653, 655, 7, 36, 2, 2, 654, 653, 3, 2, 2, 2, 654, 655, 3, 2, 2, 2, 655, 657, 3, 2, 2, 2, 656, 658, 7, 36, 2, 2, 657, 656, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 660, 3, 2, 2, 2, 659, 630, 3, 2, 2, 2, 659, 639, 3, 2, 2, 2, 660, 90, 3, 2, 2, 2, 661, 663, 5, 69, 30, 2, 662, 661, 3, 2, 2, 2, 663, 664, 3, 2, 2, 2, 664, 662, 3, 2, 2, 2, 664, 665, 3, 2, 2, 2, 665, 92, 3, 2, 2, 2, 666, 668, 5, 69, 30, 2, 667, 666, 3, 2, 2, 2, 668, 669, 3, 2, 2, 2, 669, 667, 3, 2, 2, 2, 669, 670, 3, 2, 2, 2, 670, 671, 3, 2, 2, 2, 671, 675, 5, 107, 49, 2, 672, 674, 5, 69, 30, 2, 673, 672, 3, 2, 2, 2, 674, 677, 3, 2, 2, 2, 675, 673, 3, 2, 2, 2, 675, 676, 3, 2, 2, 2, 676, 709, 3, 2, 2, 2, 677, 675, 3, 2, 2, 2, 678, 680, 5, 107, 49, 2, 679, 681, 5, 69, 30, 2, 680, 679, 3, 2, 2, 2, 681, 682, 3, 2, 2, 2, 682, 680, 3, 2, 2, 2, 682, 683, 3, 2, 2, 2, 683, 709, 3, 2, 2, 2, 684, 686, 5, 69, 30, 2, 685, 684, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 685, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 696, 3, 2, 2, 2, 689, 693, 5, 107, 49, 2, 690, 692, 5, 69, 30, 2, 691, 690, 3, 2, 2, 2, 692, 695, 3, 2, 2, 2, 693, 691, 3, 2, 2, 2, 693, 694, 3, 2, 2, 2, 694, 697, 3, 2, 2, 2, 695, 693, 3, 2, 2, 2, 696, 689, 3, 2, 2, 2, 696, 697, 3, 2, 2, 2, 697, 698, 3, 2, 2, 2, 698, 699, 5, 77, 34, 2, 699, 709, 3, 2, 2, 2, 700, 702, 5, 107, 49, 2, 701, 703, 5, 69, 30, 2, 702, 701, 3, 2, 2, 2, 703, 704, 3, 2, 2, 2, 704, 702, 3, 2, 2, 2, 704, 705, 3, 2, 2, 2, 705, 706, 3, 2, 2, 2, 706, 707, 5, 77, 34, 2, 707, 709, 3, 2, 2, 2, 708, 667, 3, 2, 2, 2, 708, 678, 3, 2, 2, 2, 708, 685, 3, 2, 2, 2, 708, 700, 3, 2, 2, 2, 709, 94, 3, 2, 2, 2, 710, 711, 5, 321, 156, 2, 711, 712, 5, 367, 179, 2, 712, 96, 3, 2, 2, 2, 713, 714, 5, 319, 155, 2, 714, 715, 5, 345, 168, 2, 715, 716, 5, 325, 158, 2, 716, 98, 3, 2, 2, 2, 717, 718, 5, 319, 155, 2, 718, 719, 5, 355, 173, 2, 719, 720, 5, 323, 157, 2, 720, 100, 3, 2, 2, 2, 721, 722, 7, 63, 2, 2, 722, 102, 3, 2, 2, 2, 723, 724, 7, 46, 2, 2, 724, 104, 3, 2, 2, 2, 725, 726, 5, 325, 158, 2, 726, 727, 5, 327, 159, 2, 727, 728, 5, 355, 173, 2, 728, 729, 5, 323, 157, 2, 729, 106, 3, 2, 2, 2, 730, 731, 7, 48, 2, 2, 731, 108, 3, 2, 2, 2, 732, 733, 5, 329, 160, 2, 733, 734, 5, 319, 155, 2, 734, 735, 5, 341, 166, 2, 735, 736, 5, 355, 173, 2, 736, 737, 5, 327, 159, 2, 737, 110, 3, 2, 2, 2, 738, 739, 5, 329, 160, 2, 739, 740, 5, 335, 163, 2, 740, 741, 5, 353, 172, 2, 741, 742, 5, 355, 173, 2, 742, 743, 5, 357, 174, 2, 743, 112, 3, 2, 2, 2, 744, 745, 5, 341, 166, 2, 745, 746, 5, 319, 155, 2, 746, 747, 5, 355, 173, 2, 747, 748, 5, 357, 174, 2, 748, 114, 3, 2, 2, 2, 749, 750, 7, 42, 2, 2, 750, 116, 3, 2, 2, 2, 751, 752, 5, 335, 163, 2, 752, 753, 5, 345, 168, 2, 753, 118, 3, 2, 2, 2, 754, 755, 5, 335, 163, 2, 755, 756, 5, 355, 173, 2, 756, 120, 3, 2, 2, 2, 757, 758, 5, 341, 166, 2, 758, 759, 5, 335, 163, 2, 759, 760, 5, 339, 165, 2, 760, 761, 5, 327, 159, 2, 761, 122, 3, 2, 2, 2, 762, 763, 5, 345, 168, 2, 763, 764, 5, 347, 169, 2, 764, 765, 5, 357, 174, 2, 765, 124, 3, 2, 2, 2, 766, 767, 5, 345, 168, 2, 767, 768, 5, 359, 175, 2, 768, 769, 5, 341, 166, 2, 769, 770, 5, 341, 166, 2, 770, 126, 3, 2, 2, 2, 771, 772, 5, 345, 168, 2, 772, 773, 5, 359, 175, 2, 773, 774, 5, 341, 166, 2, 774, 775, 5, 341, 166, 2, 775, 776, 5, 355, 173, 2, 776, 128, 3, 2, 2, 2, 777, 778, 5, 347, 169, 2, 778, 779, 5, 353, 172, 2, 779, 130, 3, 2, 2, 2, 780, 781, 7, 65, 2, 2, 781, 132, 3, 2, 2, 2, 782, 783, 5, 353, 172, 2, 783, 784, 5, 341, 166, 2, 784, 785, 5, 335, 163, 2, 785, 786, 5, 339, 165, 2, 786, 787, 5, 327, 159, 2, 787, 134, 3, 2, 2, 2, 788, 789, 7, 43, 2, 2, 789, 136, 3, 2, 2, 2, 790, 791, 5, 357, 174, 2, 791, 792, 5, 353, 172, 2, 792, 793, 5, 359, 175, 2, 793, 794, 5, 327, 159, 2, 794, 138, 3, 2, 2, 2, 795, 796, 7, 63, 2, 2, 796, 797, 7, 63, 2, 2, 797, 140, 3, 2, 2, 2, 798, 799, 7, 35, 2, 2, 799, 800, 7, 63, 2, 2, 800, 142, 3, 2, 2, 2, 801, 802, 7, 62, 2, 2, 802, 144, 3, 2, 2, 2, 803, 804, 7, 62, 2, 2, 804, 805, 7, 63, 2, 2, 805, 146, 3, 2, 2, 2, 806, 807, 7, 64, 2, 2, 807, 148, 3, 2, 2, 2, 808, 809, 7, 64, 2, 2, 809, 810, 7, 63, 2, 2, 810, 150, 3, 2, 2, 2, 811, 812, 7, 45, 2, 2, 812, 152, 3, 2, 2, 2, 813, 814, 7, 47, 2, 2, 814, 154, 3, 2, 2, 2, 815, 816, 7, 44, 2, 2, 816, 156, 3, 2, 2, 2, 817, 818, 7, 49, 2, 2, 818, 158, 3, 2, 2, 2, 819, 820, 7, 39, 2, 2, 820, 160, 3, 2, 2, 2, 821, 822, 7, 93, 2, 2, 822, 823, 3, 2, 2, 2, 823, 824, 8, 76, 2, 2, 824, 825, 8, 76, 2, 2, 825, 162, 3, 2, 2, 2, 826, 827, 7, 95, 2, 2, 827, 828, 3, 2, 2, 2, 828, 829, 8, 77, 14, 2, 829, 830, 8, 77, 14, 2, 830, 164, 3, 2, 2, 2, 831, 835, 5, 71, 31, 2, 832, 834, 5, 87, 39, 2, 833, 832, 3, 2, 2, 2, 834, 837, 3, 2, 2, 2, 835, 833, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 848, 3, 2, 2, 2, 837, 835, 3, 2, 2, 2, 838, 841, 5, 85, 38, 2, 839, 841, 5, 79, 35, 2, 840, 838, 3, 2, 2, 2, 840, 839, 3, 2, 2, 2, 841, 843, 3, 2, 2, 2, 842, 844, 5, 87, 39, 2, 843, 842, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 843, 3, 2, 2, 2, 845, 846, 3, 2, 2, 2, 846, 848, 3, 2, 2, 2, 847, 831, 3, 2, 2, 2, 847, 840, 3, 2, 2, 2, 848, 166, 3, 2, 2, 2, 849, 851, 5, 81, 36, 2, 850, 852, 5, 83, 37, 2, 851, 850, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 851, 3, 2, 2, 2, 853, 854, 3, 2, 2, 2, 854, 855, 3, 2, 2, 2, 855, 856, 5, 81, 36, 2, 856, 168, 3, 2, 2, 2, 857, 858, 5, 51, 21, 2, 858, 859, 3, 2, 2, 2, 859, 860, 8, 80, 10, 2, 860, 170, 3, 2, 2, 2, 861, 862, 5, 53, 22, 2, 862, 863, 3, 2, 2, 2, 863, 864, 8, 81, 10, 2, 864, 172, 3, 2, 2, 2, 865, 866, 5, 55, 23, 2, 866, 867, 3, 2, 2, 2, 867, 868, 8, 82, 10, 2, 868, 174, 3, 2, 2, 2, 869, 870, 5, 67, 29, 2, 870, 871, 3, 2, 2, 2, 871, 872, 8, 83, 13, 2, 872, 873, 8, 83, 14, 2, 873, 176, 3, 2, 2, 2, 874, 875, 5, 161, 76, 2, 875, 876, 3, 2, 2, 2, 876, 877, 8, 84, 11, 2, 877, 178, 3, 2, 2, 2, 878, 879, 5, 163, 77, 2, 879, 880, 3, 2, 2, 2, 880, 881, 8, 85, 15, 2, 881, 180, 3, 2, 2, 2, 882, 883, 5, 103, 47, 2, 883, 884, 3, 2, 2, 2, 884, 885, 8, 86, 16, 2, 885, 182, 3, 2, 2, 2, 886, 887, 5, 101, 46, 2, 887, 888, 3, 2, 2, 2, 888, 889, 8, 87, 17, 2, 889, 184, 3, 2, 2, 2, 890, 891, 5, 343, 167, 2, 891, 892, 5, 327, 159, 2, 892, 893, 5, 357, 174, 2, 893, 894, 5, 319, 155, 2, 894, 895, 5, 325, 158, 2, 895, 896, 5, 319, 155, 2, 896, 897, 5, 357, 174, 2, 897, 898, 5, 319, 155, 2, 898, 186, 3, 2, 2, 2, 899, 903, 10, 12, 2, 2, 900, 901, 7, 49, 2, 2, 901, 903, 10, 13, 2, 2, 902, 899, 3, 2, 2, 2, 902, 900, 3, 2, 2, 2, 903, 188, 3, 2, 2, 2, 904, 906, 5, 187, 89, 2, 905, 904, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 905, 3, 2, 2, 2, 907, 908, 3, 2, 2, 2, 908, 190, 3, 2, 2, 2, 909, 910, 5, 167, 79, 2, 910, 911, 3, 2, 2, 2, 911, 912, 8, 91, 18, 2, 912, 192, 3, 2, 2, 2, 913, 914, 5, 51, 21, 2, 914, 915, 3, 2, 2, 2, 915, 916, 8, 92, 10, 2, 916, 194, 3, 2, 2, 2, 917, 918, 5, 53, 22, 2, 918, 919, 3, 2, 2, 2, 919, 920, 8, 93, 10, 2, 920, 196, 3, 2, 2, 2, 921, 922, 5, 55, 23, 2, 922, 923, 3, 2, 2, 2, 923, 924, 8, 94, 10, 2, 924, 198, 3, 2, 2, 2, 925, 926, 5, 67, 29, 2, 926, 927, 3, 2, 2, 2, 927, 928, 8, 95, 13, 2, 928, 929, 8, 95, 14, 2, 929, 200, 3, 2, 2, 2, 930, 931, 5, 107, 49, 2, 931, 932, 3, 2, 2, 2, 932, 933, 8, 96, 19, 2, 933, 202, 3, 2, 2, 2, 934, 935, 5, 103, 47, 2, 935, 936, 3, 2, 2, 2, 936, 937, 8, 97, 16, 2, 937, 204, 3, 2, 2, 2, 938, 943, 5, 71, 31, 2, 939, 943, 5, 69, 30, 2, 940, 943, 5, 85, 38, 2, 941, 943, 5, 155, 73, 2, 942, 938, 3, 2, 2, 2, 942, 939, 3, 2, 2, 2, 942, 940, 3, 2, 2, 2, 942, 941, 3, 2, 2, 2, 943, 206, 3, 2, 2, 2, 944, 947, 5, 71, 31, 2, 945, 947, 5, 155, 73, 2, 946, 944, 3, 2, 2, 2, 946, 945, 3, 2, 2, 2, 947, 951, 3, 2, 2, 2, 948, 950, 5, 205, 98, 2, 949, 948, 3, 2, 2, 2, 950, 953, 3, 2, 2, 2, 951, 949, 3, 2, 2, 2, 951, 952, 3, 2, 2, 2, 952, 964, 3, 2, 2, 2, 953, 951, 3, 2, 2, 2, 954, 957, 5, 85, 38, 2, 955, 957, 5, 79, 35, 2, 956, 954, 3, 2, 2, 2, 956, 955, 3, 2, 2, 2, 957, 959, 3, 2, 2, 2, 958, 960, 5, 205, 98, 2, 959, 958, 3, 2, 2, 2, 960, 961, 3, 2, 2, 2, 961, 959, 3, 2, 2, 2, 961, 962, 3, 2, 2, 2, 962, 964, 3, 2, 2, 2, 963, 946, 3, 2, 2, 2, 963, 956, 3, 2, 2, 2, 964, 208, 3, 2, 2, 2, 965, 966, 5, 207, 99, 2, 966, 967, 3, 2, 2, 2, 967, 968, 8, 100, 20, 2, 968, 210, 3, 2, 2, 2, 969, 970, 5, 167, 79, 2, 970, 971, 3, 2, 2, 2, 971, 972, 8, 101, 18, 2, 972, 212, 3, 2, 2, 2, 973, 974, 5, 51, 21, 2, 974, 975, 3, 2, 2, 2, 975, 976, 8, 102, 10, 2, 976, 214, 3, 2, 2, 2, 977, 978, 5, 53, 22, 2, 978, 979, 3, 2, 2, 2, 979, 980, 8, 103, 10, 2, 980, 216, 3, 2, 2, 2, 981, 982, 5, 55, 23, 2, 982, 983, 3, 2, 2, 2, 983, 984, 8, 104, 10, 2, 984, 218, 3, 2, 2, 2, 985, 986, 5, 67, 29, 2, 986, 987, 3, 2, 2, 2, 987, 988, 8, 105, 13, 2, 988, 989, 8, 105, 14, 2, 989, 220, 3, 2, 2, 2, 990, 991, 5, 101, 46, 2, 991, 992, 3, 2, 2, 2, 992, 993, 8, 106, 17, 2, 993, 222, 3, 2, 2, 2, 994, 995, 5, 103, 47, 2, 995, 996, 3, 2, 2, 2, 996, 997, 8, 107, 16, 2, 997, 224, 3, 2, 2, 2, 998, 999, 5, 107, 49, 2, 999, 1000, 3, 2, 2, 2, 1000, 1001, 8, 108, 19, 2, 1001, 226, 3, 2, 2, 2, 1002, 1003, 5, 319, 155, 2, 1003, 1004, 5, 355, 173, 2, 1004, 228, 3, 2, 2, 2, 1005, 1006, 5, 167, 79, 2, 1006, 1007, 3, 2, 2, 2, 1007, 1008, 8, 110, 18, 2, 1008, 230, 3, 2, 2, 2, 1009, 1010, 5, 207, 99, 2, 1010, 1011, 3, 2, 2, 2, 1011, 1012, 8, 111, 20, 2, 1012, 232, 3, 2, 2, 2, 1013, 1014, 5, 51, 21, 2, 1014, 1015, 3, 2, 2, 2, 1015, 1016, 8, 112, 10, 2, 1016, 234, 3, 2, 2, 2, 1017, 1018, 5, 53, 22, 2, 1018, 1019, 3, 2, 2, 2, 1019, 1020, 8, 113, 10, 2, 1020, 236, 3, 2, 2, 2, 1021, 1022, 5, 55, 23, 2, 1022, 1023, 3, 2, 2, 2, 1023, 1024, 8, 114, 10, 2, 1024, 238, 3, 2, 2, 2, 1025, 1026, 5, 67, 29, 2, 1026, 1027, 3, 2, 2, 2, 1027, 1028, 8, 115, 13, 2, 1028, 1029, 8, 115, 14, 2, 1029, 240, 3, 2, 2, 2, 1030, 1031, 5, 161, 76, 2, 1031, 1032, 3, 2, 2, 2, 1032, 1033, 8, 116, 11, 2, 1033, 1034, 8, 116, 21, 2, 1034, 242, 3, 2, 2, 2, 1035, 1036, 5, 347, 169, 2, 1036, 1037, 5, 345, 168, 2, 1037, 1038, 3, 2, 2, 2, 1038, 1039, 8, 117, 22, 2, 1039, 244, 3, 2, 2, 2, 1040, 1041, 5, 363, 177, 2, 1041, 1042, 5, 335, 163, 2, 1042, 1043, 5, 357, 174, 2, 1043, 1044, 5, 333, 162, 2, 1044, 1045, 3, 2, 2, 2, 1045, 1046, 8, 118, 22, 2, 1046, 246, 3, 2, 2, 2, 1047, 1048, 10, 14, 2, 2, 1048, 248, 3, 2, 2, 2, 1049, 1052, 5, 71, 31, 2, 1050, 1052, 5, 69, 30, 2, 1051, 1049, 3, 2, 2, 2, 1051, 1050, 3, 2, 2, 2, 1052, 1056, 3, 2, 2, 2, 1053, 1055, 5, 247, 119, 2, 1054, 1053, 3, 2, 2, 2, 1055, 1058, 3, 2, 2, 2, 1056, 1054, 3, 2, 2, 2, 1056, 1057, 3, 2, 2, 2, 1057, 250, 3, 2, 2, 2, 1058, 1056, 3, 2, 2, 2, 1059, 1060, 5, 167, 79, 2, 1060, 1061, 3, 2, 2, 2, 1061, 1062, 8, 121, 18, 2, 1062, 252, 3, 2, 2, 2, 1063, 1064, 5, 249, 120, 2, 1064, 1065, 3, 2, 2, 2, 1065, 1066, 8, 122, 23, 2, 1066, 254, 3, 2, 2, 2, 1067, 1068, 5, 51, 21, 2, 1068, 1069, 3, 2, 2, 2, 1069, 1070, 8, 123, 10, 2, 1070, 256, 3, 2, 2, 2, 1071, 1072, 5, 53, 22, 2, 1072, 1073, 3, 2, 2, 2, 1073, 1074, 8, 124, 10, 2, 1074, 258, 3, 2, 2, 2, 1075, 1076, 5, 55, 23, 2, 1076, 1077, 3, 2, 2, 2, 1077, 1078, 8, 125, 10, 2, 1078, 260, 3, 2, 2, 2, 1079, 1080, 5, 67, 29, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1082, 8, 126, 13, 2, 1082, 1083, 8, 126, 14, 2, 1083, 1084, 8, 126, 14, 2, 1084, 262, 3, 2, 2, 2, 1085, 1086, 5, 101, 46, 2, 1086, 1087, 3, 2, 2, 2, 1087, 1088, 8, 127, 17, 2, 1088, 264, 3, 2, 2, 2, 1089, 1090, 5, 103, 47, 2, 1090, 1091, 3, 2, 2, 2, 1091, 1092, 8, 128, 16, 2, 1092, 266, 3, 2, 2, 2, 1093, 1094, 5, 107, 49, 2, 1094, 1095, 3, 2, 2, 2, 1095, 1096, 8, 129, 19, 2, 1096, 268, 3, 2, 2, 2, 1097, 1098, 5, 245, 118, 2, 1098, 1099, 3, 2, 2, 2, 1099, 1100, 8, 130, 24, 2, 1100, 270, 3, 2, 2, 2, 1101, 1102, 5, 207, 99, 2, 1102, 1103, 3, 2, 2, 2, 1103, 1104, 8, 131, 20, 2, 1104, 272, 3, 2, 2, 2, 1105, 1106, 5, 167, 79, 2, 1106, 1107, 3, 2, 2, 2, 1107, 1108, 8, 132, 18, 2, 1108, 274, 3, 2, 2, 2, 1109, 1110, 5, 51, 21, 2, 1110, 1111, 3, 2, 2, 2, 1111, 1112, 8, 133, 10, 2, 1112, 276, 3, 2, 2, 2, 1113, 1114, 5, 53, 22, 2, 1114, 1115, 3, 2, 2, 2, 1115, 1116, 8, 134, 10, 2, 1116, 278, 3, 2, 2, 2, 1117, 1118, 5, 55, 23, 2, 1118, 1119, 3, 2, 2, 2, 1119, 1120, 8, 135, 10, 2, 1120, 280, 3, 2, 2, 2, 1121, 1122, 5, 67, 29, 2, 1122, 1123, 3, 2, 2, 2, 1123, 1124, 8, 136, 13, 2, 1124, 1125, 8, 136, 14, 2, 1125, 282, 3, 2, 2, 2, 1126, 1127, 5, 107, 49, 2, 1127, 1128, 3, 2, 2, 2, 1128, 1129, 8, 137, 19, 2, 1129, 284, 3, 2, 2, 2, 1130, 1131, 5, 167, 79, 2, 1131, 1132, 3, 2, 2, 2, 1132, 1133, 8, 138, 18, 2, 1133, 286, 3, 2, 2, 2, 1134, 1135, 5, 165, 78, 2, 1135, 1136, 3, 2, 2, 2, 1136, 1137, 8, 139, 25, 2, 1137, 288, 3, 2, 2, 2, 1138, 1139, 5, 51, 21, 2, 1139, 1140, 3, 2, 2, 2, 1140, 1141, 8, 140, 10, 2, 1141, 290, 3, 2, 2, 2, 1142, 1143, 5, 53, 22, 2, 1143, 1144, 3, 2, 2, 2, 1144, 1145, 8, 141, 10, 2, 1145, 292, 3, 2, 2, 2, 1146, 1147, 5, 55, 23, 2, 1147, 1148, 3, 2, 2, 2, 1148, 1149, 8, 142, 10, 2, 1149, 294, 3, 2, 2, 2, 1150, 1151, 5, 67, 29, 2, 1151, 1152, 3, 2, 2, 2, 1152, 1153, 8, 143, 13, 2, 1153, 1154, 8, 143, 14, 2, 1154, 296, 3, 2, 2, 2, 1155, 1156, 5, 335, 163, 2, 1156, 1157, 5, 345, 168, 2, 1157, 1158, 5, 329, 160, 2, 1158, 1159, 5, 347, 169, 2, 1159, 298, 3, 2, 2, 2, 1160, 1161, 5, 329, 160, 2, 1161, 1162, 5, 359, 175, 2, 1162, 1163, 5, 345, 168, 2, 1163, 1164, 5, 323, 157, 2, 1164, 1165, 5, 357, 174, 2, 1165, 1166, 5, 335, 163, 2, 1166, 1167, 5, 347, 169, 2, 1167, 1168, 5, 345, 168, 2, 1168, 1169, 5, 355, 173, 2, 1169, 300, 3, 2, 2, 2, 1170, 1171, 5, 51, 21, 2, 1171, 1172, 3, 2, 2, 2, 1172, 1173, 8, 146, 10, 2, 1173, 302, 3, 2, 2, 2, 1174, 1175, 5, 53, 22, 2, 1175, 1176, 3, 2, 2, 2, 1176, 1177, 8, 147, 10, 2, 1177, 304, 3, 2, 2, 2, 1178, 1179, 5, 55, 23, 2, 1179, 1180, 3, 2, 2, 2, 1180, 1181, 8, 148, 10, 2, 1181, 306, 3, 2, 2, 2, 1182, 1183, 5, 163, 77, 2, 1183, 1184, 3, 2, 2, 2, 1184, 1185, 8, 149, 15, 2, 1185, 1186, 8, 149, 14, 2, 1186, 308, 3, 2, 2, 2, 1187, 1188, 7, 60, 2, 2, 1188, 310, 3, 2, 2, 2, 1189, 1195, 5, 79, 35, 2, 1190, 1195, 5, 69, 30, 2, 1191, 1195, 5, 107, 49, 2, 1192, 1195, 5, 71, 31, 2, 1193, 1195, 5, 85, 38, 2, 1194, 1189, 3, 2, 2, 2, 1194, 1190, 3, 2, 2, 2, 1194, 1191, 3, 2, 2, 2, 1194, 1192, 3, 2, 2, 2, 1194, 1193, 3, 2, 2, 2, 1195, 1196, 3, 2, 2, 2, 1196, 1194, 3, 2, 2, 2, 1196, 1197, 3, 2, 2, 2, 1197, 312, 3, 2, 2, 2, 1198, 1199, 5, 51, 21, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1201, 8, 152, 10, 2, 1201, 314, 3, 2, 2, 2, 1202, 1203, 5, 53, 22, 2, 1203, 1204, 3, 2, 2, 2, 1204, 1205, 8, 153, 10, 2, 1205, 316, 3, 2, 2, 2, 1206, 1207, 5, 55, 23, 2, 1207, 1208, 3, 2, 2, 2, 1208, 1209, 8, 154, 10, 2, 1209, 318, 3, 2, 2, 2, 1210, 1211, 9, 15, 2, 2, 1211, 320, 3, 2, 2, 2, 1212, 1213, 9, 16, 2, 2, 1213, 322, 3, 2, 2, 2, 1214, 1215, 9, 17, 2, 2, 1215, 324, 3, 2, 2, 2, 1216, 1217, 9, 18, 2, 2, 1217, 326, 3, 2, 2, 2, 1218, 1219, 9, 9, 2, 2, 1219, 328, 3, 2, 2, 2, 1220, 1221, 9, 19, 2, 2, 1221, 330, 3, 2, 2, 2, 1222, 1223, 9, 20, 2, 2, 1223, 332, 3, 2, 2, 2, 1224, 1225, 9, 21, 2, 2, 1225, 334, 3, 2, 2, 2, 1226, 1227, 9, 22, 2, 2, 1227, 336, 3, 2, 2, 2, 1228, 1229, 9, 23, 2, 2, 1229, 338, 3, 2, 2, 2, 1230, 1231, 9, 24, 2, 2, 1231, 340, 3, 2, 2, 2, 1232, 1233, 9, 25, 2, 2, 1233, 342, 3, 2, 2, 2, 1234, 1235, 9, 26, 2, 2, 1235, 344, 3, 2, 2, 2, 1236, 1237, 9, 27, 2, 2, 1237, 346, 3, 2, 2, 2, 1238, 1239, 9, 28, 2, 2, 1239, 348, 3, 2, 2, 2, 1240, 1241, 9, 29, 2, 2, 1241, 350, 3, 2, 2, 2, 1242, 1243, 9, 30, 2, 2, 1243, 352, 3, 2, 2, 2, 1244, 1245, 9, 31, 2, 2, 1245, 354, 3, 2, 2, 2, 1246, 1247, 9, 32, 2, 2, 1247, 356, 3, 2, 2, 2, 1248, 1249, 9, 33, 2, 2, 1249, 358, 3, 2, 2, 2, 1250, 1251, 9, 34, 2, 2, 1251, 360, 3, 2, 2, 2, 1252, 1253, 9, 35, 2, 2, 1253, 362, 3, 2, 2, 2, 1254, 1255, 9, 36, 2, 2, 1255, 364, 3, 2, 2, 2, 1256, 1257, 9, 37, 2, 2, 1257, 366, 3, 2, 2, 2, 1258, 1259, 9, 38, 2, 2, 1259, 368, 3, 2, 2, 2, 1260, 1261, 9, 39, 2, 2, 1261, 370, 3, 2, 2, 2, 56, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 527, 537, 541, 544, 553, 555, 566, 607, 612, 621, 628, 633, 635, 646, 654, 657, 659, 664, 669, 675, 682, 687, 693, 696, 704, 708, 835, 840, 845, 847, 853, 902, 907, 942, 946, 951, 956, 961, 963, 1051, 1056, 1194, 1196, 26, 7, 4, 2, 7, 6, 2, 7, 8, 2, 7, 3, 2, 7, 5, 2, 7, 10, 2, 7, 7, 2, 7, 11, 2, 2, 3, 2, 9, 65, 2, 7, 2, 2, 9, 28, 2, 6, 2, 2, 9, 66, 2, 9, 36, 2, 9, 35, 2, 9, 68, 2, 9, 38, 2, 9, 77, 2, 7, 12, 2, 7, 9, 2, 9, 87, 2, 9, 86, 2, 9, 67, 2] \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.tokens b/packages/kbn-monaco/src/esql/antlr/esql_lexer.tokens index 85a98c3a6d268..073febb9e1783 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.tokens +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.tokens @@ -72,7 +72,7 @@ FROM_UNQUOTED_IDENTIFIER=71 FROM_LINE_COMMENT=72 FROM_MULTILINE_COMMENT=73 FROM_WS=74 -PROJECT_UNQUOTED_IDENTIFIER=75 +UNQUOTED_ID_PATTERN=75 PROJECT_LINE_COMMENT=76 PROJECT_MULTILINE_COMMENT=77 PROJECT_WS=78 @@ -82,20 +82,26 @@ RENAME_MULTILINE_COMMENT=81 RENAME_WS=82 ON=83 WITH=84 -ENRICH_LINE_COMMENT=85 -ENRICH_MULTILINE_COMMENT=86 -ENRICH_WS=87 -ENRICH_FIELD_LINE_COMMENT=88 -ENRICH_FIELD_MULTILINE_COMMENT=89 -ENRICH_FIELD_WS=90 -MVEXPAND_LINE_COMMENT=91 -MVEXPAND_MULTILINE_COMMENT=92 -MVEXPAND_WS=93 -INFO=94 -FUNCTIONS=95 -SHOW_LINE_COMMENT=96 -SHOW_MULTILINE_COMMENT=97 -SHOW_WS=98 +ENRICH_POLICY_NAME=85 +ENRICH_LINE_COMMENT=86 +ENRICH_MULTILINE_COMMENT=87 +ENRICH_WS=88 +ENRICH_FIELD_LINE_COMMENT=89 +ENRICH_FIELD_MULTILINE_COMMENT=90 +ENRICH_FIELD_WS=91 +MVEXPAND_LINE_COMMENT=92 +MVEXPAND_MULTILINE_COMMENT=93 +MVEXPAND_WS=94 +INFO=95 +FUNCTIONS=96 +SHOW_LINE_COMMENT=97 +SHOW_MULTILINE_COMMENT=98 +SHOW_WS=99 +COLON=100 +SETTING=101 +SETTING_LINE_COMMENT=102 +SETTTING_MULTILINE_COMMENT=103 +SETTING_WS=104 '|'=26 '='=33 ','=34 @@ -115,3 +121,4 @@ SHOW_WS=98 '/'=61 '%'=62 ']'=64 +':'=100 diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts b/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts index 741ea56ba1408..220f6417faa08 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts @@ -91,7 +91,7 @@ export class esql_lexer extends Lexer { public static readonly FROM_LINE_COMMENT = 72; public static readonly FROM_MULTILINE_COMMENT = 73; public static readonly FROM_WS = 74; - public static readonly PROJECT_UNQUOTED_IDENTIFIER = 75; + public static readonly UNQUOTED_ID_PATTERN = 75; public static readonly PROJECT_LINE_COMMENT = 76; public static readonly PROJECT_MULTILINE_COMMENT = 77; public static readonly PROJECT_WS = 78; @@ -101,20 +101,26 @@ export class esql_lexer extends Lexer { public static readonly RENAME_WS = 82; public static readonly ON = 83; public static readonly WITH = 84; - public static readonly ENRICH_LINE_COMMENT = 85; - public static readonly ENRICH_MULTILINE_COMMENT = 86; - public static readonly ENRICH_WS = 87; - public static readonly ENRICH_FIELD_LINE_COMMENT = 88; - public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 89; - public static readonly ENRICH_FIELD_WS = 90; - public static readonly MVEXPAND_LINE_COMMENT = 91; - public static readonly MVEXPAND_MULTILINE_COMMENT = 92; - public static readonly MVEXPAND_WS = 93; - public static readonly INFO = 94; - public static readonly FUNCTIONS = 95; - public static readonly SHOW_LINE_COMMENT = 96; - public static readonly SHOW_MULTILINE_COMMENT = 97; - public static readonly SHOW_WS = 98; + public static readonly ENRICH_POLICY_NAME = 85; + public static readonly ENRICH_LINE_COMMENT = 86; + public static readonly ENRICH_MULTILINE_COMMENT = 87; + public static readonly ENRICH_WS = 88; + public static readonly ENRICH_FIELD_LINE_COMMENT = 89; + public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 90; + public static readonly ENRICH_FIELD_WS = 91; + public static readonly MVEXPAND_LINE_COMMENT = 92; + public static readonly MVEXPAND_MULTILINE_COMMENT = 93; + public static readonly MVEXPAND_WS = 94; + public static readonly INFO = 95; + public static readonly FUNCTIONS = 96; + public static readonly SHOW_LINE_COMMENT = 97; + public static readonly SHOW_MULTILINE_COMMENT = 98; + public static readonly SHOW_WS = 99; + public static readonly COLON = 100; + public static readonly SETTING = 101; + public static readonly SETTING_LINE_COMMENT = 102; + public static readonly SETTTING_MULTILINE_COMMENT = 103; + public static readonly SETTING_WS = 104; public static readonly EXPLAIN_MODE = 1; public static readonly EXPRESSION_MODE = 2; public static readonly FROM_MODE = 3; @@ -124,6 +130,7 @@ export class esql_lexer extends Lexer { public static readonly ENRICH_FIELD_MODE = 7; public static readonly MVEXPAND_MODE = 8; public static readonly SHOW_MODE = 9; + public static readonly SETTING_MODE = 10; // tslint:disable:no-trailing-whitespace public static readonly channelNames: string[] = [ @@ -133,7 +140,8 @@ export class esql_lexer extends Lexer { // tslint:disable:no-trailing-whitespace public static readonly modeNames: string[] = [ "DEFAULT_MODE", "EXPLAIN_MODE", "EXPRESSION_MODE", "FROM_MODE", "PROJECT_MODE", - "RENAME_MODE", "ENRICH_MODE", "ENRICH_FIELD_MODE", "MVEXPAND_MODE", "SHOW_MODE", + "RENAME_MODE", "ENRICH_MODE", "ENRICH_FIELD_MODE", "MVEXPAND_MODE", "SHOW_MODE", + "SETTING_MODE", ]; public static readonly ruleNames: string[] = [ @@ -153,21 +161,23 @@ export class esql_lexer extends Lexer { "FROM_COMMA", "FROM_ASSIGN", "METADATA", "FROM_UNQUOTED_IDENTIFIER_PART", "FROM_UNQUOTED_IDENTIFIER", "FROM_QUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", "FROM_WS", "PROJECT_PIPE", "PROJECT_DOT", "PROJECT_COMMA", - "UNQUOTED_ID_BODY_WITH_PATTERN", "PROJECT_UNQUOTED_IDENTIFIER", "PROJECT_QUOTED_IDENTIFIER", - "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", "PROJECT_WS", "RENAME_PIPE", - "RENAME_ASSIGN", "RENAME_COMMA", "RENAME_DOT", "AS", "RENAME_QUOTED_IDENTIFIER", - "RENAME_UNQUOTED_IDENTIFIER", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", - "RENAME_WS", "ENRICH_PIPE", "ON", "WITH", "ENRICH_POLICY_UNQUOTED_IDENTIFIER", - "ENRICH_QUOTED_IDENTIFIER", "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", + "UNQUOTED_ID_BODY_WITH_PATTERN", "UNQUOTED_ID_PATTERN", "PROJECT_UNQUOTED_IDENTIFIER", + "PROJECT_QUOTED_IDENTIFIER", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", + "PROJECT_WS", "RENAME_PIPE", "RENAME_ASSIGN", "RENAME_COMMA", "RENAME_DOT", + "AS", "RENAME_QUOTED_IDENTIFIER", "RENAME_UNQUOTED_IDENTIFIER", "RENAME_LINE_COMMENT", + "RENAME_MULTILINE_COMMENT", "RENAME_WS", "ENRICH_PIPE", "ENRICH_OPENING_BRACKET", + "ON", "WITH", "ENRICH_POLICY_NAME_BODY", "ENRICH_POLICY_NAME", "ENRICH_QUOTED_IDENTIFIER", + "ENRICH_MODE_UNQUOTED_VALUE", "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_PIPE", "ENRICH_FIELD_ASSIGN", "ENRICH_FIELD_COMMA", "ENRICH_FIELD_DOT", "ENRICH_FIELD_WITH", "ENRICH_FIELD_UNQUOTED_IDENTIFIER", "ENRICH_FIELD_QUOTED_IDENTIFIER", "ENRICH_FIELD_LINE_COMMENT", "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_PIPE", "MVEXPAND_DOT", "MVEXPAND_QUOTED_IDENTIFIER", "MVEXPAND_UNQUOTED_IDENTIFIER", "MVEXPAND_LINE_COMMENT", "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS", "SHOW_PIPE", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", - "SHOW_MULTILINE_COMMENT", "SHOW_WS", "A", "B", "C", "D", "E", "F", "G", - "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", - "V", "W", "X", "Y", "Z", + "SHOW_MULTILINE_COMMENT", "SHOW_WS", "SETTING_CLOSING_BRACKET", "COLON", + "SETTING", "SETTING_LINE_COMMENT", "SETTTING_MULTILINE_COMMENT", "SETTING_WS", + "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", + "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ]; private static readonly _LITERAL_NAMES: Array = [ @@ -179,7 +189,12 @@ export class esql_lexer extends Lexer { "'.'", undefined, undefined, undefined, "'('", undefined, undefined, undefined, undefined, undefined, undefined, undefined, "'?'", undefined, "')'", undefined, "'=='", "'!='", "'<'", "'<='", "'>'", "'>='", "'+'", "'-'", "'*'", "'/'", - "'%'", undefined, "']'", + "'%'", undefined, "']'", undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, "':'", ]; private static readonly _SYMBOLIC_NAMES: Array = [ undefined, "DISSECT", "DROP", "ENRICH", "EVAL", "EXPLAIN", "FROM", "GROK", @@ -193,13 +208,14 @@ export class esql_lexer extends Lexer { "PERCENT", "OPENING_BRACKET", "CLOSING_BRACKET", "UNQUOTED_IDENTIFIER", "QUOTED_IDENTIFIER", "EXPR_LINE_COMMENT", "EXPR_MULTILINE_COMMENT", "EXPR_WS", "METADATA", "FROM_UNQUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", - "FROM_WS", "PROJECT_UNQUOTED_IDENTIFIER", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", + "FROM_WS", "UNQUOTED_ID_PATTERN", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", "PROJECT_WS", "AS", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", - "RENAME_WS", "ON", "WITH", "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", - "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", "ENRICH_FIELD_MULTILINE_COMMENT", - "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", "MVEXPAND_MULTILINE_COMMENT", - "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", "SHOW_MULTILINE_COMMENT", - "SHOW_WS", + "RENAME_WS", "ON", "WITH", "ENRICH_POLICY_NAME", "ENRICH_LINE_COMMENT", + "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", + "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", + "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", + "SHOW_MULTILINE_COMMENT", "SHOW_WS", "COLON", "SETTING", "SETTING_LINE_COMMENT", + "SETTTING_MULTILINE_COMMENT", "SETTING_WS", ]; public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(esql_lexer._LITERAL_NAMES, esql_lexer._SYMBOLIC_NAMES, []); @@ -233,592 +249,628 @@ export class esql_lexer extends Lexer { private static readonly _serializedATNSegments: number = 3; private static readonly _serializedATNSegment0: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02d\u04AC\b\x01" + - "\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\x04\x02\t\x02\x04" + - "\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07\t\x07\x04" + - "\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04\x0E\t\x0E" + - "\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04\x13\t\x13" + - "\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17\x04\x18\t\x18" + - "\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04\x1D\t\x1D" + - "\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#\t#\x04$\t" + - "$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04+\t+\x04,\t,\x04" + - "-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x044\t4\x045\t5\x04" + - "6\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04=\t=\x04>\t>\x04" + - "?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04F\tF\x04G\tG\x04" + - "H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04O\tO\x04P\tP\x04" + - "Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04X\tX\x04Y\tY\x04" + - "Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t`\x04a\ta\x04b\t" + - "b\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04i\ti\x04j\tj\x04" + - "k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04r\tr\x04s\ts\x04" + - "t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\tz\x04{\t{\x04|\t|\x04" + - "}\t}\x04~\t~\x04\x7F\t\x7F\x04\x80\t\x80\x04\x81\t\x81\x04\x82\t\x82\x04" + - "\x83\t\x83\x04\x84\t\x84\x04\x85\t\x85\x04\x86\t\x86\x04\x87\t\x87\x04" + - "\x88\t\x88\x04\x89\t\x89\x04\x8A\t\x8A\x04\x8B\t\x8B\x04\x8C\t\x8C\x04" + - "\x8D\t\x8D\x04\x8E\t\x8E\x04\x8F\t\x8F\x04\x90\t\x90\x04\x91\t\x91\x04" + - "\x92\t\x92\x04\x93\t\x93\x04\x94\t\x94\x04\x95\t\x95\x04\x96\t\x96\x04" + - "\x97\t\x97\x04\x98\t\x98\x04\x99\t\x99\x04\x9A\t\x9A\x04\x9B\t\x9B\x04" + - "\x9C\t\x9C\x04\x9D\t\x9D\x04\x9E\t\x9E\x04\x9F\t\x9F\x04\xA0\t\xA0\x04" + - "\xA1\t\xA1\x04\xA2\t\xA2\x04\xA3\t\xA3\x04\xA4\t\xA4\x04\xA5\t\xA5\x04" + - "\xA6\t\xA6\x04\xA7\t\xA7\x04\xA8\t\xA8\x04\xA9\t\xA9\x04\xAA\t\xAA\x03" + - "\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03" + - "\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03" + - "\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x05\x03" + - "\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03" + - "\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03" + - "\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\b\x03\b\x03\b\x03\b\x03\b\x03" + - "\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03" + - "\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\v\x03" + - "\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03" + - "\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\r\x03\r\x03" + - "\r\x03\r\x03\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03" + - "\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03" + - "\x0F\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x11\x03" + - "\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03" + - "\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13\x03\x13\x03" + - "\x13\x03\x13\x03\x13\x03\x13\x03\x14\x06\x14\u01F9\n\x14\r\x14\x0E\x14" + - "\u01FA\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x15\x07\x15\u0203\n" + - "\x15\f\x15\x0E\x15\u0206\v\x15\x03\x15\x05\x15\u0209\n\x15\x03\x15\x05" + - "\x15\u020C\n\x15\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16" + - "\x07\x16\u0215\n\x16\f\x16\x0E\x16\u0218\v\x16\x03\x16\x03\x16\x03\x16" + - "\x03\x16\x03\x16\x03\x17\x06\x17\u0220\n\x17\r\x17\x0E\x17\u0221\x03\x17" + - "\x03\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x19\x03\x19\x03\x19" + - "\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B" + - "\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1D" + - "\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03 \x03 \x03 \x03!\x03!\x03\"\x03\"" + - "\x05\"\u024B\n\"\x03\"\x06\"\u024E\n\"\r\"\x0E\"\u024F\x03#\x03#\x03$" + - "\x03$\x03%\x03%\x03%\x05%\u0259\n%\x03&\x03&\x03\'\x03\'\x03\'\x05\'\u0260" + - "\n\'\x03(\x03(\x03(\x07(\u0265\n(\f(\x0E(\u0268\v(\x03(\x03(\x03(\x03" + - "(\x03(\x03(\x07(\u0270\n(\f(\x0E(\u0273\v(\x03(\x03(\x03(\x03(\x03(\x05" + - "(\u027A\n(\x03(\x05(\u027D\n(\x05(\u027F\n(\x03)\x06)\u0282\n)\r)\x0E" + - ")\u0283\x03*\x06*\u0287\n*\r*\x0E*\u0288\x03*\x03*\x07*\u028D\n*\f*\x0E" + - "*\u0290\v*\x03*\x03*\x06*\u0294\n*\r*\x0E*\u0295\x03*\x06*\u0299\n*\r" + - "*\x0E*\u029A\x03*\x03*\x07*\u029F\n*\f*\x0E*\u02A2\v*\x05*\u02A4\n*\x03" + - "*\x03*\x03*\x03*\x06*\u02AA\n*\r*\x0E*\u02AB\x03*\x03*\x05*\u02B0\n*\x03" + - "+\x03+\x03+\x03,\x03,\x03,\x03,\x03-\x03-\x03-\x03-\x03.\x03.\x03/\x03" + - "/\x030\x030\x030\x030\x030\x031\x031\x032\x032\x032\x032\x032\x032\x03" + - "3\x033\x033\x033\x033\x033\x034\x034\x034\x034\x034\x035\x035\x036\x03" + - "6\x036\x037\x037\x037\x038\x038\x038\x038\x038\x039\x039\x039\x039\x03" + - ":\x03:\x03:\x03:\x03:\x03;\x03;\x03;\x03;\x03;\x03;\x03<\x03<\x03<\x03" + - "=\x03=\x03>\x03>\x03>\x03>\x03>\x03>\x03?\x03?\x03@\x03@\x03@\x03@\x03" + - "@\x03A\x03A\x03A\x03B\x03B\x03B\x03C\x03C\x03D\x03D\x03D\x03E\x03E\x03" + - "F\x03F\x03F\x03G\x03G\x03H\x03H\x03I\x03I\x03J\x03J\x03K\x03K\x03L\x03" + - "L\x03L\x03L\x03L\x03M\x03M\x03M\x03M\x03M\x03N\x03N\x07N\u032D\nN\fN\x0E" + - "N\u0330\vN\x03N\x03N\x05N\u0334\nN\x03N\x06N\u0337\nN\rN\x0EN\u0338\x05" + - "N\u033B\nN\x03O\x03O\x06O\u033F\nO\rO\x0EO\u0340\x03O\x03O\x03P\x03P\x03" + - "P\x03P\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03S\x03S\x03S\x03S\x03" + - "S\x03T\x03T\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03U\x03U\x03V\x03" + - "V\x03V\x03V\x03W\x03W\x03W\x03W\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03" + - "X\x03X\x03Y\x03Y\x03Y\x05Y\u0376\nY\x03Z\x06Z\u0379\nZ\rZ\x0EZ\u037A\x03" + - "[\x03[\x03[\x03[\x03\\\x03\\\x03\\\x03\\\x03]\x03]\x03]\x03]\x03^\x03" + - "^\x03^\x03^\x03_\x03_\x03_\x03_\x03_\x03`\x03`\x03`\x03`\x03a\x03a\x03" + - "a\x03a\x03b\x03b\x03b\x03b\x05b\u039E\nb\x03c\x03c\x05c\u03A2\nc\x03c" + - "\x07c\u03A5\nc\fc\x0Ec\u03A8\vc\x03c\x03c\x05c\u03AC\nc\x03c\x06c\u03AF" + - "\nc\rc\x0Ec\u03B0\x05c\u03B3\nc\x03d\x03d\x03d\x03d\x03e\x03e\x03e\x03" + - "e\x03f\x03f\x03f\x03f\x03g\x03g\x03g\x03g\x03h\x03h\x03h\x03h\x03h\x03" + - "i\x03i\x03i\x03i\x03j\x03j\x03j\x03j\x03k\x03k\x03k\x03k\x03l\x03l\x03" + - "l\x03m\x03m\x03m\x03m\x03n\x03n\x03n\x03n\x03o\x03o\x03o\x03o\x03p\x03" + - "p\x03p\x03p\x03q\x03q\x03q\x03q\x03r\x03r\x03r\x03r\x03r\x03s\x03s\x03" + - "s\x03s\x03s\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03u\x03u\x03u\x03u\x03" + - "v\x03v\x03v\x03v\x03w\x03w\x03w\x03w\x03x\x03x\x03x\x03x\x03y\x03y\x03" + - "y\x03y\x03z\x03z\x03z\x03z\x03z\x03z\x03{\x03{\x03{\x03{\x03|\x03|\x03" + - "|\x03|\x03}\x03}\x03}\x03}\x03~\x03~\x03~\x03~\x03\x7F\x03\x7F\x03\x7F" + - "\x03\x7F\x03\x80\x03\x80\x03\x80\x03\x80\x03\x81\x03\x81\x03\x81\x03\x81" + - "\x03\x82\x03\x82\x03\x82\x03\x82\x03\x83\x03\x83\x03\x83\x03\x83\x03\x84" + - "\x03\x84\x03\x84\x03\x84\x03\x84\x03\x85\x03\x85\x03\x85\x03\x85\x03\x86" + - "\x03\x86\x03\x86\x03\x86\x03\x87\x03\x87\x03\x87\x03\x87\x03\x88\x03\x88" + - "\x03\x88\x03\x88\x03\x89\x03\x89\x03\x89\x03\x89\x03\x8A\x03\x8A\x03\x8A" + - "\x03\x8A\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8C\x03\x8C\x03\x8C" + - "\x03\x8C\x03\x8C\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D" + - "\x03\x8D\x03\x8D\x03\x8D\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8F\x03\x8F" + - "\x03\x8F\x03\x8F\x03\x90\x03\x90\x03\x90\x03\x90\x03\x91\x03\x91\x03\x92" + - "\x03\x92\x03\x93\x03\x93\x03\x94\x03\x94\x03\x95\x03\x95\x03\x96\x03\x96" + - "\x03\x97\x03\x97\x03\x98\x03\x98\x03\x99\x03\x99\x03\x9A\x03\x9A\x03\x9B" + - "\x03\x9B\x03\x9C\x03\x9C\x03\x9D\x03\x9D\x03\x9E\x03\x9E\x03\x9F\x03\x9F" + - "\x03\xA0\x03\xA0\x03\xA1\x03\xA1\x03\xA2\x03\xA2\x03\xA3\x03\xA3\x03\xA4" + - "\x03\xA4\x03\xA5\x03\xA5\x03\xA6\x03\xA6\x03\xA7\x03\xA7\x03\xA8\x03\xA8" + - "\x03\xA9\x03\xA9\x03\xAA\x03\xAA\x04\u0216\u0271\x02\x02\xAB\f\x02\x03" + - "\x0E\x02\x04\x10\x02\x05\x12\x02\x06\x14\x02\x07\x16\x02\b\x18\x02\t\x1A" + - "\x02\n\x1C\x02\v\x1E\x02\f \x02\r\"\x02\x0E$\x02\x0F&\x02\x10(\x02\x11" + - "*\x02\x12,\x02\x13.\x02\x140\x02\x152\x02\x164\x02\x176\x02\x188\x02\x02" + - ":\x02\x02<\x02\x19>\x02\x1A@\x02\x1BB\x02\x1CD\x02\x02F\x02\x02H\x02\x02" + - "J\x02\x02L\x02\x02N\x02\x02P\x02\x02R\x02\x02T\x02\x02V\x02\x02X\x02\x1D" + - "Z\x02\x1E\\\x02\x1F^\x02 `\x02!b\x02\"d\x02#f\x02$h\x02%j\x02&l\x02\'" + - "n\x02(p\x02)r\x02*t\x02+v\x02,x\x02-z\x02.|\x02/~\x020\x80\x021\x82\x02" + - "2\x84\x023\x86\x024\x88\x025\x8A\x026\x8C\x027\x8E\x028\x90\x029\x92\x02" + - ":\x94\x02;\x96\x02<\x98\x02=\x9A\x02>\x9C\x02?\x9E\x02@\xA0\x02A\xA2\x02" + - "B\xA4\x02C\xA6\x02D\xA8\x02E\xAA\x02F\xAC\x02G\xAE\x02\x02\xB0\x02\x02" + - "\xB2\x02\x02\xB4\x02\x02\xB6\x02\x02\xB8\x02H\xBA\x02\x02\xBC\x02I\xBE" + - "\x02\x02\xC0\x02J\xC2\x02K\xC4\x02L\xC6\x02\x02\xC8\x02\x02\xCA\x02\x02" + - "\xCC\x02\x02\xCE\x02M\xD0\x02\x02\xD2\x02N\xD4\x02O\xD6\x02P\xD8\x02\x02" + - "\xDA\x02\x02\xDC\x02\x02\xDE\x02\x02\xE0\x02Q\xE2\x02\x02\xE4\x02\x02" + - "\xE6\x02R\xE8\x02S\xEA\x02T\xEC\x02\x02\xEE\x02U\xF0\x02V\xF2\x02\x02" + - "\xF4\x02\x02\xF6\x02W\xF8\x02X\xFA\x02Y\xFC\x02\x02\xFE\x02\x02\u0100" + - "\x02\x02\u0102\x02\x02\u0104\x02\x02\u0106\x02\x02\u0108\x02\x02\u010A" + - "\x02Z\u010C\x02[\u010E\x02\\\u0110\x02\x02\u0112\x02\x02\u0114\x02\x02" + - "\u0116\x02\x02\u0118\x02]\u011A\x02^\u011C\x02_\u011E\x02\x02\u0120\x02" + - "`\u0122\x02a\u0124\x02b\u0126\x02c\u0128\x02d\u012A\x02\x02\u012C\x02" + - "\x02\u012E\x02\x02\u0130\x02\x02\u0132\x02\x02\u0134\x02\x02\u0136\x02" + - "\x02\u0138\x02\x02\u013A\x02\x02\u013C\x02\x02\u013E\x02\x02\u0140\x02" + - "\x02\u0142\x02\x02\u0144\x02\x02\u0146\x02\x02\u0148\x02\x02\u014A\x02" + - "\x02\u014C\x02\x02\u014E\x02\x02\u0150\x02\x02\u0152\x02\x02\u0154\x02" + - "\x02\u0156\x02\x02\u0158\x02\x02\u015A\x02\x02\u015C\x02\x02\f\x02\x03" + - "\x04\x05\x06\x07\b\t\n\v\'\b\x02\v\f\x0F\x0F\"\"11]]__\x04\x02\f\f\x0F" + - "\x0F\x05\x02\v\f\x0F\x0F\"\"\x03\x022;\x04\x02C\\c|\x07\x02$$^^ppttvv" + - "\x06\x02\f\f\x0F\x0F$$^^\x04\x02GGgg\x04\x02--//\x03\x02bb\f\x02\v\f\x0F" + - "\x0F\"\"..11??]]__bb~~\x04\x02,,11\x04\x02CCcc\x04\x02DDdd\x04\x02EEe" + - "e\x04\x02FFff\x04\x02HHhh\x04\x02IIii\x04\x02JJjj\x04\x02KKkk\x04\x02" + - "LLll\x04\x02MMmm\x04\x02NNnn\x04\x02OOoo\x04\x02PPpp\x04\x02QQqq\x04\x02" + - "RRrr\x04\x02SSss\x04\x02TTtt\x04\x02UUuu\x04\x02VVvv\x04\x02WWww\x04\x02" + - "XXxx\x04\x02YYyy\x04\x02ZZzz\x04\x02[[{{\x04\x02\\\\||\x02\u04A8\x02\f" + - "\x03\x02\x02\x02\x02\x0E\x03\x02\x02\x02\x02\x10\x03\x02\x02\x02\x02\x12" + - "\x03\x02\x02\x02\x02\x14\x03\x02\x02\x02\x02\x16\x03\x02\x02\x02\x02\x18" + - "\x03\x02\x02\x02\x02\x1A\x03\x02\x02\x02\x02\x1C\x03\x02\x02\x02\x02\x1E" + - "\x03\x02\x02\x02\x02 \x03\x02\x02\x02\x02\"\x03\x02\x02\x02\x02$\x03\x02" + - "\x02\x02\x02&\x03\x02\x02\x02\x02(\x03\x02\x02\x02\x02*\x03\x02\x02\x02" + - "\x02,\x03\x02\x02\x02\x02.\x03\x02\x02\x02\x020\x03\x02\x02\x02\x022\x03" + - "\x02\x02\x02\x024\x03\x02\x02\x02\x026\x03\x02\x02\x02\x038\x03\x02\x02" + - "\x02\x03:\x03\x02\x02\x02\x03<\x03\x02\x02\x02\x03>\x03\x02\x02\x02\x03" + - "@\x03\x02\x02\x02\x04B\x03\x02\x02\x02\x04X\x03\x02\x02\x02\x04Z\x03\x02" + - "\x02\x02\x04\\\x03\x02\x02\x02\x04^\x03\x02\x02\x02\x04`\x03\x02\x02\x02" + - "\x04b\x03\x02\x02\x02\x04d\x03\x02\x02\x02\x04f\x03\x02\x02\x02\x04h\x03" + - "\x02\x02\x02\x04j\x03\x02\x02\x02\x04l\x03\x02\x02\x02\x04n\x03\x02\x02" + - "\x02\x04p\x03\x02\x02\x02\x04r\x03\x02\x02\x02\x04t\x03\x02\x02\x02\x04" + - "v\x03\x02\x02\x02\x04x\x03\x02\x02\x02\x04z\x03\x02\x02\x02\x04|\x03\x02" + - "\x02\x02\x04~\x03\x02\x02\x02\x04\x80\x03\x02\x02\x02\x04\x82\x03\x02" + - "\x02\x02\x04\x84\x03\x02\x02\x02\x04\x86\x03\x02\x02\x02\x04\x88\x03\x02" + - "\x02\x02\x04\x8A\x03\x02\x02\x02\x04\x8C\x03\x02\x02\x02\x04\x8E\x03\x02" + - "\x02\x02\x04\x90\x03\x02\x02\x02\x04\x92\x03\x02\x02\x02\x04\x94\x03\x02" + - "\x02\x02\x04\x96\x03\x02\x02\x02\x04\x98\x03\x02\x02\x02\x04\x9A\x03\x02" + - "\x02\x02\x04\x9C\x03\x02\x02\x02\x04\x9E\x03\x02\x02\x02\x04\xA0\x03\x02" + - "\x02\x02\x04\xA2\x03\x02\x02\x02\x04\xA4\x03\x02\x02\x02\x04\xA6\x03\x02" + - "\x02\x02\x04\xA8\x03\x02\x02\x02\x04\xAA\x03\x02\x02\x02\x04\xAC\x03\x02" + - "\x02\x02\x05\xAE\x03\x02\x02\x02\x05\xB0\x03\x02\x02\x02\x05\xB2\x03\x02" + - "\x02\x02\x05\xB4\x03\x02\x02\x02\x05\xB6\x03\x02\x02\x02\x05\xB8\x03\x02" + - "\x02\x02\x05\xBC\x03\x02\x02\x02\x05\xBE\x03\x02\x02\x02\x05\xC0\x03\x02" + - "\x02\x02\x05\xC2\x03\x02\x02\x02\x05\xC4\x03\x02\x02\x02\x06\xC6\x03\x02" + - "\x02\x02\x06\xC8\x03\x02\x02\x02\x06\xCA\x03\x02\x02\x02\x06\xCE\x03\x02" + - "\x02\x02\x06\xD0\x03\x02\x02\x02\x06\xD2\x03\x02\x02\x02\x06\xD4\x03\x02" + - "\x02\x02\x06\xD6\x03\x02\x02\x02\x07\xD8\x03\x02\x02\x02\x07\xDA\x03\x02" + - "\x02\x02\x07\xDC\x03\x02\x02\x02\x07\xDE\x03\x02\x02\x02\x07\xE0\x03\x02" + - "\x02\x02\x07\xE2\x03\x02\x02\x02\x07\xE4\x03\x02\x02\x02\x07\xE6\x03\x02" + - "\x02\x02\x07\xE8\x03\x02\x02\x02\x07\xEA\x03\x02\x02\x02\b\xEC\x03\x02" + - "\x02\x02\b\xEE\x03\x02\x02\x02\b\xF0\x03\x02\x02\x02\b\xF2\x03\x02\x02" + - "\x02\b\xF4\x03\x02\x02\x02\b\xF6\x03\x02\x02\x02\b\xF8\x03\x02\x02\x02" + - "\b\xFA\x03\x02\x02\x02\t\xFC\x03\x02\x02\x02\t\xFE\x03\x02\x02\x02\t\u0100" + - "\x03\x02\x02\x02\t\u0102\x03\x02\x02\x02\t\u0104\x03\x02\x02\x02\t\u0106" + - "\x03\x02\x02\x02\t\u0108\x03\x02\x02\x02\t\u010A\x03\x02\x02\x02\t\u010C" + - "\x03\x02\x02\x02\t\u010E\x03\x02\x02\x02\n\u0110\x03\x02\x02\x02\n\u0112" + - "\x03\x02\x02\x02\n\u0114\x03\x02\x02\x02\n\u0116\x03\x02\x02\x02\n\u0118" + - "\x03\x02\x02\x02\n\u011A\x03\x02\x02\x02\n\u011C\x03\x02\x02\x02\v\u011E" + - "\x03\x02\x02\x02\v\u0120\x03\x02\x02\x02\v\u0122\x03\x02\x02\x02\v\u0124" + - "\x03\x02\x02\x02\v\u0126\x03\x02\x02\x02\v\u0128\x03\x02\x02\x02\f\u015E" + - "\x03\x02\x02\x02\x0E\u0168\x03\x02\x02\x02\x10\u016F\x03\x02\x02\x02\x12" + - "\u0178\x03\x02\x02\x02\x14\u017F\x03\x02\x02\x02\x16\u0189\x03\x02\x02" + - "\x02\x18\u0190\x03\x02\x02\x02\x1A\u0197\x03\x02\x02\x02\x1C\u01A5\x03" + - "\x02\x02\x02\x1E\u01AC\x03\x02\x02\x02 \u01B4\x03\x02\x02\x02\"\u01C0" + - "\x03\x02\x02\x02$\u01CA\x03\x02\x02\x02&\u01D3\x03\x02\x02\x02(\u01D9" + - "\x03\x02\x02\x02*\u01E0\x03\x02\x02\x02,\u01E7\x03\x02\x02\x02.\u01EF" + - "\x03\x02\x02\x020\u01F8\x03\x02\x02\x022\u01FE\x03\x02\x02\x024\u020F" + - "\x03\x02\x02\x026\u021F\x03\x02\x02\x028\u0225\x03\x02\x02\x02:\u022A" + - "\x03\x02\x02\x02<\u022F\x03\x02\x02\x02>\u0233\x03\x02\x02\x02@\u0237" + - "\x03\x02\x02\x02B\u023B\x03\x02\x02\x02D\u023F\x03\x02\x02\x02F\u0241" + - "\x03\x02\x02\x02H\u0243\x03\x02\x02\x02J\u0246\x03\x02\x02\x02L\u0248" + - "\x03\x02\x02\x02N\u0251\x03\x02\x02\x02P\u0253\x03\x02\x02\x02R\u0258" + - "\x03\x02\x02\x02T\u025A\x03\x02\x02\x02V\u025F\x03\x02\x02\x02X\u027E" + - "\x03\x02\x02\x02Z\u0281\x03\x02\x02\x02\\\u02AF\x03\x02\x02\x02^\u02B1" + - "\x03\x02\x02\x02`\u02B4\x03\x02\x02\x02b\u02B8\x03\x02\x02\x02d\u02BC" + - "\x03\x02\x02\x02f\u02BE\x03\x02\x02\x02h\u02C0\x03\x02\x02\x02j\u02C5" + - "\x03\x02\x02\x02l\u02C7\x03\x02\x02\x02n\u02CD\x03\x02\x02\x02p\u02D3" + - "\x03\x02\x02\x02r\u02D8\x03\x02\x02\x02t\u02DA\x03\x02\x02\x02v\u02DD" + - "\x03\x02\x02\x02x\u02E0\x03\x02\x02\x02z\u02E5\x03\x02\x02\x02|\u02E9" + - "\x03\x02\x02\x02~\u02EE\x03\x02\x02\x02\x80\u02F4\x03\x02\x02\x02\x82" + - "\u02F7\x03\x02\x02\x02\x84\u02F9\x03\x02\x02\x02\x86\u02FF\x03\x02\x02" + - "\x02\x88\u0301\x03\x02\x02\x02\x8A\u0306\x03\x02\x02\x02\x8C\u0309\x03" + - "\x02\x02\x02\x8E\u030C\x03\x02\x02\x02\x90\u030E\x03\x02\x02\x02\x92\u0311" + - "\x03\x02\x02\x02\x94\u0313\x03\x02\x02\x02\x96\u0316\x03\x02\x02\x02\x98" + - "\u0318\x03\x02\x02\x02\x9A\u031A\x03\x02\x02\x02\x9C\u031C\x03\x02\x02" + - "\x02\x9E\u031E\x03\x02\x02\x02\xA0\u0320\x03\x02\x02\x02\xA2\u0325\x03" + - "\x02\x02\x02\xA4\u033A\x03\x02\x02\x02\xA6\u033C\x03\x02\x02\x02\xA8\u0344" + - "\x03\x02\x02\x02\xAA\u0348\x03\x02\x02\x02\xAC\u034C\x03\x02\x02\x02\xAE" + - "\u0350\x03\x02\x02\x02\xB0\u0355\x03\x02\x02\x02\xB2\u035B\x03\x02\x02" + - "\x02\xB4\u0361\x03\x02\x02\x02\xB6\u0365\x03\x02\x02\x02\xB8\u0369\x03" + - "\x02\x02\x02\xBA\u0375\x03\x02\x02\x02\xBC\u0378\x03\x02\x02\x02\xBE\u037C" + - "\x03\x02\x02\x02\xC0\u0380\x03\x02\x02\x02\xC2\u0384\x03\x02\x02\x02\xC4" + - "\u0388\x03\x02\x02\x02\xC6\u038C\x03\x02\x02\x02\xC8\u0391\x03\x02\x02" + - "\x02\xCA\u0395\x03\x02\x02\x02\xCC\u039D\x03\x02\x02\x02\xCE\u03B2\x03" + - "\x02\x02\x02\xD0\u03B4\x03\x02\x02\x02\xD2\u03B8\x03\x02\x02\x02\xD4\u03BC" + - "\x03\x02\x02\x02\xD6\u03C0\x03\x02\x02\x02\xD8\u03C4\x03\x02\x02\x02\xDA" + - "\u03C9\x03\x02\x02\x02\xDC\u03CD\x03\x02\x02\x02\xDE\u03D1\x03\x02\x02" + - "\x02\xE0\u03D5\x03\x02\x02\x02\xE2\u03D8\x03\x02\x02\x02\xE4\u03DC\x03" + - "\x02\x02\x02\xE6\u03E0\x03\x02\x02\x02\xE8\u03E4\x03\x02\x02\x02\xEA\u03E8" + - "\x03\x02\x02\x02\xEC\u03EC\x03\x02\x02\x02\xEE\u03F1\x03\x02\x02\x02\xF0" + - "\u03F6\x03\x02\x02\x02\xF2\u03FD\x03\x02\x02\x02\xF4\u0401\x03\x02\x02" + - "\x02\xF6\u0405\x03\x02\x02\x02\xF8\u0409\x03\x02\x02\x02\xFA\u040D\x03" + - "\x02\x02\x02\xFC\u0411\x03\x02\x02\x02\xFE\u0417\x03\x02\x02\x02\u0100" + - "\u041B\x03\x02\x02\x02\u0102\u041F\x03\x02\x02\x02\u0104\u0423\x03\x02" + - "\x02\x02\u0106\u0427\x03\x02\x02\x02\u0108\u042B\x03\x02\x02\x02\u010A" + - "\u042F\x03\x02\x02\x02\u010C\u0433\x03\x02\x02\x02\u010E\u0437\x03\x02" + - "\x02\x02\u0110\u043B\x03\x02\x02\x02\u0112\u0440\x03\x02\x02\x02\u0114" + - "\u0444\x03\x02\x02\x02\u0116\u0448\x03\x02\x02\x02\u0118\u044C\x03\x02" + - "\x02\x02\u011A\u0450\x03\x02\x02\x02\u011C\u0454\x03\x02\x02\x02\u011E" + - "\u0458\x03\x02\x02\x02\u0120\u045D\x03\x02\x02\x02\u0122\u0462\x03\x02" + - "\x02\x02\u0124\u046C\x03\x02\x02\x02\u0126\u0470\x03\x02\x02\x02\u0128" + - "\u0474\x03\x02\x02\x02\u012A\u0478\x03\x02\x02\x02\u012C\u047A\x03\x02" + - "\x02\x02\u012E\u047C\x03\x02\x02\x02\u0130\u047E\x03\x02\x02\x02\u0132" + - "\u0480\x03\x02\x02\x02\u0134\u0482\x03\x02\x02\x02\u0136\u0484\x03\x02" + - "\x02\x02\u0138\u0486\x03\x02\x02\x02\u013A\u0488\x03\x02\x02\x02\u013C" + - "\u048A\x03\x02\x02\x02\u013E\u048C\x03\x02\x02\x02\u0140\u048E\x03\x02" + - "\x02\x02\u0142\u0490\x03\x02\x02\x02\u0144\u0492\x03\x02\x02\x02\u0146" + - "\u0494\x03\x02\x02\x02\u0148\u0496\x03\x02\x02\x02\u014A\u0498\x03\x02" + - "\x02\x02\u014C\u049A\x03\x02\x02\x02\u014E\u049C\x03\x02\x02\x02\u0150" + - "\u049E\x03\x02"; + "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02j\u04EE\b\x01" + + "\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\x04\x02\t" + + "\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07\t" + + "\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04\x0E" + + "\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04\x13" + + "\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17\x04\x18" + + "\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04\x1D" + + "\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#\t#\x04" + + "$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04+\t+\x04,\t" + + ",\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x044\t4\x04" + + "5\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04=\t=\x04" + + ">\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04F\tF\x04" + + "G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04O\tO\x04" + + "P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04X\tX\x04" + + "Y\tY\x04Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t`\x04a\t" + + "a\x04b\tb\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04i\ti\x04" + + "j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04r\tr\x04" + + "s\ts\x04t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\tz\x04{\t{\x04" + + "|\t|\x04}\t}\x04~\t~\x04\x7F\t\x7F\x04\x80\t\x80\x04\x81\t\x81\x04\x82" + + "\t\x82\x04\x83\t\x83\x04\x84\t\x84\x04\x85\t\x85\x04\x86\t\x86\x04\x87" + + "\t\x87\x04\x88\t\x88\x04\x89\t\x89\x04\x8A\t\x8A\x04\x8B\t\x8B\x04\x8C" + + "\t\x8C\x04\x8D\t\x8D\x04\x8E\t\x8E\x04\x8F\t\x8F\x04\x90\t\x90\x04\x91" + + "\t\x91\x04\x92\t\x92\x04\x93\t\x93\x04\x94\t\x94\x04\x95\t\x95\x04\x96" + + "\t\x96\x04\x97\t\x97\x04\x98\t\x98\x04\x99\t\x99\x04\x9A\t\x9A\x04\x9B" + + "\t\x9B\x04\x9C\t\x9C\x04\x9D\t\x9D\x04\x9E\t\x9E\x04\x9F\t\x9F\x04\xA0" + + "\t\xA0\x04\xA1\t\xA1\x04\xA2\t\xA2\x04\xA3\t\xA3\x04\xA4\t\xA4\x04\xA5" + + "\t\xA5\x04\xA6\t\xA6\x04\xA7\t\xA7\x04\xA8\t\xA8\x04\xA9\t\xA9\x04\xAA" + + "\t\xAA\x04\xAB\t\xAB\x04\xAC\t\xAC\x04\xAD\t\xAD\x04\xAE\t\xAE\x04\xAF" + + "\t\xAF\x04\xB0\t\xB0\x04\xB1\t\xB1\x04\xB2\t\xB2\x04\xB3\t\xB3\x04\xB4" + + "\t\xB4\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02" + + "\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" + + "\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04" + + "\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06" + + "\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07" + + "\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\b\x03\b\x03\b\x03" + + "\b\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03" + + "\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03" + + "\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\f\x03\f\x03\f\x03" + + "\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03" + + "\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0E" + + "\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F" + + "\x03\x0F\x03\x0F\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10" + + "\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12" + + "\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13" + + "\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x14\x06\x14\u020E\n\x14\r" + + "\x14\x0E\x14\u020F\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x15\x07" + + "\x15\u0218\n\x15\f\x15\x0E\x15\u021B\v\x15\x03\x15\x05\x15\u021E\n\x15" + + "\x03\x15\x05\x15\u0221\n\x15\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03" + + "\x16\x03\x16\x07\x16\u022A\n\x16\f\x16\x0E\x16\u022D\v\x16\x03\x16\x03" + + "\x16\x03\x16\x03\x16\x03\x16\x03\x17\x06\x17\u0235\n\x17\r\x17\x0E\x17" + + "\u0236\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x19" + + "\x03\x19\x03\x19\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B" + + "\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D" + + "\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03 \x03 \x03 \x03!\x03" + + "!\x03\"\x03\"\x05\"\u0260\n\"\x03\"\x06\"\u0263\n\"\r\"\x0E\"\u0264\x03" + + "#\x03#\x03$\x03$\x03%\x03%\x03%\x05%\u026E\n%\x03&\x03&\x03\'\x03\'\x03" + + "\'\x05\'\u0275\n\'\x03(\x03(\x03(\x07(\u027A\n(\f(\x0E(\u027D\v(\x03(" + + "\x03(\x03(\x03(\x03(\x03(\x07(\u0285\n(\f(\x0E(\u0288\v(\x03(\x03(\x03" + + "(\x03(\x03(\x05(\u028F\n(\x03(\x05(\u0292\n(\x05(\u0294\n(\x03)\x06)\u0297" + + "\n)\r)\x0E)\u0298\x03*\x06*\u029C\n*\r*\x0E*\u029D\x03*\x03*\x07*\u02A2" + + "\n*\f*\x0E*\u02A5\v*\x03*\x03*\x06*\u02A9\n*\r*\x0E*\u02AA\x03*\x06*\u02AE" + + "\n*\r*\x0E*\u02AF\x03*\x03*\x07*\u02B4\n*\f*\x0E*\u02B7\v*\x05*\u02B9" + + "\n*\x03*\x03*\x03*\x03*\x06*\u02BF\n*\r*\x0E*\u02C0\x03*\x03*\x05*\u02C5" + + "\n*\x03+\x03+\x03+\x03,\x03,\x03,\x03,\x03-\x03-\x03-\x03-\x03.\x03.\x03" + + "/\x03/\x030\x030\x030\x030\x030\x031\x031\x032\x032\x032\x032\x032\x03" + + "2\x033\x033\x033\x033\x033\x033\x034\x034\x034\x034\x034\x035\x035\x03" + + "6\x036\x036\x037\x037\x037\x038\x038\x038\x038\x038\x039\x039\x039\x03" + + "9\x03:\x03:\x03:\x03:\x03:\x03;\x03;\x03;\x03;\x03;\x03;\x03<\x03<\x03" + + "<\x03=\x03=\x03>\x03>\x03>\x03>\x03>\x03>\x03?\x03?\x03@\x03@\x03@\x03" + + "@\x03@\x03A\x03A\x03A\x03B\x03B\x03B\x03C\x03C\x03D\x03D\x03D\x03E\x03" + + "E\x03F\x03F\x03F\x03G\x03G\x03H\x03H\x03I\x03I\x03J\x03J\x03K\x03K\x03" + + "L\x03L\x03L\x03L\x03L\x03M\x03M\x03M\x03M\x03M\x03N\x03N\x07N\u0342\n" + + "N\fN\x0EN\u0345\vN\x03N\x03N\x05N\u0349\nN\x03N\x06N\u034C\nN\rN\x0EN" + + "\u034D\x05N\u0350\nN\x03O\x03O\x06O\u0354\nO\rO\x0EO\u0355\x03O\x03O\x03" + + "P\x03P\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03S\x03S\x03" + + "S\x03S\x03S\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03V\x03V\x03V\x03" + + "V\x03W\x03W\x03W\x03W\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03" + + "Y\x03Y\x03Y\x05Y\u0387\nY\x03Z\x06Z\u038A\nZ\rZ\x0EZ\u038B\x03[\x03[\x03" + + "[\x03[\x03\\\x03\\\x03\\\x03\\\x03]\x03]\x03]\x03]\x03^\x03^\x03^\x03" + + "^\x03_\x03_\x03_\x03_\x03_\x03`\x03`\x03`\x03`\x03a\x03a\x03a\x03a\x03" + + "b\x03b\x03b\x03b\x05b\u03AF\nb\x03c\x03c\x05c\u03B3\nc\x03c\x07c\u03B6" + + "\nc\fc\x0Ec\u03B9\vc\x03c\x03c\x05c\u03BD\nc\x03c\x06c\u03C0\nc\rc\x0E" + + "c\u03C1\x05c\u03C4\nc\x03d\x03d\x03d\x03d\x03e\x03e\x03e\x03e\x03f\x03" + + "f\x03f\x03f\x03g\x03g\x03g\x03g\x03h\x03h\x03h\x03h\x03i\x03i\x03i\x03" + + "i\x03i\x03j\x03j\x03j\x03j\x03k\x03k\x03k\x03k\x03l\x03l\x03l\x03l\x03" + + "m\x03m\x03m\x03n\x03n\x03n\x03n\x03o\x03o\x03o\x03o\x03p\x03p\x03p\x03" + + "p\x03q\x03q\x03q\x03q\x03r\x03r\x03r\x03r\x03s\x03s\x03s\x03s\x03s\x03" + + "t\x03t\x03t\x03t\x03t\x03u\x03u\x03u\x03u\x03u\x03v\x03v\x03v\x03v\x03" + + "v\x03v\x03v\x03w\x03w\x03x\x03x\x05x\u041C\nx\x03x\x07x\u041F\nx\fx\x0E" + + "x\u0422\vx\x03y\x03y\x03y\x03y\x03z\x03z\x03z\x03z\x03{\x03{\x03{\x03" + + "{\x03|\x03|\x03|\x03|\x03}\x03}\x03}\x03}\x03~\x03~\x03~\x03~\x03~\x03" + + "~\x03\x7F\x03\x7F\x03\x7F\x03\x7F\x03\x80\x03\x80\x03\x80\x03\x80\x03" + + "\x81\x03\x81\x03\x81\x03\x81\x03\x82\x03\x82\x03\x82\x03\x82\x03\x83\x03" + + "\x83\x03\x83\x03\x83\x03\x84\x03\x84\x03\x84\x03\x84\x03\x85\x03\x85\x03" + + "\x85\x03\x85\x03\x86\x03\x86\x03\x86\x03\x86\x03\x87\x03\x87\x03\x87\x03" + + "\x87\x03\x88\x03\x88\x03\x88\x03\x88\x03\x88\x03\x89\x03\x89\x03\x89\x03" + + "\x89\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03" + + "\x8C\x03\x8C\x03\x8C\x03\x8C\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8E\x03" + + "\x8E\x03\x8E\x03\x8E\x03\x8F\x03\x8F\x03\x8F\x03\x8F\x03\x8F\x03\x90\x03" + + "\x90\x03\x90\x03\x90\x03\x90\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03" + + "\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x92\x03\x92\x03\x92\x03\x92\x03" + + "\x93\x03\x93\x03\x93\x03\x93\x03\x94\x03\x94\x03\x94\x03\x94\x03\x95\x03" + + "\x95\x03\x95\x03\x95\x03\x95\x03\x96\x03\x96\x03\x97\x03\x97\x03\x97\x03" + + "\x97\x03\x97\x06\x97\u04AB\n\x97\r\x97\x0E\x97\u04AC\x03\x98\x03\x98\x03" + + "\x98\x03\x98\x03\x99\x03\x99\x03\x99\x03\x99\x03\x9A\x03\x9A\x03\x9A\x03" + + "\x9A\x03\x9B\x03\x9B\x03\x9C\x03\x9C\x03\x9D\x03\x9D\x03\x9E\x03\x9E\x03" + + "\x9F\x03\x9F\x03\xA0\x03\xA0\x03\xA1\x03\xA1\x03\xA2\x03\xA2\x03\xA3\x03" + + "\xA3\x03\xA4\x03\xA4\x03\xA5\x03\xA5\x03\xA6\x03\xA6\x03\xA7\x03\xA7\x03" + + "\xA8\x03\xA8\x03\xA9\x03\xA9\x03\xAA\x03\xAA\x03\xAB\x03\xAB\x03\xAC\x03" + + "\xAC\x03\xAD\x03\xAD\x03\xAE\x03\xAE\x03\xAF\x03\xAF\x03\xB0\x03\xB0\x03" + + "\xB1\x03\xB1\x03\xB2\x03\xB2\x03\xB3\x03\xB3\x03\xB4\x03\xB4\x04\u022B" + + "\u0286\x02\x02\xB5\r\x02\x03\x0F\x02\x04\x11\x02\x05\x13\x02\x06\x15\x02" + + "\x07\x17\x02\b\x19\x02\t\x1B\x02\n\x1D\x02\v\x1F\x02\f!\x02\r#\x02\x0E" + + "%\x02\x0F\'\x02\x10)\x02\x11+\x02\x12-\x02\x13/\x02\x141\x02\x153\x02" + + "\x165\x02\x177\x02\x189\x02\x02;\x02\x02=\x02\x19?\x02\x1AA\x02\x1BC\x02" + + "\x1CE\x02\x02G\x02\x02I\x02\x02K\x02\x02M\x02\x02O\x02\x02Q\x02\x02S\x02" + + "\x02U\x02\x02W\x02\x02Y\x02\x1D[\x02\x1E]\x02\x1F_\x02 a\x02!c\x02\"e" + + "\x02#g\x02$i\x02%k\x02&m\x02\'o\x02(q\x02)s\x02*u\x02+w\x02,y\x02-{\x02" + + ".}\x02/\x7F\x020\x81\x021\x83\x022\x85\x023\x87\x024\x89\x025\x8B\x02" + + "6\x8D\x027\x8F\x028\x91\x029\x93\x02:\x95\x02;\x97\x02<\x99\x02=\x9B\x02" + + ">\x9D\x02?\x9F\x02@\xA1\x02A\xA3\x02B\xA5\x02C\xA7\x02D\xA9\x02E\xAB\x02" + + "F\xAD\x02G\xAF\x02\x02\xB1\x02\x02\xB3\x02\x02\xB5\x02\x02\xB7\x02\x02" + + "\xB9\x02H\xBB\x02\x02\xBD\x02I\xBF\x02\x02\xC1\x02J\xC3\x02K\xC5\x02L" + + "\xC7\x02\x02\xC9\x02\x02\xCB\x02\x02\xCD\x02\x02\xCF\x02M\xD1\x02\x02" + + "\xD3\x02\x02\xD5\x02N\xD7\x02O\xD9\x02P\xDB\x02\x02\xDD\x02\x02\xDF\x02" + + "\x02\xE1\x02\x02\xE3\x02Q\xE5\x02\x02\xE7\x02\x02\xE9\x02R\xEB\x02S\xED" + + "\x02T\xEF\x02\x02\xF1\x02\x02\xF3\x02U\xF5\x02V\xF7\x02\x02\xF9\x02W\xFB" + + "\x02\x02\xFD\x02\x02\xFF\x02X\u0101\x02Y\u0103\x02Z\u0105\x02\x02\u0107" + + "\x02\x02\u0109\x02\x02\u010B\x02\x02\u010D\x02\x02\u010F\x02\x02\u0111" + + "\x02\x02\u0113\x02[\u0115\x02\\\u0117\x02]\u0119\x02\x02\u011B\x02\x02" + + "\u011D\x02\x02\u011F\x02\x02\u0121\x02^\u0123\x02_\u0125\x02`\u0127\x02" + + "\x02\u0129\x02a\u012B\x02b\u012D\x02c\u012F\x02d\u0131\x02e\u0133\x02" + + "\x02\u0135\x02f\u0137\x02g\u0139\x02h\u013B\x02i\u013D\x02j\u013F\x02" + + "\x02\u0141\x02\x02\u0143\x02\x02\u0145\x02\x02\u0147\x02\x02\u0149\x02" + + "\x02\u014B\x02\x02\u014D\x02\x02\u014F\x02\x02\u0151\x02\x02\u0153\x02" + + "\x02\u0155\x02\x02\u0157\x02\x02\u0159\x02\x02\u015B\x02\x02\u015D\x02" + + "\x02\u015F\x02\x02\u0161\x02\x02\u0163\x02\x02\u0165\x02\x02\u0167\x02" + + "\x02\u0169\x02\x02\u016B\x02\x02\u016D\x02\x02\u016F\x02\x02\u0171\x02" + + "\x02\r\x02\x03\x04\x05\x06\x07\b\t\n\v\f(\b\x02\v\f\x0F\x0F\"\"11]]__" + + "\x04\x02\f\f\x0F\x0F\x05\x02\v\f\x0F\x0F\"\"\x03\x022;\x04\x02C\\c|\x07" + + "\x02$$^^ppttvv\x06\x02\f\f\x0F\x0F$$^^\x04\x02GGgg\x04\x02--//\x03\x02" + + "bb\f\x02\v\f\x0F\x0F\"\"..11??]]__bb~~\x04\x02,,11\r\x02\v\f\x0F\x0F\"" + + "\"$%..11<<>>@A^^~~\x04\x02CCcc\x04\x02DDdd\x04\x02EEee\x04\x02FFff\x04" + + "\x02HHhh\x04\x02IIii\x04\x02JJjj\x04\x02KKkk\x04\x02LLll\x04\x02MMmm\x04" + + "\x02NNnn\x04\x02OOoo\x04\x02PPpp\x04\x02QQqq\x04\x02RRrr\x04\x02SSss\x04" + + "\x02TTtt\x04\x02UUuu\x04\x02VVvv\x04\x02WWww\x04\x02XXxx\x04\x02YYyy\x04" + + "\x02ZZzz\x04\x02[[{{\x04\x02\\\\||\x02\u04EF\x02\r\x03\x02\x02\x02\x02" + + "\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02" + + "\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02" + + "\x1B\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02" + + "!\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03" + + "\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-\x03\x02\x02" + + "\x02\x02/\x03\x02\x02\x02\x021\x03\x02\x02\x02\x023\x03\x02\x02\x02\x02" + + "5\x03\x02\x02\x02\x027\x03\x02\x02\x02\x039\x03\x02\x02\x02\x03;\x03\x02" + + "\x02\x02\x03=\x03\x02\x02\x02\x03?\x03\x02\x02\x02\x03A\x03\x02\x02\x02" + + "\x04C\x03\x02\x02\x02\x04Y\x03\x02\x02\x02\x04[\x03\x02\x02\x02\x04]\x03" + + "\x02\x02\x02\x04_\x03\x02\x02\x02\x04a\x03\x02\x02\x02\x04c\x03\x02\x02" + + "\x02\x04e\x03\x02\x02\x02\x04g\x03\x02\x02\x02\x04i\x03\x02\x02\x02\x04" + + "k\x03\x02\x02\x02\x04m\x03\x02\x02\x02\x04o\x03\x02\x02\x02\x04q\x03\x02" + + "\x02\x02\x04s\x03\x02\x02\x02\x04u\x03\x02\x02\x02\x04w\x03\x02\x02\x02" + + "\x04y\x03\x02\x02\x02\x04{\x03\x02\x02\x02\x04}\x03\x02\x02\x02\x04\x7F" + + "\x03\x02\x02\x02\x04\x81\x03\x02\x02\x02\x04\x83\x03\x02\x02\x02\x04\x85" + + "\x03\x02\x02\x02\x04\x87\x03\x02\x02\x02\x04\x89\x03\x02\x02\x02\x04\x8B" + + "\x03\x02\x02\x02\x04\x8D\x03\x02\x02\x02\x04\x8F\x03\x02\x02\x02\x04\x91" + + "\x03\x02\x02\x02\x04\x93\x03\x02\x02\x02\x04\x95\x03\x02\x02\x02\x04\x97" + + "\x03\x02\x02\x02\x04\x99\x03\x02\x02\x02\x04\x9B\x03\x02\x02\x02\x04\x9D" + + "\x03\x02\x02\x02\x04\x9F\x03\x02\x02\x02\x04\xA1\x03\x02\x02\x02\x04\xA3" + + "\x03\x02\x02\x02\x04\xA5\x03\x02\x02\x02\x04\xA7\x03\x02\x02\x02\x04\xA9" + + "\x03\x02\x02\x02\x04\xAB\x03\x02\x02\x02\x04\xAD\x03\x02\x02\x02\x05\xAF" + + "\x03\x02\x02\x02\x05\xB1\x03\x02\x02\x02\x05\xB3\x03\x02\x02\x02\x05\xB5" + + "\x03\x02\x02\x02\x05\xB7\x03\x02\x02\x02\x05\xB9\x03\x02\x02\x02\x05\xBD" + + "\x03\x02\x02\x02\x05\xBF\x03\x02\x02\x02\x05\xC1\x03\x02\x02\x02\x05\xC3" + + "\x03\x02\x02\x02\x05\xC5\x03\x02\x02\x02\x06\xC7\x03\x02\x02\x02\x06\xC9" + + "\x03\x02\x02\x02\x06\xCB\x03\x02\x02\x02\x06\xCF\x03\x02\x02\x02\x06\xD1" + + "\x03\x02\x02\x02\x06\xD3\x03\x02\x02\x02\x06\xD5\x03\x02\x02\x02\x06\xD7" + + "\x03\x02\x02\x02\x06\xD9\x03\x02\x02\x02\x07\xDB\x03\x02\x02\x02\x07\xDD" + + "\x03\x02\x02\x02\x07\xDF\x03\x02\x02\x02\x07\xE1\x03\x02\x02\x02\x07\xE3" + + "\x03\x02\x02\x02\x07\xE5\x03\x02\x02\x02\x07\xE7\x03\x02\x02\x02\x07\xE9" + + "\x03\x02\x02\x02\x07\xEB\x03\x02\x02\x02\x07\xED\x03\x02\x02\x02\b\xEF" + + "\x03\x02\x02\x02\b\xF1\x03\x02\x02\x02\b\xF3\x03\x02\x02\x02\b\xF5\x03" + + "\x02\x02\x02\b\xF9\x03\x02\x02\x02\b\xFB\x03\x02\x02\x02\b\xFD\x03\x02" + + "\x02\x02\b\xFF\x03\x02\x02\x02\b\u0101\x03\x02\x02\x02\b\u0103\x03\x02" + + "\x02\x02\t\u0105\x03\x02\x02\x02\t\u0107\x03\x02\x02\x02\t\u0109\x03\x02" + + "\x02\x02\t\u010B\x03\x02\x02\x02\t\u010D\x03\x02\x02\x02\t\u010F\x03\x02" + + "\x02\x02\t\u0111\x03\x02\x02\x02\t\u0113\x03\x02\x02\x02\t\u0115\x03\x02" + + "\x02\x02\t\u0117\x03\x02\x02\x02\n\u0119\x03\x02\x02\x02\n\u011B\x03\x02" + + "\x02\x02\n\u011D\x03\x02\x02\x02\n\u011F\x03\x02\x02\x02\n\u0121\x03\x02" + + "\x02\x02\n\u0123\x03\x02\x02\x02\n\u0125\x03\x02\x02\x02\v\u0127\x03\x02" + + "\x02\x02\v\u0129\x03\x02\x02\x02\v\u012B\x03\x02\x02\x02\v\u012D\x03\x02" + + "\x02\x02\v\u012F\x03\x02\x02\x02\v\u0131\x03\x02\x02\x02\f\u0133\x03\x02" + + "\x02\x02\f\u0135\x03\x02\x02\x02\f\u0137\x03\x02\x02\x02\f\u0139\x03\x02" + + "\x02\x02\f\u013B\x03\x02\x02\x02\f\u013D\x03\x02\x02\x02\r\u0173\x03\x02" + + "\x02\x02\x0F\u017D\x03\x02\x02\x02\x11\u0184\x03\x02\x02\x02\x13\u018D" + + "\x03\x02\x02\x02\x15\u0194\x03\x02\x02\x02\x17\u019E\x03\x02\x02\x02\x19" + + "\u01A5\x03\x02\x02\x02\x1B\u01AC\x03\x02\x02\x02\x1D\u01BA\x03\x02\x02" + + "\x02\x1F\u01C1\x03\x02\x02\x02!\u01C9\x03\x02\x02\x02#\u01D5\x03\x02\x02" + + "\x02%\u01DF\x03\x02\x02\x02\'\u01E8\x03\x02\x02\x02)\u01EE\x03\x02\x02" + + "\x02+\u01F5\x03\x02\x02\x02-\u01FC\x03\x02\x02\x02/\u0204\x03\x02\x02" + + "\x021\u020D\x03\x02\x02\x023\u0213\x03\x02\x02\x025\u0224\x03\x02\x02" + + "\x027\u0234\x03\x02\x02\x029\u023A\x03\x02\x02\x02;\u023F\x03\x02\x02" + + "\x02=\u0244\x03\x02\x02\x02?\u0248\x03\x02\x02\x02A\u024C\x03\x02\x02" + + "\x02C\u0250\x03\x02\x02\x02E\u0254\x03\x02\x02\x02G\u0256\x03\x02\x02" + + "\x02I\u0258\x03\x02\x02\x02K\u025B\x03\x02\x02\x02M\u025D\x03\x02\x02" + + "\x02O\u0266\x03\x02\x02\x02Q\u0268\x03\x02\x02\x02S\u026D\x03\x02\x02" + + "\x02U\u026F\x03\x02\x02\x02W\u0274\x03\x02\x02\x02Y\u0293\x03\x02\x02" + + "\x02[\u0296\x03\x02\x02\x02]\u02C4\x03\x02\x02\x02_\u02C6\x03\x02\x02" + + "\x02a\u02C9\x03\x02\x02\x02c\u02CD\x03\x02\x02\x02e\u02D1\x03\x02\x02" + + "\x02g\u02D3\x03\x02\x02\x02i\u02D5\x03\x02\x02\x02k\u02DA\x03\x02\x02" + + "\x02m\u02DC\x03\x02\x02\x02o\u02E2\x03\x02\x02\x02q\u02E8\x03\x02\x02" + + "\x02s\u02ED\x03\x02\x02\x02u\u02EF\x03\x02\x02\x02w\u02F2\x03\x02\x02" + + "\x02y\u02F5\x03\x02\x02\x02{\u02FA\x03\x02\x02\x02}\u02FE\x03\x02\x02" + + "\x02\x7F\u0303\x03\x02\x02\x02\x81\u0309\x03\x02\x02\x02\x83\u030C\x03" + + "\x02\x02\x02\x85\u030E\x03\x02\x02\x02\x87\u0314\x03\x02\x02\x02\x89\u0316" + + "\x03\x02\x02\x02\x8B\u031B\x03\x02\x02\x02\x8D\u031E\x03\x02\x02\x02\x8F" + + "\u0321\x03\x02\x02\x02\x91\u0323\x03\x02\x02\x02\x93\u0326\x03\x02\x02" + + "\x02\x95\u0328\x03\x02\x02\x02\x97\u032B\x03\x02\x02\x02\x99\u032D\x03" + + "\x02\x02\x02\x9B\u032F\x03\x02\x02\x02\x9D\u0331\x03\x02\x02\x02\x9F\u0333" + + "\x03\x02\x02\x02\xA1\u0335\x03\x02\x02\x02\xA3\u033A\x03\x02\x02\x02\xA5" + + "\u034F\x03\x02\x02\x02\xA7\u0351\x03\x02\x02\x02\xA9\u0359\x03\x02\x02" + + "\x02\xAB\u035D\x03\x02\x02\x02\xAD\u0361\x03\x02\x02\x02\xAF\u0365\x03" + + "\x02\x02\x02\xB1\u036A\x03\x02\x02\x02\xB3\u036E\x03\x02\x02\x02\xB5\u0372" + + "\x03\x02\x02\x02\xB7\u0376\x03\x02\x02\x02\xB9\u037A\x03\x02\x02\x02\xBB" + + "\u0386\x03\x02\x02\x02\xBD\u0389\x03\x02\x02\x02\xBF\u038D\x03\x02\x02" + + "\x02\xC1\u0391\x03\x02\x02\x02\xC3\u0395\x03\x02\x02\x02\xC5\u0399\x03" + + "\x02\x02\x02\xC7\u039D\x03\x02\x02\x02\xC9\u03A2\x03\x02\x02\x02\xCB\u03A6" + + "\x03\x02\x02\x02\xCD\u03AE\x03\x02\x02\x02\xCF\u03C3\x03\x02\x02\x02\xD1" + + "\u03C5\x03\x02\x02\x02\xD3\u03C9\x03\x02\x02\x02\xD5\u03CD\x03\x02\x02" + + "\x02\xD7\u03D1\x03\x02\x02\x02\xD9\u03D5\x03\x02\x02\x02\xDB\u03D9\x03" + + "\x02\x02\x02\xDD\u03DE\x03\x02\x02\x02\xDF\u03E2\x03\x02\x02\x02\xE1\u03E6" + + "\x03\x02\x02\x02\xE3\u03EA\x03\x02\x02\x02\xE5\u03ED\x03\x02\x02\x02\xE7" + + "\u03F1\x03\x02\x02\x02\xE9\u03F5\x03\x02\x02\x02\xEB\u03F9\x03\x02\x02" + + "\x02\xED\u03FD\x03\x02\x02\x02\xEF\u0401\x03\x02\x02\x02\xF1\u0406\x03" + + "\x02\x02\x02\xF3\u040B\x03\x02\x02\x02\xF5\u0410\x03\x02\x02\x02\xF7\u0417" + + "\x03\x02\x02\x02\xF9\u041B\x03\x02\x02\x02\xFB\u0423\x03\x02\x02\x02\xFD" + + "\u0427\x03\x02\x02\x02\xFF\u042B\x03\x02"; private static readonly _serializedATNSegment1: string = - "\x02\x02\u0152\u04A0\x03\x02\x02\x02\u0154\u04A2\x03\x02\x02\x02\u0156" + - "\u04A4\x03\x02\x02\x02\u0158\u04A6\x03\x02\x02\x02\u015A\u04A8\x03\x02" + - "\x02\x02\u015C\u04AA\x03\x02\x02\x02\u015E\u015F\x05\u0130\x94\x02\u015F" + - "\u0160\x05\u013A\x99\x02\u0160\u0161\x05\u014E\xA3\x02\u0161\u0162\x05" + - "\u014E\xA3\x02\u0162\u0163\x05\u0132\x95\x02\u0163\u0164\x05\u012E\x93" + - "\x02\u0164\u0165\x05\u0150\xA4\x02\u0165\u0166\x03\x02\x02\x02\u0166\u0167" + - "\b\x02\x02\x02\u0167\r\x03\x02\x02\x02\u0168\u0169\x05\u0130\x94\x02\u0169" + - "\u016A\x05\u014C\xA2\x02\u016A\u016B\x05\u0146\x9F\x02\u016B\u016C\x05" + - "\u0148\xA0\x02\u016C\u016D\x03\x02\x02\x02\u016D\u016E\b\x03\x03\x02\u016E" + - "\x0F\x03\x02\x02\x02\u016F\u0170\x05\u0132\x95\x02\u0170\u0171\x05\u0144" + - "\x9E\x02\u0171\u0172\x05\u014C\xA2\x02\u0172\u0173\x05\u013A\x99\x02\u0173" + - "\u0174\x05\u012E\x93\x02\u0174\u0175\x05\u0138\x98\x02\u0175\u0176\x03" + - "\x02\x02\x02\u0176\u0177\b\x04\x04\x02\u0177\x11\x03\x02\x02\x02\u0178" + - "\u0179\x05\u0132\x95\x02\u0179\u017A\x05\u0154\xA6\x02\u017A\u017B\x05" + - "\u012A\x91\x02\u017B\u017C\x05\u0140\x9C\x02\u017C\u017D\x03\x02\x02\x02" + - "\u017D\u017E\b\x05\x02\x02\u017E\x13\x03\x02\x02\x02\u017F\u0180\x05\u0132" + - "\x95\x02\u0180\u0181\x05\u0158\xA8\x02\u0181\u0182\x05\u0148\xA0\x02\u0182" + - "\u0183\x05\u0140\x9C\x02\u0183\u0184\x05\u012A\x91\x02\u0184\u0185\x05" + - "\u013A\x99\x02\u0185\u0186\x05\u0144\x9E\x02\u0186\u0187\x03\x02\x02\x02" + - "\u0187\u0188\b\x06\x05\x02\u0188\x15\x03\x02\x02\x02\u0189\u018A\x05\u0134" + - "\x96\x02\u018A\u018B\x05\u014C\xA2\x02\u018B\u018C\x05\u0146\x9F\x02\u018C" + - "\u018D\x05\u0142\x9D\x02\u018D\u018E\x03\x02\x02\x02\u018E\u018F\b\x07" + - "\x06\x02\u018F\x17\x03\x02\x02\x02\u0190\u0191\x05\u0136\x97\x02\u0191" + - "\u0192\x05\u014C\xA2\x02\u0192\u0193\x05\u0146\x9F\x02\u0193\u0194\x05" + - "\u013E\x9B\x02\u0194\u0195\x03\x02\x02\x02\u0195\u0196\b\b\x02\x02\u0196" + - "\x19\x03\x02\x02\x02\u0197\u0198\x05\u013A\x99\x02\u0198\u0199\x05\u0144" + - "\x9E\x02\u0199\u019A\x05\u0140\x9C\x02\u019A\u019B\x05\u013A\x99\x02\u019B" + - "\u019C\x05\u0144\x9E\x02\u019C\u019D\x05\u0132\x95\x02\u019D\u019E\x05" + - "\u014E\xA3\x02\u019E\u019F\x05\u0150\xA4\x02\u019F\u01A0\x05\u012A\x91" + - "\x02\u01A0\u01A1\x05\u0150\xA4\x02\u01A1\u01A2\x05\u014E\xA3\x02\u01A2" + - "\u01A3\x03\x02\x02\x02\u01A3\u01A4\b\t\x02\x02\u01A4\x1B\x03\x02\x02\x02" + - "\u01A5\u01A6\x05\u013E\x9B\x02\u01A6\u01A7\x05\u0132\x95\x02\u01A7\u01A8" + - "\x05\u0132\x95\x02\u01A8\u01A9\x05\u0148\xA0\x02\u01A9\u01AA\x03\x02\x02" + - "\x02\u01AA\u01AB\b\n\x03\x02\u01AB\x1D\x03\x02\x02\x02\u01AC\u01AD\x05" + - "\u0140\x9C\x02\u01AD\u01AE\x05\u013A\x99\x02\u01AE\u01AF\x05\u0142\x9D" + - "\x02\u01AF\u01B0\x05\u013A\x99\x02\u01B0\u01B1\x05\u0150\xA4\x02\u01B1" + - "\u01B2\x03\x02\x02\x02\u01B2\u01B3\b\v\x02\x02\u01B3\x1F\x03\x02\x02\x02" + - "\u01B4\u01B5\x05\u0142\x9D\x02\u01B5\u01B6\x05\u0154\xA6\x02\u01B6\u01B7" + - "\x05T&\x02\u01B7\u01B8\x05\u0132\x95\x02\u01B8\u01B9\x05\u0158\xA8\x02" + - "\u01B9\u01BA\x05\u0148\xA0\x02\u01BA\u01BB\x05\u012A\x91\x02\u01BB\u01BC" + - "\x05\u0144\x9E\x02\u01BC\u01BD\x05\u0130\x94\x02\u01BD\u01BE\x03\x02\x02" + - "\x02\u01BE\u01BF\b\f\x07\x02\u01BF!\x03\x02\x02\x02\u01C0\u01C1\x05\u0148" + - "\xA0\x02\u01C1\u01C2\x05\u014C\xA2\x02\u01C2\u01C3\x05\u0146\x9F\x02\u01C3" + - "\u01C4\x05\u013C\x9A\x02\u01C4\u01C5\x05\u0132\x95\x02\u01C5\u01C6\x05" + - "\u012E\x93\x02\u01C6\u01C7\x05\u0150\xA4\x02\u01C7\u01C8\x03\x02\x02\x02" + - "\u01C8\u01C9\b\r\x03\x02\u01C9#\x03\x02\x02\x02\u01CA\u01CB\x05\u014C" + - "\xA2\x02\u01CB\u01CC\x05\u0132\x95\x02\u01CC\u01CD\x05\u0144\x9E\x02\u01CD" + - "\u01CE\x05\u012A\x91\x02\u01CE\u01CF\x05\u0142\x9D\x02\u01CF\u01D0\x05" + - "\u0132\x95\x02\u01D0\u01D1\x03\x02\x02\x02\u01D1\u01D2\b\x0E\b\x02\u01D2" + - "%\x03\x02\x02\x02\u01D3\u01D4\x05\u014C\xA2\x02\u01D4\u01D5\x05\u0146" + - "\x9F\x02\u01D5\u01D6\x05\u0156\xA7\x02\u01D6\u01D7\x03\x02\x02\x02\u01D7" + - "\u01D8\b\x0F\x02\x02\u01D8\'\x03\x02\x02\x02\u01D9\u01DA\x05\u014E\xA3" + - "\x02\u01DA\u01DB\x05\u0138\x98\x02\u01DB\u01DC\x05\u0146\x9F\x02\u01DC" + - "\u01DD\x05\u0156\xA7\x02\u01DD\u01DE\x03\x02\x02\x02\u01DE\u01DF\b\x10" + - "\t\x02\u01DF)\x03\x02\x02\x02\u01E0\u01E1\x05\u014E\xA3\x02\u01E1\u01E2" + - "\x05\u0146\x9F\x02\u01E2\u01E3\x05\u014C\xA2\x02\u01E3\u01E4\x05\u0150" + - "\xA4\x02\u01E4\u01E5\x03\x02\x02\x02\u01E5\u01E6\b\x11\x02\x02\u01E6+" + - "\x03\x02\x02\x02\u01E7\u01E8\x05\u014E\xA3\x02\u01E8\u01E9\x05\u0150\xA4" + - "\x02\u01E9\u01EA\x05\u012A\x91\x02\u01EA\u01EB\x05\u0150\xA4\x02\u01EB" + - "\u01EC\x05\u014E\xA3\x02\u01EC\u01ED\x03\x02\x02\x02\u01ED\u01EE\b\x12" + - "\x02\x02\u01EE-\x03\x02\x02\x02\u01EF\u01F0\x05\u0156\xA7\x02\u01F0\u01F1" + - "\x05\u0138\x98\x02\u01F1\u01F2\x05\u0132\x95\x02\u01F2\u01F3\x05\u014C" + - "\xA2\x02\u01F3\u01F4\x05\u0132\x95\x02\u01F4\u01F5\x03\x02\x02\x02\u01F5" + - "\u01F6\b\x13\x02\x02\u01F6/\x03\x02\x02\x02\u01F7\u01F9\n\x02\x02\x02" + - "\u01F8\u01F7\x03\x02\x02\x02\u01F9\u01FA\x03\x02\x02\x02\u01FA\u01F8\x03" + - "\x02\x02\x02\u01FA\u01FB\x03\x02\x02\x02\u01FB\u01FC\x03\x02\x02\x02\u01FC" + - "\u01FD\b\x14\x02\x02\u01FD1\x03\x02\x02\x02\u01FE\u01FF\x071\x02\x02\u01FF" + - "\u0200\x071\x02\x02\u0200\u0204\x03\x02\x02\x02\u0201\u0203\n\x03\x02" + - "\x02\u0202\u0201\x03\x02\x02\x02\u0203\u0206\x03\x02\x02\x02\u0204\u0202" + - "\x03\x02\x02\x02\u0204\u0205\x03\x02\x02\x02\u0205\u0208\x03\x02\x02\x02" + - "\u0206\u0204\x03\x02\x02\x02\u0207\u0209\x07\x0F\x02\x02\u0208\u0207\x03" + - "\x02\x02\x02\u0208\u0209\x03\x02\x02\x02\u0209\u020B\x03\x02\x02\x02\u020A" + - "\u020C\x07\f\x02\x02\u020B\u020A\x03\x02\x02\x02\u020B\u020C\x03\x02\x02" + - "\x02\u020C\u020D\x03\x02\x02\x02\u020D\u020E\b\x15\n\x02\u020E3\x03\x02" + - "\x02\x02\u020F\u0210\x071\x02\x02\u0210\u0211\x07,\x02\x02\u0211\u0216" + - "\x03\x02\x02\x02\u0212\u0215\x054\x16\x02\u0213\u0215\v\x02\x02\x02\u0214" + - "\u0212\x03\x02\x02\x02\u0214\u0213\x03\x02\x02\x02\u0215\u0218\x03\x02" + - "\x02\x02\u0216\u0217\x03\x02\x02\x02\u0216\u0214\x03\x02\x02\x02\u0217" + - "\u0219\x03\x02\x02\x02\u0218\u0216\x03\x02\x02\x02\u0219\u021A\x07,\x02" + - "\x02\u021A\u021B\x071\x02\x02\u021B\u021C\x03\x02\x02\x02\u021C\u021D" + - "\b\x16\n\x02\u021D5\x03\x02\x02\x02\u021E\u0220\t\x04\x02\x02\u021F\u021E" + - "\x03\x02\x02\x02\u0220\u0221\x03\x02\x02\x02\u0221\u021F\x03\x02\x02\x02" + - "\u0221\u0222\x03\x02\x02\x02\u0222\u0223\x03\x02\x02\x02\u0223\u0224\b" + - "\x17\n\x02\u02247\x03\x02\x02\x02\u0225\u0226\x05\xA0L\x02\u0226\u0227" + - "\x03\x02\x02\x02\u0227\u0228\b\x18\v\x02\u0228\u0229\b\x18\f\x02\u0229" + - "9\x03\x02\x02\x02\u022A\u022B\x05B\x1D\x02\u022B\u022C\x03\x02\x02\x02" + - "\u022C\u022D\b\x19\r\x02\u022D\u022E\b\x19\x0E\x02\u022E;\x03\x02\x02" + - "\x02\u022F\u0230\x056\x17\x02\u0230\u0231\x03\x02\x02\x02\u0231\u0232" + - "\b\x1A\n\x02\u0232=\x03\x02\x02\x02\u0233\u0234\x052\x15\x02\u0234\u0235" + - "\x03\x02\x02\x02\u0235\u0236\b\x1B\n\x02\u0236?\x03\x02\x02\x02\u0237" + - "\u0238\x054\x16\x02\u0238\u0239\x03\x02\x02\x02\u0239\u023A\b\x1C\n\x02" + - "\u023AA\x03\x02\x02\x02\u023B\u023C\x07~\x02\x02\u023C\u023D\x03\x02\x02" + - "\x02\u023D\u023E\b\x1D\x0E\x02\u023EC\x03\x02\x02\x02\u023F\u0240\t\x05" + - "\x02\x02\u0240E\x03\x02\x02\x02\u0241\u0242\t\x06\x02\x02\u0242G\x03\x02" + - "\x02\x02\u0243\u0244\x07^\x02\x02\u0244\u0245\t\x07\x02\x02\u0245I\x03" + - "\x02\x02\x02\u0246\u0247\n\b\x02\x02\u0247K\x03\x02\x02\x02\u0248\u024A" + - "\t\t\x02\x02\u0249\u024B\t\n\x02\x02\u024A\u0249\x03\x02\x02\x02\u024A" + - "\u024B\x03\x02\x02\x02\u024B\u024D\x03\x02\x02\x02\u024C\u024E\x05D\x1E" + - "\x02\u024D\u024C\x03\x02\x02\x02\u024E\u024F\x03\x02\x02\x02\u024F\u024D" + - "\x03\x02\x02\x02\u024F\u0250\x03\x02\x02\x02\u0250M\x03\x02\x02\x02\u0251" + - "\u0252\x07B\x02\x02\u0252O\x03\x02\x02\x02\u0253\u0254\x07b\x02\x02\u0254" + - "Q\x03\x02\x02\x02\u0255\u0259\n\v\x02\x02\u0256\u0257\x07b\x02\x02\u0257" + - "\u0259\x07b\x02\x02\u0258\u0255\x03\x02\x02\x02\u0258\u0256\x03\x02\x02" + - "\x02\u0259S\x03\x02\x02\x02\u025A\u025B\x07a\x02\x02\u025BU\x03\x02\x02" + - "\x02\u025C\u0260\x05F\x1F\x02\u025D\u0260\x05D\x1E\x02\u025E\u0260\x05" + - "T&\x02\u025F\u025C\x03\x02\x02\x02\u025F\u025D\x03\x02\x02\x02\u025F\u025E" + - "\x03\x02\x02\x02\u0260W\x03\x02\x02\x02\u0261\u0266\x07$\x02\x02\u0262" + - "\u0265\x05H \x02\u0263\u0265\x05J!\x02\u0264\u0262\x03\x02\x02\x02\u0264" + - "\u0263\x03\x02\x02\x02\u0265\u0268\x03\x02\x02\x02\u0266\u0264\x03\x02" + - "\x02\x02\u0266\u0267\x03\x02\x02\x02\u0267\u0269\x03\x02\x02\x02\u0268" + - "\u0266\x03\x02\x02\x02\u0269\u027F\x07$\x02\x02\u026A\u026B\x07$\x02\x02" + - "\u026B\u026C\x07$\x02\x02\u026C\u026D\x07$\x02\x02\u026D\u0271\x03\x02" + - "\x02\x02\u026E\u0270\n\x03\x02\x02\u026F\u026E\x03\x02\x02\x02\u0270\u0273" + - "\x03\x02\x02\x02\u0271\u0272\x03\x02\x02\x02\u0271\u026F\x03\x02\x02\x02" + - "\u0272\u0274\x03\x02\x02\x02\u0273\u0271\x03\x02\x02\x02\u0274\u0275\x07" + - "$\x02\x02\u0275\u0276\x07$\x02\x02\u0276\u0277\x07$\x02\x02\u0277\u0279" + - "\x03\x02\x02\x02\u0278\u027A\x07$\x02\x02\u0279\u0278\x03\x02\x02\x02" + - "\u0279\u027A\x03\x02\x02\x02\u027A\u027C\x03\x02\x02\x02\u027B\u027D\x07" + - "$\x02\x02\u027C\u027B\x03\x02\x02\x02\u027C\u027D\x03\x02\x02\x02\u027D" + - "\u027F\x03\x02\x02\x02\u027E\u0261\x03\x02\x02\x02\u027E\u026A\x03\x02" + - "\x02\x02\u027FY\x03\x02\x02\x02\u0280\u0282\x05D\x1E\x02\u0281\u0280\x03" + - "\x02\x02\x02\u0282\u0283\x03\x02\x02\x02\u0283\u0281\x03\x02\x02\x02\u0283" + - "\u0284\x03\x02\x02\x02\u0284[\x03\x02\x02\x02\u0285\u0287\x05D\x1E\x02" + - "\u0286\u0285\x03\x02\x02\x02\u0287\u0288\x03\x02\x02\x02\u0288\u0286\x03" + - "\x02\x02\x02\u0288\u0289\x03\x02\x02\x02\u0289\u028A\x03\x02\x02\x02\u028A" + - "\u028E\x05j1\x02\u028B\u028D\x05D\x1E\x02\u028C\u028B\x03\x02\x02\x02" + - "\u028D\u0290\x03\x02\x02\x02\u028E\u028C\x03\x02\x02\x02\u028E\u028F\x03" + - "\x02\x02\x02\u028F\u02B0\x03\x02\x02\x02\u0290\u028E\x03\x02\x02\x02\u0291" + - "\u0293\x05j1\x02\u0292\u0294\x05D\x1E\x02\u0293\u0292\x03\x02\x02\x02" + - "\u0294\u0295\x03\x02\x02\x02\u0295\u0293\x03\x02\x02\x02\u0295\u0296\x03" + - "\x02\x02\x02\u0296\u02B0\x03\x02\x02\x02\u0297\u0299\x05D\x1E\x02\u0298" + - "\u0297\x03\x02\x02\x02\u0299\u029A\x03\x02\x02\x02\u029A\u0298\x03\x02" + - "\x02\x02\u029A\u029B\x03\x02\x02\x02\u029B\u02A3\x03\x02\x02\x02\u029C" + - "\u02A0\x05j1\x02\u029D\u029F\x05D\x1E\x02\u029E\u029D\x03\x02\x02\x02" + - "\u029F\u02A2\x03\x02\x02\x02\u02A0\u029E\x03\x02\x02\x02\u02A0\u02A1\x03" + - "\x02\x02\x02\u02A1\u02A4\x03\x02\x02\x02\u02A2\u02A0\x03\x02\x02\x02\u02A3" + - "\u029C\x03\x02\x02\x02\u02A3\u02A4\x03\x02\x02\x02\u02A4\u02A5\x03\x02" + - "\x02\x02\u02A5\u02A6\x05L\"\x02\u02A6\u02B0\x03\x02\x02\x02\u02A7\u02A9" + - "\x05j1\x02\u02A8\u02AA\x05D\x1E\x02\u02A9\u02A8\x03\x02\x02\x02\u02AA" + - "\u02AB\x03\x02\x02\x02\u02AB\u02A9\x03\x02\x02\x02\u02AB\u02AC\x03\x02" + - "\x02\x02\u02AC\u02AD\x03\x02\x02\x02\u02AD\u02AE\x05L\"\x02\u02AE\u02B0" + - "\x03\x02\x02\x02\u02AF\u0286\x03\x02\x02\x02\u02AF\u0291\x03\x02\x02\x02" + - "\u02AF\u0298\x03\x02\x02\x02\u02AF\u02A7\x03\x02\x02\x02\u02B0]\x03\x02" + - "\x02\x02\u02B1\u02B2\x05\u012C\x92\x02\u02B2\u02B3\x05\u015A\xA9\x02\u02B3" + - "_\x03\x02\x02\x02\u02B4\u02B5\x05\u012A\x91\x02\u02B5\u02B6\x05\u0144" + - "\x9E\x02\u02B6\u02B7\x05\u0130\x94\x02\u02B7a\x03\x02\x02\x02\u02B8\u02B9" + - "\x05\u012A\x91\x02\u02B9\u02BA\x05\u014E\xA3\x02\u02BA\u02BB\x05\u012E" + - "\x93\x02\u02BBc\x03\x02\x02\x02\u02BC\u02BD\x07?\x02\x02\u02BDe\x03\x02" + - "\x02\x02\u02BE\u02BF\x07.\x02\x02\u02BFg\x03\x02\x02\x02\u02C0\u02C1\x05" + - "\u0130\x94\x02\u02C1\u02C2\x05\u0132\x95\x02\u02C2\u02C3\x05\u014E\xA3" + - "\x02\u02C3\u02C4\x05\u012E\x93\x02\u02C4i\x03\x02\x02\x02\u02C5\u02C6" + - "\x070\x02\x02\u02C6k\x03\x02\x02\x02\u02C7\u02C8\x05\u0134\x96\x02\u02C8" + - "\u02C9\x05\u012A\x91\x02\u02C9\u02CA\x05\u0140\x9C\x02\u02CA\u02CB\x05" + - "\u014E\xA3\x02\u02CB\u02CC\x05\u0132\x95\x02\u02CCm\x03\x02\x02\x02\u02CD" + - "\u02CE\x05\u0134\x96\x02\u02CE\u02CF\x05\u013A\x99\x02\u02CF\u02D0\x05" + - "\u014C\xA2\x02\u02D0\u02D1\x05\u014E\xA3\x02\u02D1\u02D2\x05\u0150\xA4" + - "\x02\u02D2o\x03\x02\x02\x02\u02D3\u02D4\x05\u0140\x9C\x02\u02D4\u02D5" + - "\x05\u012A\x91\x02\u02D5\u02D6\x05\u014E\xA3\x02\u02D6\u02D7\x05\u0150" + - "\xA4\x02\u02D7q\x03\x02\x02\x02\u02D8\u02D9\x07*\x02\x02\u02D9s\x03\x02" + - "\x02\x02\u02DA\u02DB\x05\u013A\x99\x02\u02DB\u02DC\x05\u0144\x9E\x02\u02DC" + - "u\x03\x02\x02\x02\u02DD\u02DE\x05\u013A\x99\x02\u02DE\u02DF\x05\u014E" + - "\xA3\x02\u02DFw\x03\x02\x02\x02\u02E0\u02E1\x05\u0140\x9C\x02\u02E1\u02E2" + - "\x05\u013A\x99\x02\u02E2\u02E3\x05\u013E\x9B\x02\u02E3\u02E4\x05\u0132" + - "\x95\x02\u02E4y\x03\x02\x02\x02\u02E5\u02E6\x05\u0144\x9E\x02\u02E6\u02E7" + - "\x05\u0146\x9F\x02\u02E7\u02E8\x05\u0150\xA4\x02\u02E8{\x03\x02\x02\x02" + - "\u02E9\u02EA\x05\u0144\x9E\x02\u02EA\u02EB\x05\u0152\xA5\x02\u02EB\u02EC" + - "\x05\u0140\x9C\x02\u02EC\u02ED\x05\u0140\x9C\x02\u02ED}\x03\x02\x02\x02" + - "\u02EE\u02EF\x05\u0144\x9E\x02\u02EF\u02F0\x05\u0152\xA5\x02\u02F0\u02F1" + - "\x05\u0140\x9C\x02\u02F1\u02F2\x05\u0140\x9C\x02\u02F2\u02F3\x05\u014E" + - "\xA3\x02\u02F3\x7F\x03\x02\x02\x02\u02F4\u02F5\x05\u0146\x9F\x02\u02F5" + - "\u02F6\x05\u014C\xA2\x02\u02F6\x81\x03\x02\x02\x02\u02F7\u02F8\x07A\x02" + - "\x02\u02F8\x83\x03\x02\x02\x02\u02F9\u02FA\x05\u014C\xA2\x02\u02FA\u02FB" + - "\x05\u0140\x9C\x02\u02FB\u02FC\x05\u013A\x99\x02\u02FC\u02FD\x05\u013E" + - "\x9B\x02\u02FD\u02FE\x05\u0132\x95\x02\u02FE\x85\x03\x02\x02\x02\u02FF" + - "\u0300\x07+\x02\x02\u0300\x87\x03\x02\x02\x02\u0301\u0302\x05\u0150\xA4" + - "\x02\u0302\u0303\x05\u014C\xA2\x02\u0303\u0304\x05\u0152\xA5\x02\u0304" + - "\u0305\x05\u0132\x95\x02\u0305\x89\x03\x02\x02\x02\u0306\u0307\x07?\x02" + - "\x02\u0307\u0308\x07?\x02\x02\u0308\x8B\x03\x02\x02\x02\u0309\u030A\x07" + - "#\x02\x02\u030A\u030B\x07?\x02\x02\u030B\x8D\x03\x02\x02\x02\u030C\u030D" + - "\x07>\x02\x02\u030D\x8F\x03\x02\x02\x02\u030E\u030F\x07>\x02\x02\u030F" + - "\u0310\x07?\x02\x02\u0310\x91\x03\x02\x02\x02\u0311\u0312\x07@\x02\x02" + - "\u0312\x93\x03\x02\x02\x02\u0313\u0314\x07@\x02\x02\u0314\u0315\x07?\x02" + - "\x02\u0315\x95\x03\x02\x02\x02\u0316\u0317\x07-\x02\x02\u0317\x97\x03" + - "\x02\x02\x02\u0318\u0319\x07/\x02\x02\u0319\x99\x03\x02\x02\x02\u031A" + - "\u031B\x07,\x02\x02\u031B\x9B\x03\x02\x02\x02\u031C\u031D\x071\x02\x02" + - "\u031D\x9D\x03\x02\x02\x02\u031E\u031F\x07\'\x02\x02\u031F\x9F\x03\x02" + - "\x02\x02\u0320\u0321\x07]\x02\x02\u0321\u0322\x03\x02\x02\x02\u0322\u0323" + - "\bL\x02\x02\u0323\u0324\bL\x02\x02\u0324\xA1\x03\x02\x02\x02\u0325\u0326" + - "\x07_\x02\x02\u0326\u0327\x03\x02\x02\x02\u0327\u0328\bM\x0E\x02\u0328" + - "\u0329\bM\x0E\x02\u0329\xA3\x03\x02\x02\x02\u032A\u032E\x05F\x1F\x02\u032B" + - "\u032D\x05V\'\x02\u032C\u032B\x03\x02\x02\x02\u032D\u0330\x03\x02\x02" + - "\x02\u032E\u032C\x03\x02\x02\x02\u032E\u032F\x03\x02\x02\x02\u032F\u033B" + - "\x03\x02\x02\x02\u0330\u032E\x03\x02\x02\x02\u0331\u0334\x05T&\x02\u0332" + - "\u0334\x05N#\x02\u0333\u0331\x03\x02\x02\x02\u0333\u0332\x03\x02\x02\x02" + - "\u0334\u0336\x03\x02\x02\x02\u0335\u0337\x05V\'\x02\u0336\u0335\x03\x02" + - "\x02\x02\u0337\u0338\x03\x02\x02\x02\u0338\u0336\x03\x02\x02\x02\u0338" + - "\u0339\x03\x02\x02\x02\u0339\u033B\x03\x02\x02\x02\u033A\u032A\x03\x02" + - "\x02\x02\u033A\u0333\x03\x02\x02\x02\u033B\xA5\x03\x02\x02\x02\u033C\u033E" + - "\x05P$\x02\u033D\u033F\x05R%\x02\u033E\u033D\x03\x02\x02\x02\u033F\u0340" + - "\x03\x02\x02\x02\u0340\u033E\x03\x02\x02\x02\u0340\u0341\x03\x02\x02\x02" + - "\u0341\u0342\x03\x02\x02\x02\u0342\u0343\x05P$\x02\u0343\xA7\x03\x02\x02" + - "\x02\u0344\u0345\x052\x15\x02\u0345\u0346\x03\x02\x02\x02\u0346\u0347" + - "\bP\n\x02\u0347\xA9\x03\x02\x02\x02\u0348\u0349\x054\x16\x02\u0349\u034A" + - "\x03\x02\x02\x02\u034A\u034B\bQ\n\x02\u034B\xAB\x03\x02\x02\x02\u034C" + - "\u034D\x056\x17\x02\u034D\u034E\x03\x02\x02\x02\u034E\u034F\bR\n\x02\u034F" + - "\xAD\x03\x02\x02\x02\u0350\u0351\x05B\x1D\x02\u0351\u0352\x03\x02\x02" + - "\x02\u0352\u0353\bS\r\x02\u0353\u0354\bS\x0E\x02\u0354\xAF\x03\x02\x02" + - "\x02\u0355\u0356\x05\xA0L\x02\u0356\u0357\x03\x02\x02\x02\u0357\u0358" + - "\bT\v\x02\u0358\u0359\bT\x06\x02\u0359\u035A\bT\x06\x02\u035A\xB1\x03" + - "\x02\x02\x02\u035B\u035C\x05\xA2M\x02\u035C\u035D\x03\x02\x02\x02\u035D" + - "\u035E\bU\x0F\x02\u035E\u035F\bU\x0E\x02\u035F\u0360\bU\x0E\x02\u0360" + - "\xB3\x03\x02\x02\x02\u0361\u0362\x05f/\x02\u0362\u0363\x03\x02\x02\x02" + - "\u0363\u0364\bV\x10\x02\u0364\xB5\x03\x02\x02\x02\u0365\u0366\x05d.\x02" + - "\u0366\u0367\x03\x02\x02\x02\u0367\u0368\bW\x11\x02\u0368\xB7\x03\x02" + - "\x02\x02\u0369\u036A\x05\u0142\x9D\x02\u036A\u036B\x05\u0132\x95\x02\u036B" + - "\u036C\x05\u0150\xA4\x02\u036C\u036D\x05\u012A\x91\x02\u036D\u036E\x05" + - "\u0130\x94\x02\u036E\u036F\x05\u012A\x91\x02\u036F\u0370\x05\u0150\xA4" + - "\x02\u0370\u0371\x05\u012A\x91\x02\u0371\xB9\x03\x02\x02\x02\u0372\u0376" + - "\n\f\x02\x02\u0373\u0374\x071\x02\x02\u0374\u0376\n\r\x02\x02\u0375\u0372" + - "\x03\x02\x02\x02\u0375\u0373\x03\x02\x02\x02\u0376\xBB\x03\x02\x02\x02" + - "\u0377\u0379\x05\xBAY\x02\u0378\u0377\x03\x02\x02\x02\u0379\u037A\x03" + - "\x02\x02\x02\u037A\u0378\x03\x02\x02\x02\u037A\u037B\x03\x02\x02\x02\u037B" + - "\xBD\x03\x02\x02\x02\u037C\u037D\x05\xA6O\x02\u037D\u037E\x03\x02\x02" + - "\x02\u037E\u037F\b[\x12\x02\u037F\xBF\x03\x02\x02\x02\u0380\u0381\x05" + - "2\x15\x02\u0381\u0382\x03\x02\x02\x02\u0382\u0383\b\\\n\x02\u0383\xC1" + - "\x03\x02\x02\x02\u0384\u0385\x054\x16\x02\u0385\u0386\x03\x02\x02\x02" + - "\u0386\u0387\b]\n\x02\u0387\xC3\x03\x02\x02\x02\u0388\u0389\x056\x17\x02" + - "\u0389\u038A\x03\x02\x02\x02\u038A\u038B\b^\n\x02\u038B\xC5\x03\x02\x02" + - "\x02\u038C\u038D\x05B\x1D\x02\u038D\u038E\x03\x02\x02\x02\u038E\u038F" + - "\b_\r\x02\u038F\u0390\b_\x0E\x02\u0390\xC7\x03\x02\x02\x02\u0391\u0392" + - "\x05j1\x02\u0392\u0393\x03\x02\x02\x02\u0393\u0394\b`\x13\x02\u0394\xC9" + - "\x03\x02\x02\x02\u0395\u0396\x05f/\x02\u0396\u0397\x03\x02\x02\x02\u0397" + - "\u0398\ba\x10\x02\u0398\xCB\x03\x02\x02\x02\u0399\u039E\x05F\x1F\x02\u039A" + - "\u039E\x05D\x1E\x02\u039B\u039E\x05T&\x02\u039C\u039E\x05\x9AI\x02\u039D" + - "\u0399\x03\x02\x02\x02\u039D\u039A\x03\x02\x02\x02\u039D\u039B\x03\x02" + - "\x02\x02\u039D\u039C\x03\x02\x02\x02\u039E\xCD\x03\x02\x02\x02\u039F\u03A2" + - "\x05F\x1F\x02\u03A0\u03A2\x05\x9AI\x02\u03A1\u039F\x03\x02\x02\x02\u03A1" + - "\u03A0\x03\x02\x02\x02\u03A2\u03A6\x03\x02\x02\x02\u03A3\u03A5\x05\xCC" + - "b\x02\u03A4\u03A3\x03\x02\x02\x02\u03A5\u03A8\x03\x02\x02\x02\u03A6\u03A4" + - "\x03\x02\x02\x02\u03A6\u03A7\x03\x02\x02\x02\u03A7\u03B3\x03\x02\x02\x02" + - "\u03A8\u03A6\x03\x02\x02\x02\u03A9\u03AC\x05T&\x02\u03AA\u03AC\x05N#\x02" + - "\u03AB\u03A9\x03\x02\x02\x02\u03AB\u03AA\x03\x02\x02\x02\u03AC\u03AE\x03" + - "\x02\x02\x02\u03AD\u03AF\x05\xCCb\x02\u03AE\u03AD\x03\x02\x02\x02\u03AF" + - "\u03B0\x03\x02\x02\x02\u03B0\u03AE\x03\x02\x02\x02\u03B0\u03B1\x03\x02" + - "\x02\x02\u03B1\u03B3\x03\x02\x02\x02\u03B2\u03A1\x03\x02\x02\x02\u03B2" + - "\u03AB\x03\x02\x02\x02\u03B3\xCF\x03\x02\x02\x02\u03B4\u03B5\x05\xA6O" + - "\x02\u03B5\u03B6\x03\x02\x02\x02\u03B6\u03B7\bd\x12\x02\u03B7\xD1\x03" + - "\x02\x02\x02\u03B8\u03B9\x052\x15\x02\u03B9\u03BA\x03\x02\x02\x02\u03BA" + - "\u03BB\be\n\x02\u03BB\xD3\x03\x02\x02\x02\u03BC\u03BD\x054\x16\x02\u03BD" + - "\u03BE\x03\x02\x02\x02\u03BE\u03BF\bf\n\x02\u03BF\xD5\x03\x02\x02\x02" + - "\u03C0\u03C1\x056\x17\x02\u03C1\u03C2\x03\x02\x02\x02\u03C2\u03C3\bg\n" + - "\x02\u03C3\xD7\x03\x02\x02\x02\u03C4\u03C5\x05B\x1D\x02\u03C5\u03C6\x03" + - "\x02\x02\x02\u03C6\u03C7\bh\r\x02\u03C7\u03C8\bh\x0E\x02\u03C8\xD9\x03" + - "\x02\x02\x02\u03C9\u03CA\x05d.\x02\u03CA\u03CB\x03\x02\x02\x02\u03CB\u03CC" + - "\bi\x11\x02\u03CC\xDB\x03\x02\x02\x02\u03CD\u03CE\x05f/\x02\u03CE\u03CF" + - "\x03\x02\x02\x02\u03CF\u03D0\bj\x10\x02\u03D0\xDD\x03\x02\x02\x02\u03D1" + - "\u03D2\x05j1\x02\u03D2\u03D3\x03\x02\x02\x02\u03D3\u03D4\bk\x13\x02\u03D4" + - "\xDF\x03\x02\x02\x02\u03D5\u03D6\x05\u012A\x91\x02\u03D6\u03D7\x05\u014E" + - "\xA3\x02\u03D7\xE1\x03\x02\x02\x02\u03D8\u03D9\x05\xA6O\x02\u03D9\u03DA" + - "\x03\x02\x02\x02\u03DA\u03DB\bm\x12\x02\u03DB\xE3\x03\x02\x02\x02\u03DC" + - "\u03DD\x05\xCEc\x02\u03DD\u03DE\x03\x02\x02\x02\u03DE\u03DF\bn\x14\x02" + - "\u03DF\xE5\x03\x02\x02\x02\u03E0\u03E1\x052\x15\x02\u03E1\u03E2\x03\x02" + - "\x02\x02\u03E2\u03E3\bo\n\x02\u03E3\xE7\x03\x02\x02\x02\u03E4\u03E5\x05" + - "4\x16\x02\u03E5\u03E6\x03\x02\x02\x02\u03E6\u03E7\bp\n\x02\u03E7\xE9\x03" + - "\x02\x02\x02\u03E8\u03E9\x056\x17\x02\u03E9\u03EA\x03\x02\x02\x02\u03EA" + - "\u03EB\bq\n\x02\u03EB\xEB\x03\x02\x02\x02\u03EC\u03ED\x05B\x1D\x02\u03ED" + - "\u03EE\x03\x02\x02\x02\u03EE\u03EF\br\r\x02\u03EF\u03F0\br\x0E\x02\u03F0" + - "\xED\x03\x02\x02\x02\u03F1\u03F2\x05\u0146\x9F\x02\u03F2\u03F3\x05\u0144" + - "\x9E\x02\u03F3\u03F4\x03\x02\x02\x02\u03F4\u03F5\bs\x15\x02\u03F5\xEF" + - "\x03\x02\x02\x02\u03F6\u03F7\x05\u0156\xA7\x02\u03F7\u03F8\x05\u013A\x99" + - "\x02\u03F8\u03F9\x05\u0150\xA4\x02\u03F9\u03FA\x05\u0138\x98\x02\u03FA" + - "\u03FB\x03\x02\x02\x02\u03FB\u03FC\bt\x15\x02\u03FC\xF1\x03\x02\x02\x02" + - "\u03FD\u03FE\x05\xBCZ\x02\u03FE\u03FF\x03\x02\x02\x02\u03FF\u0400\bu\x16" + - "\x02\u0400\xF3\x03\x02\x02\x02\u0401\u0402\x05\xA6O\x02\u0402\u0403\x03" + - "\x02\x02\x02\u0403\u0404\bv\x12\x02\u0404\xF5\x03\x02\x02\x02\u0405\u0406" + - "\x052\x15\x02\u0406\u0407\x03\x02\x02\x02\u0407\u0408\bw\n\x02\u0408\xF7" + - "\x03\x02\x02\x02\u0409\u040A\x054\x16\x02\u040A\u040B\x03\x02\x02\x02" + - "\u040B\u040C\bx\n\x02\u040C\xF9\x03\x02\x02\x02\u040D\u040E\x056\x17\x02" + - "\u040E\u040F\x03\x02\x02\x02\u040F\u0410\by\n\x02\u0410\xFB\x03\x02\x02" + - "\x02\u0411\u0412\x05B\x1D\x02\u0412\u0413\x03\x02\x02\x02\u0413\u0414" + - "\bz\r\x02\u0414\u0415\bz\x0E\x02\u0415\u0416\bz\x0E\x02\u0416\xFD\x03" + - "\x02\x02\x02\u0417\u0418\x05d.\x02\u0418\u0419\x03\x02\x02\x02\u0419\u041A" + - "\b{\x11\x02\u041A\xFF\x03\x02\x02\x02\u041B\u041C\x05f/\x02\u041C\u041D" + - "\x03\x02\x02\x02\u041D\u041E\b|\x10\x02\u041E\u0101\x03\x02\x02\x02\u041F" + - "\u0420\x05j1\x02\u0420\u0421\x03\x02\x02\x02\u0421\u0422\b}\x13\x02\u0422" + - "\u0103\x03\x02\x02\x02\u0423\u0424\x05\xF0t\x02\u0424\u0425\x03\x02\x02" + - "\x02\u0425\u0426\b~\x17\x02\u0426\u0105\x03\x02\x02\x02\u0427\u0428\x05" + - "\xCEc\x02\u0428\u0429\x03\x02\x02\x02\u0429\u042A\b\x7F\x14\x02\u042A" + - "\u0107\x03\x02\x02\x02\u042B\u042C\x05\xA6O\x02\u042C\u042D\x03\x02\x02" + - "\x02\u042D\u042E\b\x80\x12\x02\u042E\u0109\x03\x02\x02\x02\u042F\u0430" + - "\x052\x15\x02\u0430\u0431\x03\x02\x02\x02\u0431\u0432\b\x81\n\x02\u0432" + - "\u010B\x03\x02\x02\x02\u0433\u0434\x054\x16\x02\u0434\u0435\x03\x02\x02" + - "\x02\u0435\u0436\b\x82\n\x02\u0436\u010D\x03\x02\x02\x02\u0437\u0438\x05" + - "6\x17\x02\u0438\u0439\x03\x02\x02\x02\u0439\u043A\b\x83\n\x02\u043A\u010F" + - "\x03\x02\x02\x02\u043B\u043C\x05B\x1D\x02\u043C\u043D\x03\x02\x02\x02" + - "\u043D\u043E\b\x84\r\x02\u043E\u043F\b\x84\x0E\x02\u043F\u0111\x03\x02" + - "\x02\x02\u0440\u0441\x05j1\x02\u0441\u0442\x03\x02\x02\x02\u0442\u0443" + - "\b\x85\x13\x02\u0443\u0113\x03\x02\x02\x02\u0444\u0445\x05\xA6O\x02\u0445" + - "\u0446\x03\x02\x02\x02\u0446\u0447\b\x86\x12\x02\u0447\u0115\x03\x02\x02" + - "\x02\u0448\u0449\x05\xA4N\x02\u0449\u044A\x03\x02\x02\x02\u044A\u044B" + - "\b\x87\x18\x02\u044B\u0117\x03\x02\x02\x02\u044C\u044D\x052\x15\x02\u044D" + - "\u044E\x03\x02\x02\x02\u044E\u044F\b\x88\n\x02\u044F\u0119\x03\x02\x02" + - "\x02\u0450\u0451\x054\x16\x02\u0451\u0452\x03\x02\x02\x02\u0452\u0453" + - "\b\x89\n\x02\u0453\u011B\x03\x02\x02\x02\u0454\u0455\x056\x17\x02\u0455" + - "\u0456\x03\x02\x02\x02\u0456\u0457\b\x8A\n\x02\u0457\u011D\x03\x02\x02" + - "\x02\u0458\u0459\x05B\x1D\x02\u0459\u045A\x03\x02\x02\x02\u045A\u045B" + - "\b\x8B\r\x02\u045B\u045C\b\x8B\x0E\x02\u045C\u011F\x03\x02\x02\x02\u045D" + - "\u045E\x05\u013A\x99\x02\u045E\u045F\x05\u0144\x9E\x02\u045F\u0460\x05" + - "\u0134\x96\x02\u0460\u0461\x05\u0146\x9F\x02\u0461\u0121\x03\x02\x02\x02" + - "\u0462\u0463\x05\u0134\x96\x02\u0463\u0464\x05\u0152\xA5\x02\u0464\u0465" + - "\x05\u0144\x9E\x02\u0465\u0466\x05\u012E\x93\x02\u0466\u0467\x05\u0150" + - "\xA4\x02\u0467\u0468\x05\u013A\x99\x02\u0468\u0469\x05\u0146\x9F\x02\u0469" + - "\u046A\x05\u0144\x9E\x02\u046A\u046B\x05\u014E\xA3\x02\u046B\u0123\x03" + - "\x02\x02\x02\u046C\u046D\x052\x15\x02"; + "\x02\x02\u0101\u042F\x03\x02\x02\x02\u0103\u0433\x03\x02\x02\x02\u0105" + + "\u0437\x03\x02\x02\x02\u0107\u043D\x03\x02\x02\x02\u0109\u0441\x03\x02" + + "\x02\x02\u010B\u0445\x03\x02\x02\x02\u010D\u0449\x03\x02\x02\x02\u010F" + + "\u044D\x03\x02\x02\x02\u0111\u0451\x03\x02\x02\x02\u0113\u0455\x03\x02" + + "\x02\x02\u0115\u0459\x03\x02\x02\x02\u0117\u045D\x03\x02\x02\x02\u0119" + + "\u0461\x03\x02\x02\x02\u011B\u0466\x03\x02\x02\x02\u011D\u046A\x03\x02" + + "\x02\x02\u011F\u046E\x03\x02\x02\x02\u0121\u0472\x03\x02\x02\x02\u0123" + + "\u0476\x03\x02\x02\x02\u0125\u047A\x03\x02\x02\x02\u0127\u047E\x03\x02" + + "\x02\x02\u0129\u0483\x03\x02\x02\x02\u012B\u0488\x03\x02\x02\x02\u012D" + + "\u0492\x03\x02\x02\x02\u012F\u0496\x03\x02\x02\x02\u0131\u049A\x03\x02" + + "\x02\x02\u0133\u049E\x03\x02\x02\x02\u0135\u04A3\x03\x02\x02\x02\u0137" + + "\u04AA\x03\x02\x02\x02\u0139\u04AE\x03\x02\x02\x02\u013B\u04B2\x03\x02" + + "\x02\x02\u013D\u04B6\x03\x02\x02\x02\u013F\u04BA\x03\x02\x02\x02\u0141" + + "\u04BC\x03\x02\x02\x02\u0143\u04BE\x03\x02\x02\x02\u0145\u04C0\x03\x02" + + "\x02\x02\u0147\u04C2\x03\x02\x02\x02\u0149\u04C4\x03\x02\x02\x02\u014B" + + "\u04C6\x03\x02\x02\x02\u014D\u04C8\x03\x02\x02\x02\u014F\u04CA\x03\x02" + + "\x02\x02\u0151\u04CC\x03\x02\x02\x02\u0153\u04CE\x03\x02\x02\x02\u0155" + + "\u04D0\x03\x02\x02\x02\u0157\u04D2\x03\x02\x02\x02\u0159\u04D4\x03\x02" + + "\x02\x02\u015B\u04D6\x03\x02\x02\x02\u015D\u04D8\x03\x02\x02\x02\u015F" + + "\u04DA\x03\x02\x02\x02\u0161\u04DC\x03\x02\x02\x02\u0163\u04DE\x03\x02" + + "\x02\x02\u0165\u04E0\x03\x02\x02\x02\u0167\u04E2\x03\x02\x02\x02\u0169" + + "\u04E4\x03\x02\x02\x02\u016B\u04E6\x03\x02\x02\x02\u016D\u04E8\x03\x02" + + "\x02\x02\u016F\u04EA\x03\x02\x02\x02\u0171\u04EC\x03\x02\x02\x02\u0173" + + "\u0174\x05\u0145\x9E\x02\u0174\u0175\x05\u014F\xA3\x02\u0175\u0176\x05" + + "\u0163\xAD\x02\u0176\u0177\x05\u0163\xAD\x02\u0177\u0178\x05\u0147\x9F" + + "\x02\u0178\u0179\x05\u0143\x9D\x02\u0179\u017A\x05\u0165\xAE\x02\u017A" + + "\u017B\x03\x02\x02\x02\u017B\u017C\b\x02\x02\x02\u017C\x0E\x03\x02\x02" + + "\x02\u017D\u017E\x05\u0145\x9E\x02\u017E\u017F\x05\u0161\xAC\x02\u017F" + + "\u0180\x05\u015B\xA9\x02\u0180\u0181\x05\u015D\xAA\x02\u0181\u0182\x03" + + "\x02\x02\x02\u0182\u0183\b\x03\x03\x02\u0183\x10\x03\x02\x02\x02\u0184" + + "\u0185\x05\u0147\x9F\x02\u0185\u0186\x05\u0159\xA8\x02\u0186\u0187\x05" + + "\u0161\xAC\x02\u0187\u0188\x05\u014F\xA3\x02\u0188\u0189\x05\u0143\x9D" + + "\x02\u0189\u018A\x05\u014D\xA2\x02\u018A\u018B\x03\x02\x02\x02\u018B\u018C" + + "\b\x04\x04\x02\u018C\x12\x03\x02\x02\x02\u018D\u018E\x05\u0147\x9F\x02" + + "\u018E\u018F\x05\u0169\xB0\x02\u018F\u0190\x05\u013F\x9B\x02\u0190\u0191" + + "\x05\u0155\xA6\x02\u0191\u0192\x03\x02\x02\x02\u0192\u0193\b\x05\x02\x02" + + "\u0193\x14\x03\x02\x02\x02\u0194\u0195\x05\u0147\x9F\x02\u0195\u0196\x05" + + "\u016D\xB2\x02\u0196\u0197\x05\u015D\xAA\x02\u0197\u0198\x05\u0155\xA6" + + "\x02\u0198\u0199\x05\u013F\x9B\x02\u0199\u019A\x05\u014F\xA3\x02\u019A" + + "\u019B\x05\u0159\xA8\x02\u019B\u019C\x03\x02\x02\x02\u019C\u019D\b\x06" + + "\x05\x02\u019D\x16\x03\x02\x02\x02\u019E\u019F\x05\u0149\xA0\x02\u019F" + + "\u01A0\x05\u0161\xAC\x02\u01A0\u01A1\x05\u015B\xA9\x02\u01A1\u01A2\x05" + + "\u0157\xA7\x02\u01A2\u01A3\x03\x02\x02\x02\u01A3\u01A4\b\x07\x06\x02\u01A4" + + "\x18\x03\x02\x02\x02\u01A5\u01A6\x05\u014B\xA1\x02\u01A6\u01A7\x05\u0161" + + "\xAC\x02\u01A7\u01A8\x05\u015B\xA9\x02\u01A8\u01A9\x05\u0153\xA5\x02\u01A9" + + "\u01AA\x03\x02\x02\x02\u01AA\u01AB\b\b\x02\x02\u01AB\x1A\x03\x02\x02\x02" + + "\u01AC\u01AD\x05\u014F\xA3\x02\u01AD\u01AE\x05\u0159\xA8\x02\u01AE\u01AF" + + "\x05\u0155\xA6\x02\u01AF\u01B0\x05\u014F\xA3\x02\u01B0\u01B1\x05\u0159" + + "\xA8\x02\u01B1\u01B2\x05\u0147\x9F\x02\u01B2\u01B3\x05\u0163\xAD\x02\u01B3" + + "\u01B4\x05\u0165\xAE\x02\u01B4\u01B5\x05\u013F\x9B\x02\u01B5\u01B6\x05" + + "\u0165\xAE\x02\u01B6\u01B7\x05\u0163\xAD\x02\u01B7\u01B8\x03\x02\x02\x02" + + "\u01B8\u01B9\b\t\x02\x02\u01B9\x1C\x03\x02\x02\x02\u01BA\u01BB\x05\u0153" + + "\xA5\x02\u01BB\u01BC\x05\u0147\x9F\x02\u01BC\u01BD\x05\u0147\x9F\x02\u01BD" + + "\u01BE\x05\u015D\xAA\x02\u01BE\u01BF\x03\x02\x02\x02\u01BF\u01C0\b\n\x03" + + "\x02\u01C0\x1E\x03\x02\x02\x02\u01C1\u01C2\x05\u0155\xA6\x02\u01C2\u01C3" + + "\x05\u014F\xA3\x02\u01C3\u01C4\x05\u0157\xA7\x02\u01C4\u01C5\x05\u014F" + + "\xA3\x02\u01C5\u01C6\x05\u0165\xAE\x02\u01C6\u01C7\x03\x02\x02\x02\u01C7" + + "\u01C8\b\v\x02\x02\u01C8 \x03\x02\x02\x02\u01C9\u01CA\x05\u0157\xA7\x02" + + "\u01CA\u01CB\x05\u0169\xB0\x02\u01CB\u01CC\x05U&\x02\u01CC\u01CD\x05\u0147" + + "\x9F\x02\u01CD\u01CE\x05\u016D\xB2\x02\u01CE\u01CF\x05\u015D\xAA\x02\u01CF" + + "\u01D0\x05\u013F\x9B\x02\u01D0\u01D1\x05\u0159\xA8\x02\u01D1\u01D2\x05" + + "\u0145\x9E\x02\u01D2\u01D3\x03\x02\x02\x02\u01D3\u01D4\b\f\x07\x02\u01D4" + + "\"\x03\x02\x02\x02\u01D5\u01D6\x05\u015D\xAA\x02\u01D6\u01D7\x05\u0161" + + "\xAC\x02\u01D7\u01D8\x05\u015B\xA9\x02\u01D8\u01D9\x05\u0151\xA4\x02\u01D9" + + "\u01DA\x05\u0147\x9F\x02\u01DA\u01DB\x05\u0143\x9D\x02\u01DB\u01DC\x05" + + "\u0165\xAE\x02\u01DC\u01DD\x03\x02\x02\x02\u01DD\u01DE\b\r\x03\x02\u01DE" + + "$\x03\x02\x02\x02\u01DF\u01E0\x05\u0161\xAC\x02\u01E0\u01E1\x05\u0147" + + "\x9F\x02\u01E1\u01E2\x05\u0159\xA8\x02\u01E2\u01E3\x05\u013F\x9B\x02\u01E3" + + "\u01E4\x05\u0157\xA7\x02\u01E4\u01E5\x05\u0147\x9F\x02\u01E5\u01E6\x03" + + "\x02\x02\x02\u01E6\u01E7\b\x0E\b\x02\u01E7&\x03\x02\x02\x02\u01E8\u01E9" + + "\x05\u0161\xAC\x02\u01E9\u01EA\x05\u015B\xA9\x02\u01EA\u01EB\x05\u016B" + + "\xB1\x02\u01EB\u01EC\x03\x02\x02\x02\u01EC\u01ED\b\x0F\x02\x02\u01ED(" + + "\x03\x02\x02\x02\u01EE\u01EF\x05\u0163\xAD\x02\u01EF\u01F0\x05\u014D\xA2" + + "\x02\u01F0\u01F1\x05\u015B\xA9\x02\u01F1\u01F2\x05\u016B\xB1\x02\u01F2" + + "\u01F3\x03\x02\x02\x02\u01F3\u01F4\b\x10\t\x02\u01F4*\x03\x02\x02\x02" + + "\u01F5\u01F6\x05\u0163\xAD\x02\u01F6\u01F7\x05\u015B\xA9\x02\u01F7\u01F8" + + "\x05\u0161\xAC\x02\u01F8\u01F9\x05\u0165\xAE\x02\u01F9\u01FA\x03\x02\x02" + + "\x02\u01FA\u01FB\b\x11\x02\x02\u01FB,\x03\x02\x02\x02\u01FC\u01FD\x05" + + "\u0163\xAD\x02\u01FD\u01FE\x05\u0165\xAE\x02\u01FE\u01FF\x05\u013F\x9B" + + "\x02\u01FF\u0200\x05\u0165\xAE\x02\u0200\u0201\x05\u0163\xAD\x02\u0201" + + "\u0202\x03\x02\x02\x02\u0202\u0203\b\x12\x02\x02\u0203.\x03\x02\x02\x02" + + "\u0204\u0205\x05\u016B\xB1\x02\u0205\u0206\x05\u014D\xA2\x02\u0206\u0207" + + "\x05\u0147\x9F\x02\u0207\u0208\x05\u0161\xAC\x02\u0208\u0209\x05\u0147" + + "\x9F\x02\u0209\u020A\x03\x02\x02\x02\u020A\u020B\b\x13\x02\x02\u020B0" + + "\x03\x02\x02\x02\u020C\u020E\n\x02\x02\x02\u020D\u020C\x03\x02\x02\x02" + + "\u020E\u020F\x03\x02\x02\x02\u020F\u020D\x03\x02\x02\x02\u020F\u0210\x03" + + "\x02\x02\x02\u0210\u0211\x03\x02\x02\x02\u0211\u0212\b\x14\x02\x02\u0212" + + "2\x03\x02\x02\x02\u0213\u0214\x071\x02\x02\u0214\u0215\x071\x02\x02\u0215" + + "\u0219\x03\x02\x02\x02\u0216\u0218\n\x03\x02\x02\u0217\u0216\x03\x02\x02" + + "\x02\u0218\u021B\x03\x02\x02\x02\u0219\u0217\x03\x02\x02\x02\u0219\u021A" + + "\x03\x02\x02\x02\u021A\u021D\x03\x02\x02\x02\u021B\u0219\x03\x02\x02\x02" + + "\u021C\u021E\x07\x0F\x02\x02\u021D\u021C\x03\x02\x02\x02\u021D\u021E\x03" + + "\x02\x02\x02\u021E\u0220\x03\x02\x02\x02\u021F\u0221\x07\f\x02\x02\u0220" + + "\u021F\x03\x02\x02\x02\u0220\u0221\x03\x02\x02\x02\u0221\u0222\x03\x02" + + "\x02\x02\u0222\u0223\b\x15\n\x02\u02234\x03\x02\x02\x02\u0224\u0225\x07" + + "1\x02\x02\u0225\u0226\x07,\x02\x02\u0226\u022B\x03\x02\x02\x02\u0227\u022A" + + "\x055\x16\x02\u0228\u022A\v\x02\x02\x02\u0229\u0227\x03\x02\x02\x02\u0229" + + "\u0228\x03\x02\x02\x02\u022A\u022D\x03\x02\x02\x02\u022B\u022C\x03\x02" + + "\x02\x02\u022B\u0229\x03\x02\x02\x02\u022C\u022E\x03\x02\x02\x02\u022D" + + "\u022B\x03\x02\x02\x02\u022E\u022F\x07,\x02\x02\u022F\u0230\x071\x02\x02" + + "\u0230\u0231\x03\x02\x02\x02\u0231\u0232\b\x16\n\x02\u02326\x03\x02\x02" + + "\x02\u0233\u0235\t\x04\x02\x02\u0234\u0233\x03\x02\x02\x02\u0235\u0236" + + "\x03\x02\x02\x02\u0236\u0234\x03\x02\x02\x02\u0236\u0237\x03\x02\x02\x02" + + "\u0237\u0238\x03\x02\x02\x02\u0238\u0239\b\x17\n\x02\u02398\x03\x02\x02" + + "\x02\u023A\u023B\x05\xA1L\x02\u023B\u023C\x03\x02\x02\x02\u023C\u023D" + + "\b\x18\v\x02\u023D\u023E\b\x18\f\x02\u023E:\x03\x02\x02\x02\u023F\u0240" + + "\x05C\x1D\x02\u0240\u0241\x03\x02\x02\x02\u0241\u0242\b\x19\r\x02\u0242" + + "\u0243\b\x19\x0E\x02\u0243<\x03\x02\x02\x02\u0244\u0245\x057\x17\x02\u0245" + + "\u0246\x03\x02\x02\x02\u0246\u0247\b\x1A\n\x02\u0247>\x03\x02\x02\x02" + + "\u0248\u0249\x053\x15\x02\u0249\u024A\x03\x02\x02\x02\u024A\u024B\b\x1B" + + "\n\x02\u024B@\x03\x02\x02\x02\u024C\u024D\x055\x16\x02\u024D\u024E\x03" + + "\x02\x02\x02\u024E\u024F\b\x1C\n\x02\u024FB\x03\x02\x02\x02\u0250\u0251" + + "\x07~\x02\x02\u0251\u0252\x03\x02\x02\x02\u0252\u0253\b\x1D\x0E\x02\u0253" + + "D\x03\x02\x02\x02\u0254\u0255\t\x05\x02\x02\u0255F\x03\x02\x02\x02\u0256" + + "\u0257\t\x06\x02\x02\u0257H\x03\x02\x02\x02\u0258\u0259\x07^\x02\x02\u0259" + + "\u025A\t\x07\x02\x02\u025AJ\x03\x02\x02\x02\u025B\u025C\n\b\x02\x02\u025C" + + "L\x03\x02\x02\x02\u025D\u025F\t\t\x02\x02\u025E\u0260\t\n\x02\x02\u025F" + + "\u025E\x03\x02\x02\x02\u025F\u0260\x03\x02\x02\x02\u0260\u0262\x03\x02" + + "\x02\x02\u0261\u0263\x05E\x1E\x02\u0262\u0261\x03\x02\x02\x02\u0263\u0264" + + "\x03\x02\x02\x02\u0264\u0262\x03\x02\x02\x02\u0264\u0265\x03\x02\x02\x02" + + "\u0265N\x03\x02\x02\x02\u0266\u0267\x07B\x02\x02\u0267P\x03\x02\x02\x02" + + "\u0268\u0269\x07b\x02\x02\u0269R\x03\x02\x02\x02\u026A\u026E\n\v\x02\x02" + + "\u026B\u026C\x07b\x02\x02\u026C\u026E\x07b\x02\x02\u026D\u026A\x03\x02" + + "\x02\x02\u026D\u026B\x03\x02\x02\x02\u026ET\x03\x02\x02\x02\u026F\u0270" + + "\x07a\x02\x02\u0270V\x03\x02\x02\x02\u0271\u0275\x05G\x1F\x02\u0272\u0275" + + "\x05E\x1E\x02\u0273\u0275\x05U&\x02\u0274\u0271\x03\x02\x02\x02\u0274" + + "\u0272\x03\x02\x02\x02\u0274\u0273\x03\x02\x02\x02\u0275X\x03\x02\x02" + + "\x02\u0276\u027B\x07$\x02\x02\u0277\u027A\x05I \x02\u0278\u027A\x05K!" + + "\x02\u0279\u0277\x03\x02\x02\x02\u0279\u0278\x03\x02\x02\x02\u027A\u027D" + + "\x03\x02\x02\x02\u027B\u0279\x03\x02\x02\x02\u027B\u027C\x03\x02\x02\x02" + + "\u027C\u027E\x03\x02\x02\x02\u027D\u027B\x03\x02\x02\x02\u027E\u0294\x07" + + "$\x02\x02\u027F\u0280\x07$\x02\x02\u0280\u0281\x07$\x02\x02\u0281\u0282" + + "\x07$\x02\x02\u0282\u0286\x03\x02\x02\x02\u0283\u0285\n\x03\x02\x02\u0284" + + "\u0283\x03\x02\x02\x02\u0285\u0288\x03\x02\x02\x02\u0286\u0287\x03\x02" + + "\x02\x02\u0286\u0284\x03\x02\x02\x02\u0287\u0289\x03\x02\x02\x02\u0288" + + "\u0286\x03\x02\x02\x02\u0289\u028A\x07$\x02\x02\u028A\u028B\x07$\x02\x02" + + "\u028B\u028C\x07$\x02\x02\u028C\u028E\x03\x02\x02\x02\u028D\u028F\x07" + + "$\x02\x02\u028E\u028D\x03\x02\x02\x02\u028E\u028F\x03\x02\x02\x02\u028F" + + "\u0291\x03\x02\x02\x02\u0290\u0292\x07$\x02\x02\u0291\u0290\x03\x02\x02" + + "\x02\u0291\u0292\x03\x02\x02\x02\u0292\u0294\x03\x02\x02\x02\u0293\u0276" + + "\x03\x02\x02\x02\u0293\u027F\x03\x02\x02\x02\u0294Z\x03\x02\x02\x02\u0295" + + "\u0297\x05E\x1E\x02\u0296\u0295\x03\x02\x02\x02\u0297\u0298\x03\x02\x02" + + "\x02\u0298\u0296\x03\x02\x02\x02\u0298\u0299\x03\x02\x02\x02\u0299\\\x03" + + "\x02\x02\x02\u029A\u029C\x05E\x1E\x02\u029B\u029A\x03\x02\x02\x02\u029C" + + "\u029D\x03\x02\x02\x02\u029D\u029B\x03\x02\x02\x02\u029D\u029E\x03\x02" + + "\x02\x02\u029E\u029F\x03\x02\x02\x02\u029F\u02A3\x05k1\x02\u02A0\u02A2" + + "\x05E\x1E\x02\u02A1\u02A0\x03\x02\x02\x02\u02A2\u02A5\x03\x02\x02\x02" + + "\u02A3\u02A1\x03\x02\x02\x02\u02A3\u02A4\x03\x02\x02\x02\u02A4\u02C5\x03" + + "\x02\x02\x02\u02A5\u02A3\x03\x02\x02\x02\u02A6\u02A8\x05k1\x02\u02A7\u02A9" + + "\x05E\x1E\x02\u02A8\u02A7\x03\x02\x02\x02\u02A9\u02AA\x03\x02\x02\x02" + + "\u02AA\u02A8\x03\x02\x02\x02\u02AA\u02AB\x03\x02\x02\x02\u02AB\u02C5\x03" + + "\x02\x02\x02\u02AC\u02AE\x05E\x1E\x02\u02AD\u02AC\x03\x02\x02\x02\u02AE" + + "\u02AF\x03\x02\x02\x02\u02AF\u02AD\x03\x02\x02\x02\u02AF\u02B0\x03\x02" + + "\x02\x02\u02B0\u02B8\x03\x02\x02\x02\u02B1\u02B5\x05k1\x02\u02B2\u02B4" + + "\x05E\x1E\x02\u02B3\u02B2\x03\x02\x02\x02\u02B4\u02B7\x03\x02\x02\x02" + + "\u02B5\u02B3\x03\x02\x02\x02\u02B5\u02B6\x03\x02\x02\x02\u02B6\u02B9\x03" + + "\x02\x02\x02\u02B7\u02B5\x03\x02\x02\x02\u02B8\u02B1\x03\x02\x02\x02\u02B8" + + "\u02B9\x03\x02\x02\x02\u02B9\u02BA\x03\x02\x02\x02\u02BA\u02BB\x05M\"" + + "\x02\u02BB\u02C5\x03\x02\x02\x02\u02BC\u02BE\x05k1\x02\u02BD\u02BF\x05" + + "E\x1E\x02\u02BE\u02BD\x03\x02\x02\x02\u02BF\u02C0\x03\x02\x02\x02\u02C0" + + "\u02BE\x03\x02\x02\x02\u02C0\u02C1\x03\x02\x02\x02\u02C1\u02C2\x03\x02" + + "\x02\x02\u02C2\u02C3\x05M\"\x02\u02C3\u02C5\x03\x02\x02\x02\u02C4\u029B" + + "\x03\x02\x02\x02\u02C4\u02A6\x03\x02\x02\x02\u02C4\u02AD\x03\x02\x02\x02" + + "\u02C4\u02BC\x03\x02\x02\x02\u02C5^\x03\x02\x02\x02\u02C6\u02C7\x05\u0141" + + "\x9C\x02\u02C7\u02C8\x05\u016F\xB3\x02\u02C8`\x03\x02\x02\x02\u02C9\u02CA" + + "\x05\u013F\x9B\x02\u02CA\u02CB\x05\u0159\xA8\x02\u02CB\u02CC\x05\u0145" + + "\x9E\x02\u02CCb\x03\x02\x02\x02\u02CD\u02CE\x05\u013F\x9B\x02\u02CE\u02CF" + + "\x05\u0163\xAD\x02\u02CF\u02D0\x05\u0143\x9D\x02\u02D0d\x03\x02\x02\x02" + + "\u02D1\u02D2\x07?\x02\x02\u02D2f\x03\x02\x02\x02\u02D3\u02D4\x07.\x02" + + "\x02\u02D4h\x03\x02\x02\x02\u02D5\u02D6\x05\u0145\x9E\x02\u02D6\u02D7" + + "\x05\u0147\x9F\x02\u02D7\u02D8\x05\u0163\xAD\x02\u02D8\u02D9\x05\u0143" + + "\x9D\x02\u02D9j\x03\x02\x02\x02\u02DA\u02DB\x070\x02\x02\u02DBl\x03\x02" + + "\x02\x02\u02DC\u02DD\x05\u0149\xA0\x02\u02DD\u02DE\x05\u013F\x9B\x02\u02DE" + + "\u02DF\x05\u0155\xA6\x02\u02DF\u02E0\x05\u0163\xAD\x02\u02E0\u02E1\x05" + + "\u0147\x9F\x02\u02E1n\x03\x02\x02\x02\u02E2\u02E3\x05\u0149\xA0\x02\u02E3" + + "\u02E4\x05\u014F\xA3\x02\u02E4\u02E5\x05\u0161\xAC\x02\u02E5\u02E6\x05" + + "\u0163\xAD\x02\u02E6\u02E7\x05\u0165\xAE\x02\u02E7p\x03\x02\x02\x02\u02E8" + + "\u02E9\x05\u0155\xA6\x02\u02E9\u02EA\x05\u013F\x9B\x02\u02EA\u02EB\x05" + + "\u0163\xAD\x02\u02EB\u02EC\x05\u0165\xAE\x02\u02ECr\x03\x02\x02\x02\u02ED" + + "\u02EE\x07*\x02\x02\u02EEt\x03\x02\x02\x02\u02EF\u02F0\x05\u014F\xA3\x02" + + "\u02F0\u02F1\x05\u0159\xA8\x02\u02F1v\x03\x02\x02\x02\u02F2\u02F3\x05" + + "\u014F\xA3\x02\u02F3\u02F4\x05\u0163\xAD\x02\u02F4x\x03\x02\x02\x02\u02F5" + + "\u02F6\x05\u0155\xA6\x02\u02F6\u02F7\x05\u014F\xA3\x02\u02F7\u02F8\x05" + + "\u0153\xA5\x02\u02F8\u02F9\x05\u0147\x9F\x02\u02F9z\x03\x02\x02\x02\u02FA" + + "\u02FB\x05\u0159\xA8\x02\u02FB\u02FC\x05\u015B\xA9\x02\u02FC\u02FD\x05" + + "\u0165\xAE\x02\u02FD|\x03\x02\x02\x02\u02FE\u02FF\x05\u0159\xA8\x02\u02FF" + + "\u0300\x05\u0167\xAF\x02\u0300\u0301\x05\u0155\xA6\x02\u0301\u0302\x05" + + "\u0155\xA6\x02\u0302~\x03\x02\x02\x02\u0303\u0304\x05\u0159\xA8\x02\u0304" + + "\u0305\x05\u0167\xAF\x02\u0305\u0306\x05\u0155\xA6\x02\u0306\u0307\x05" + + "\u0155\xA6\x02\u0307\u0308\x05\u0163\xAD\x02\u0308\x80\x03\x02\x02\x02" + + "\u0309\u030A\x05\u015B\xA9\x02\u030A\u030B\x05\u0161\xAC\x02\u030B\x82" + + "\x03\x02\x02\x02\u030C\u030D\x07A\x02\x02\u030D\x84\x03\x02\x02\x02\u030E" + + "\u030F\x05\u0161\xAC\x02\u030F\u0310\x05\u0155\xA6\x02\u0310\u0311\x05" + + "\u014F\xA3\x02\u0311\u0312\x05\u0153\xA5\x02\u0312\u0313\x05\u0147\x9F" + + "\x02\u0313\x86\x03\x02\x02\x02\u0314\u0315\x07+\x02\x02\u0315\x88\x03" + + "\x02\x02\x02\u0316\u0317\x05\u0165\xAE\x02\u0317\u0318\x05\u0161\xAC\x02" + + "\u0318\u0319\x05\u0167\xAF\x02\u0319\u031A\x05\u0147\x9F\x02\u031A\x8A" + + "\x03\x02\x02\x02\u031B\u031C\x07?\x02\x02\u031C\u031D\x07?\x02\x02\u031D" + + "\x8C\x03\x02\x02\x02\u031E\u031F\x07#\x02\x02\u031F\u0320\x07?\x02\x02" + + "\u0320\x8E\x03\x02\x02\x02\u0321\u0322\x07>\x02\x02\u0322\x90\x03\x02" + + "\x02\x02\u0323\u0324\x07>\x02\x02\u0324\u0325\x07?\x02\x02\u0325\x92\x03" + + "\x02\x02\x02\u0326\u0327\x07@\x02\x02\u0327\x94\x03\x02\x02\x02\u0328" + + "\u0329\x07@\x02\x02\u0329\u032A\x07?\x02\x02\u032A\x96\x03\x02\x02\x02" + + "\u032B\u032C\x07-\x02\x02\u032C\x98\x03\x02\x02\x02\u032D\u032E\x07/\x02" + + "\x02\u032E\x9A\x03\x02\x02\x02\u032F\u0330\x07,\x02\x02\u0330\x9C\x03" + + "\x02\x02\x02\u0331\u0332\x071\x02\x02\u0332\x9E\x03\x02\x02\x02\u0333" + + "\u0334\x07\'\x02\x02\u0334\xA0\x03\x02\x02\x02\u0335\u0336\x07]\x02\x02" + + "\u0336\u0337\x03\x02\x02\x02\u0337\u0338\bL\x02\x02\u0338\u0339\bL\x02" + + "\x02\u0339\xA2\x03\x02\x02\x02\u033A\u033B\x07_\x02\x02\u033B\u033C\x03" + + "\x02\x02\x02\u033C\u033D\bM\x0E\x02\u033D\u033E\bM\x0E\x02\u033E\xA4\x03" + + "\x02\x02\x02\u033F\u0343\x05G\x1F\x02\u0340\u0342\x05W\'\x02\u0341\u0340" + + "\x03\x02\x02\x02\u0342\u0345\x03\x02\x02\x02\u0343\u0341\x03\x02\x02\x02" + + "\u0343\u0344\x03\x02\x02\x02\u0344\u0350\x03\x02\x02\x02\u0345\u0343\x03" + + "\x02\x02\x02\u0346\u0349\x05U&\x02\u0347\u0349\x05O#\x02\u0348\u0346\x03" + + "\x02\x02\x02\u0348\u0347\x03\x02\x02\x02\u0349\u034B\x03\x02\x02\x02\u034A" + + "\u034C\x05W\'\x02\u034B\u034A\x03\x02\x02\x02\u034C\u034D\x03\x02\x02" + + "\x02\u034D\u034B\x03\x02\x02\x02\u034D\u034E\x03\x02\x02\x02\u034E\u0350" + + "\x03\x02\x02\x02\u034F\u033F\x03\x02\x02\x02\u034F\u0348\x03\x02\x02\x02" + + "\u0350\xA6\x03\x02\x02\x02\u0351\u0353\x05Q$\x02\u0352\u0354\x05S%\x02" + + "\u0353\u0352\x03\x02\x02\x02\u0354\u0355\x03\x02\x02\x02\u0355\u0353\x03" + + "\x02\x02\x02\u0355\u0356\x03\x02\x02\x02\u0356\u0357\x03\x02\x02\x02\u0357" + + "\u0358\x05Q$\x02\u0358\xA8\x03\x02\x02\x02\u0359\u035A\x053\x15\x02\u035A" + + "\u035B\x03\x02\x02\x02\u035B\u035C\bP\n\x02\u035C\xAA\x03\x02\x02\x02" + + "\u035D\u035E\x055\x16\x02\u035E\u035F\x03\x02\x02\x02\u035F\u0360\bQ\n" + + "\x02\u0360\xAC\x03\x02\x02\x02\u0361\u0362\x057\x17\x02\u0362\u0363\x03" + + "\x02\x02\x02\u0363\u0364\bR\n\x02\u0364\xAE\x03\x02\x02\x02\u0365\u0366" + + "\x05C\x1D\x02\u0366\u0367\x03\x02\x02\x02\u0367\u0368\bS\r\x02\u0368\u0369" + + "\bS\x0E\x02\u0369\xB0\x03\x02\x02\x02\u036A\u036B\x05\xA1L\x02\u036B\u036C" + + "\x03\x02\x02\x02\u036C\u036D\bT\v\x02\u036D\xB2\x03\x02\x02\x02\u036E" + + "\u036F\x05\xA3M\x02\u036F\u0370\x03\x02\x02\x02\u0370\u0371\bU\x0F\x02" + + "\u0371\xB4\x03\x02\x02\x02\u0372\u0373\x05g/\x02\u0373\u0374\x03\x02\x02" + + "\x02\u0374\u0375\bV\x10\x02\u0375\xB6\x03\x02\x02\x02\u0376\u0377\x05" + + "e.\x02\u0377\u0378\x03\x02\x02\x02\u0378\u0379\bW\x11\x02\u0379\xB8\x03" + + "\x02\x02\x02\u037A\u037B\x05\u0157\xA7\x02\u037B\u037C\x05\u0147\x9F\x02" + + "\u037C\u037D\x05\u0165\xAE\x02\u037D\u037E\x05\u013F\x9B\x02\u037E\u037F" + + "\x05\u0145\x9E\x02\u037F\u0380\x05\u013F\x9B\x02\u0380\u0381\x05\u0165" + + "\xAE\x02\u0381\u0382\x05\u013F\x9B\x02\u0382\xBA\x03\x02\x02\x02\u0383" + + "\u0387\n\f\x02\x02\u0384\u0385\x071\x02\x02\u0385\u0387\n\r\x02\x02\u0386" + + "\u0383\x03\x02\x02\x02\u0386\u0384\x03\x02\x02\x02\u0387\xBC\x03\x02\x02" + + "\x02\u0388\u038A\x05\xBBY\x02\u0389\u0388\x03\x02\x02\x02\u038A\u038B" + + "\x03\x02\x02\x02\u038B\u0389\x03\x02\x02\x02\u038B\u038C\x03\x02\x02\x02" + + "\u038C\xBE\x03\x02\x02\x02\u038D\u038E\x05\xA7O\x02\u038E\u038F\x03\x02" + + "\x02\x02\u038F\u0390\b[\x12\x02\u0390\xC0\x03\x02\x02\x02\u0391\u0392" + + "\x053\x15\x02\u0392\u0393\x03\x02\x02\x02\u0393\u0394\b\\\n\x02\u0394" + + "\xC2\x03\x02\x02\x02\u0395\u0396\x055\x16\x02\u0396\u0397\x03\x02\x02" + + "\x02\u0397\u0398\b]\n\x02\u0398\xC4\x03\x02\x02\x02\u0399\u039A\x057\x17" + + "\x02\u039A\u039B\x03\x02\x02\x02\u039B\u039C\b^\n\x02\u039C\xC6\x03\x02" + + "\x02\x02\u039D\u039E\x05C\x1D\x02\u039E\u039F\x03\x02\x02\x02\u039F\u03A0" + + "\b_\r\x02\u03A0\u03A1\b_\x0E\x02\u03A1\xC8\x03\x02\x02\x02\u03A2\u03A3" + + "\x05k1\x02\u03A3\u03A4\x03\x02\x02\x02\u03A4\u03A5\b`\x13\x02\u03A5\xCA" + + "\x03\x02\x02\x02\u03A6\u03A7\x05g/\x02\u03A7\u03A8\x03\x02\x02\x02\u03A8" + + "\u03A9\ba\x10\x02\u03A9\xCC\x03\x02\x02\x02\u03AA\u03AF\x05G\x1F\x02\u03AB" + + "\u03AF\x05E\x1E\x02\u03AC\u03AF\x05U&\x02\u03AD\u03AF\x05\x9BI\x02\u03AE" + + "\u03AA\x03\x02\x02\x02\u03AE\u03AB\x03\x02\x02\x02\u03AE\u03AC\x03\x02" + + "\x02\x02\u03AE\u03AD\x03\x02\x02\x02\u03AF\xCE\x03\x02\x02\x02\u03B0\u03B3" + + "\x05G\x1F\x02\u03B1\u03B3\x05\x9BI\x02\u03B2\u03B0\x03\x02\x02\x02\u03B2" + + "\u03B1\x03\x02\x02\x02\u03B3\u03B7\x03\x02\x02\x02\u03B4\u03B6\x05\xCD" + + "b\x02\u03B5\u03B4\x03\x02\x02\x02\u03B6\u03B9\x03\x02\x02\x02\u03B7\u03B5" + + "\x03\x02\x02\x02\u03B7\u03B8\x03\x02\x02\x02\u03B8\u03C4\x03\x02\x02\x02" + + "\u03B9\u03B7\x03\x02\x02\x02\u03BA\u03BD\x05U&\x02\u03BB\u03BD\x05O#\x02" + + "\u03BC\u03BA\x03\x02\x02\x02\u03BC\u03BB\x03\x02\x02\x02\u03BD\u03BF\x03" + + "\x02\x02\x02\u03BE\u03C0\x05\xCDb\x02\u03BF\u03BE\x03\x02\x02\x02\u03C0" + + "\u03C1\x03\x02\x02\x02\u03C1\u03BF\x03\x02\x02\x02\u03C1\u03C2\x03\x02" + + "\x02\x02\u03C2\u03C4\x03\x02\x02\x02\u03C3\u03B2\x03\x02\x02\x02\u03C3" + + "\u03BC\x03\x02\x02\x02\u03C4\xD0\x03\x02\x02\x02\u03C5\u03C6\x05\xCFc" + + "\x02\u03C6\u03C7\x03\x02\x02\x02\u03C7\u03C8\bd\x14\x02\u03C8\xD2\x03" + + "\x02\x02\x02\u03C9\u03CA\x05\xA7O\x02\u03CA\u03CB\x03\x02\x02\x02\u03CB" + + "\u03CC\be\x12\x02\u03CC\xD4\x03\x02\x02\x02\u03CD\u03CE\x053\x15\x02\u03CE" + + "\u03CF\x03\x02\x02\x02\u03CF\u03D0\bf\n\x02\u03D0\xD6\x03\x02\x02\x02" + + "\u03D1\u03D2\x055\x16\x02\u03D2\u03D3\x03\x02\x02\x02\u03D3\u03D4\bg\n" + + "\x02\u03D4\xD8\x03\x02\x02\x02\u03D5\u03D6\x057\x17\x02\u03D6\u03D7\x03" + + "\x02\x02\x02\u03D7\u03D8\bh\n\x02\u03D8\xDA\x03\x02\x02\x02\u03D9\u03DA" + + "\x05C\x1D\x02\u03DA\u03DB\x03\x02\x02\x02\u03DB\u03DC\bi\r\x02\u03DC\u03DD" + + "\bi\x0E\x02\u03DD\xDC\x03\x02\x02\x02\u03DE\u03DF\x05e.\x02\u03DF\u03E0" + + "\x03\x02\x02\x02\u03E0\u03E1\bj\x11\x02\u03E1\xDE\x03\x02\x02\x02\u03E2" + + "\u03E3\x05g/\x02\u03E3\u03E4\x03\x02\x02\x02\u03E4\u03E5\bk\x10\x02\u03E5" + + "\xE0\x03\x02\x02\x02\u03E6\u03E7\x05k1\x02\u03E7\u03E8\x03\x02\x02\x02" + + "\u03E8\u03E9\bl\x13\x02\u03E9\xE2\x03\x02\x02\x02\u03EA\u03EB\x05\u013F" + + "\x9B\x02\u03EB\u03EC\x05\u0163\xAD\x02\u03EC\xE4\x03\x02\x02\x02\u03ED" + + "\u03EE\x05\xA7O\x02\u03EE\u03EF\x03\x02\x02\x02\u03EF\u03F0\bn\x12\x02" + + "\u03F0\xE6\x03\x02\x02\x02\u03F1\u03F2\x05\xCFc\x02\u03F2\u03F3\x03\x02" + + "\x02\x02\u03F3\u03F4\bo\x14\x02\u03F4\xE8\x03\x02\x02\x02\u03F5\u03F6" + + "\x053\x15\x02\u03F6\u03F7\x03\x02\x02\x02\u03F7\u03F8\bp\n\x02\u03F8\xEA" + + "\x03\x02\x02\x02\u03F9\u03FA\x055\x16\x02\u03FA\u03FB\x03\x02\x02\x02" + + "\u03FB\u03FC\bq\n\x02\u03FC\xEC\x03\x02\x02\x02\u03FD\u03FE\x057\x17\x02" + + "\u03FE\u03FF\x03\x02\x02\x02\u03FF\u0400\br\n\x02\u0400\xEE\x03\x02\x02" + + "\x02\u0401\u0402\x05C\x1D\x02\u0402\u0403\x03\x02\x02\x02\u0403\u0404" + + "\bs\r\x02\u0404\u0405\bs\x0E\x02\u0405\xF0\x03\x02\x02\x02\u0406\u0407" + + "\x05\xA1L\x02\u0407\u0408\x03\x02\x02\x02\u0408\u0409\bt\v\x02\u0409\u040A" + + "\bt\x15\x02\u040A\xF2\x03\x02\x02\x02\u040B\u040C\x05\u015B\xA9\x02\u040C" + + "\u040D\x05\u0159\xA8\x02\u040D\u040E\x03\x02\x02\x02\u040E\u040F\bu\x16" + + "\x02\u040F\xF4\x03\x02\x02\x02\u0410\u0411\x05\u016B\xB1\x02\u0411\u0412" + + "\x05\u014F\xA3\x02\u0412\u0413\x05\u0165\xAE\x02\u0413\u0414\x05\u014D" + + "\xA2\x02\u0414\u0415\x03\x02\x02\x02\u0415\u0416\bv\x16\x02\u0416\xF6" + + "\x03\x02\x02\x02\u0417\u0418\n\x0E\x02\x02\u0418\xF8\x03\x02\x02\x02\u0419" + + "\u041C\x05G\x1F\x02\u041A\u041C\x05E\x1E\x02\u041B\u0419\x03\x02\x02\x02" + + "\u041B\u041A\x03\x02\x02\x02\u041C\u0420\x03\x02\x02\x02\u041D\u041F\x05" + + "\xF7w\x02\u041E\u041D\x03\x02\x02\x02\u041F\u0422\x03\x02\x02\x02\u0420" + + "\u041E\x03\x02\x02\x02\u0420\u0421\x03\x02\x02\x02\u0421\xFA\x03\x02\x02" + + "\x02\u0422\u0420\x03\x02\x02\x02\u0423\u0424\x05\xA7O\x02\u0424\u0425" + + "\x03\x02\x02\x02\u0425\u0426\by\x12\x02\u0426\xFC\x03\x02\x02\x02\u0427" + + "\u0428\x05\xF9x\x02\u0428\u0429\x03\x02\x02\x02\u0429\u042A\bz\x17\x02" + + "\u042A\xFE\x03\x02\x02\x02\u042B\u042C\x053\x15\x02\u042C\u042D\x03\x02" + + "\x02\x02\u042D\u042E\b{\n\x02\u042E\u0100\x03\x02\x02\x02\u042F\u0430" + + "\x055\x16\x02\u0430\u0431\x03\x02\x02\x02\u0431\u0432\b|\n\x02\u0432\u0102" + + "\x03\x02\x02\x02\u0433\u0434\x057\x17\x02\u0434\u0435\x03\x02\x02\x02" + + "\u0435\u0436\b}\n\x02\u0436\u0104\x03\x02\x02\x02\u0437\u0438\x05C\x1D" + + "\x02\u0438\u0439\x03\x02\x02\x02\u0439\u043A\b~\r\x02\u043A\u043B\b~\x0E" + + "\x02\u043B\u043C\b~\x0E\x02\u043C\u0106\x03\x02\x02\x02\u043D\u043E\x05" + + "e.\x02\u043E\u043F\x03\x02\x02\x02\u043F\u0440\b\x7F\x11\x02\u0440\u0108" + + "\x03\x02\x02\x02\u0441\u0442\x05g/\x02\u0442\u0443\x03\x02\x02\x02\u0443" + + "\u0444\b\x80\x10\x02\u0444\u010A\x03\x02\x02\x02\u0445\u0446\x05k1\x02" + + "\u0446\u0447\x03\x02\x02\x02\u0447\u0448\b\x81\x13\x02\u0448\u010C\x03" + + "\x02\x02\x02\u0449\u044A\x05\xF5v\x02\u044A\u044B\x03\x02\x02\x02\u044B" + + "\u044C\b\x82\x18\x02\u044C\u010E\x03\x02\x02\x02"; private static readonly _serializedATNSegment2: string = - "\u046D\u046E\x03\x02\x02\x02\u046E\u046F\b\x8E\n\x02\u046F\u0125\x03\x02" + - "\x02\x02\u0470\u0471\x054\x16\x02\u0471\u0472\x03\x02\x02\x02\u0472\u0473" + - "\b\x8F\n\x02\u0473\u0127\x03\x02\x02\x02\u0474\u0475\x056\x17\x02\u0475" + - "\u0476\x03\x02\x02\x02\u0476\u0477\b\x90\n\x02\u0477\u0129\x03\x02\x02" + - "\x02\u0478\u0479\t\x0E\x02\x02\u0479\u012B\x03\x02\x02\x02\u047A\u047B" + - "\t\x0F\x02\x02\u047B\u012D\x03\x02\x02\x02\u047C\u047D\t\x10\x02\x02\u047D" + - "\u012F\x03\x02\x02\x02\u047E\u047F\t\x11\x02\x02\u047F\u0131\x03\x02\x02" + - "\x02\u0480\u0481\t\t\x02\x02\u0481\u0133\x03\x02\x02\x02\u0482\u0483\t" + - "\x12\x02\x02\u0483\u0135\x03\x02\x02\x02\u0484\u0485\t\x13\x02\x02\u0485" + - "\u0137\x03\x02\x02\x02\u0486\u0487\t\x14\x02\x02\u0487\u0139\x03\x02\x02" + - "\x02\u0488\u0489\t\x15\x02\x02\u0489\u013B\x03\x02\x02\x02\u048A\u048B" + - "\t\x16\x02\x02\u048B\u013D\x03\x02\x02\x02\u048C\u048D\t\x17\x02\x02\u048D" + - "\u013F\x03\x02\x02\x02\u048E\u048F\t\x18\x02\x02\u048F\u0141\x03\x02\x02" + - "\x02\u0490\u0491\t\x19\x02\x02\u0491\u0143\x03\x02\x02\x02\u0492\u0493" + - "\t\x1A\x02\x02\u0493\u0145\x03\x02\x02\x02\u0494\u0495\t\x1B\x02\x02\u0495" + - "\u0147\x03\x02\x02\x02\u0496\u0497\t\x1C\x02\x02\u0497\u0149\x03\x02\x02" + - "\x02\u0498\u0499\t\x1D\x02\x02\u0499\u014B\x03\x02\x02\x02\u049A\u049B" + - "\t\x1E\x02\x02\u049B\u014D\x03\x02\x02\x02\u049C\u049D\t\x1F\x02\x02\u049D" + - "\u014F\x03\x02\x02\x02\u049E\u049F\t \x02\x02\u049F\u0151\x03\x02\x02" + - "\x02\u04A0\u04A1\t!\x02\x02\u04A1\u0153\x03\x02\x02\x02\u04A2\u04A3\t" + - "\"\x02\x02\u04A3\u0155\x03\x02\x02\x02\u04A4\u04A5\t#\x02\x02\u04A5\u0157" + - "\x03\x02\x02\x02\u04A6\u04A7\t$\x02\x02\u04A7\u0159\x03\x02\x02\x02\u04A8" + - "\u04A9\t%\x02\x02\u04A9\u015B\x03\x02\x02\x02\u04AA\u04AB\t&\x02\x02\u04AB" + - "\u015D\x03\x02\x02\x023\x02\x03\x04\x05\x06\x07\b\t\n\v\u01FA\u0204\u0208" + - "\u020B\u0214\u0216\u0221\u024A\u024F\u0258\u025F\u0264\u0266\u0271\u0279" + - "\u027C\u027E\u0283\u0288\u028E\u0295\u029A\u02A0\u02A3\u02AB\u02AF\u032E" + - "\u0333\u0338\u033A\u0340\u0375\u037A\u039D\u03A1\u03A6\u03AB\u03B0\u03B2" + - "\x19\x07\x04\x02\x07\x06\x02\x07\b\x02\x07\x03\x02\x07\x05\x02\x07\n\x02" + - "\x07\x07\x02\x07\v\x02\x02\x03\x02\tA\x02\x07\x02\x02\t\x1C\x02\x06\x02" + - "\x02\tB\x02\t$\x02\t#\x02\tD\x02\t&\x02\tM\x02\x07\t\x02\tI\x02\tV\x02" + - "\tC\x02"; + "\u044D\u044E\x05\xCFc\x02\u044E\u044F\x03\x02\x02\x02\u044F\u0450\b\x83" + + "\x14\x02\u0450\u0110\x03\x02\x02\x02\u0451\u0452\x05\xA7O\x02\u0452\u0453" + + "\x03\x02\x02\x02\u0453\u0454\b\x84\x12\x02\u0454\u0112\x03\x02\x02\x02" + + "\u0455\u0456\x053\x15\x02\u0456\u0457\x03\x02\x02\x02\u0457\u0458\b\x85" + + "\n\x02\u0458\u0114\x03\x02\x02\x02\u0459\u045A\x055\x16\x02\u045A\u045B" + + "\x03\x02\x02\x02\u045B\u045C\b\x86\n\x02\u045C\u0116\x03\x02\x02\x02\u045D" + + "\u045E\x057\x17\x02\u045E\u045F\x03\x02\x02\x02\u045F\u0460\b\x87\n\x02" + + "\u0460\u0118\x03\x02\x02\x02\u0461\u0462\x05C\x1D\x02\u0462\u0463\x03" + + "\x02\x02\x02\u0463\u0464\b\x88\r\x02\u0464\u0465\b\x88\x0E\x02\u0465\u011A" + + "\x03\x02\x02\x02\u0466\u0467\x05k1\x02\u0467\u0468\x03\x02\x02\x02\u0468" + + "\u0469\b\x89\x13\x02\u0469\u011C\x03\x02\x02\x02\u046A\u046B\x05\xA7O" + + "\x02\u046B\u046C\x03\x02\x02\x02\u046C\u046D\b\x8A\x12\x02\u046D\u011E" + + "\x03\x02\x02\x02\u046E\u046F\x05\xA5N\x02\u046F\u0470\x03\x02\x02\x02" + + "\u0470\u0471\b\x8B\x19\x02\u0471\u0120\x03\x02\x02\x02\u0472\u0473\x05" + + "3\x15\x02\u0473\u0474\x03\x02\x02\x02\u0474\u0475\b\x8C\n\x02\u0475\u0122" + + "\x03\x02\x02\x02\u0476\u0477\x055\x16\x02\u0477\u0478\x03\x02\x02\x02" + + "\u0478\u0479\b\x8D\n\x02\u0479\u0124\x03\x02\x02\x02\u047A\u047B\x057" + + "\x17\x02\u047B\u047C\x03\x02\x02\x02\u047C\u047D\b\x8E\n\x02\u047D\u0126" + + "\x03\x02\x02\x02\u047E\u047F\x05C\x1D\x02\u047F\u0480\x03\x02\x02\x02" + + "\u0480\u0481\b\x8F\r\x02\u0481\u0482\b\x8F\x0E\x02\u0482\u0128\x03\x02" + + "\x02\x02\u0483\u0484\x05\u014F\xA3\x02\u0484\u0485\x05\u0159\xA8\x02\u0485" + + "\u0486\x05\u0149\xA0\x02\u0486\u0487\x05\u015B\xA9\x02\u0487\u012A\x03" + + "\x02\x02\x02\u0488\u0489\x05\u0149\xA0\x02\u0489\u048A\x05\u0167\xAF\x02" + + "\u048A\u048B\x05\u0159\xA8\x02\u048B\u048C\x05\u0143\x9D\x02\u048C\u048D" + + "\x05\u0165\xAE\x02\u048D\u048E\x05\u014F\xA3\x02\u048E\u048F\x05\u015B" + + "\xA9\x02\u048F\u0490\x05\u0159\xA8\x02\u0490\u0491\x05\u0163\xAD\x02\u0491" + + "\u012C\x03\x02\x02\x02\u0492\u0493\x053\x15\x02\u0493\u0494\x03\x02\x02" + + "\x02\u0494\u0495\b\x92\n\x02\u0495\u012E\x03\x02\x02\x02\u0496\u0497\x05" + + "5\x16\x02\u0497\u0498\x03\x02\x02\x02\u0498\u0499\b\x93\n\x02\u0499\u0130" + + "\x03\x02\x02\x02\u049A\u049B\x057\x17\x02\u049B\u049C\x03\x02\x02\x02" + + "\u049C\u049D\b\x94\n\x02\u049D\u0132\x03\x02\x02\x02\u049E\u049F\x05\xA3" + + "M\x02\u049F\u04A0\x03\x02\x02\x02\u04A0\u04A1\b\x95\x0F\x02\u04A1\u04A2" + + "\b\x95\x0E\x02\u04A2\u0134\x03\x02\x02\x02\u04A3\u04A4\x07<\x02\x02\u04A4" + + "\u0136\x03\x02\x02\x02\u04A5\u04AB\x05O#\x02\u04A6\u04AB\x05E\x1E\x02" + + "\u04A7\u04AB\x05k1\x02\u04A8\u04AB\x05G\x1F\x02\u04A9\u04AB\x05U&\x02" + + "\u04AA\u04A5\x03\x02\x02\x02\u04AA\u04A6\x03\x02\x02\x02\u04AA\u04A7\x03" + + "\x02\x02\x02\u04AA\u04A8\x03\x02\x02\x02\u04AA\u04A9\x03\x02\x02\x02\u04AB" + + "\u04AC\x03\x02\x02\x02\u04AC\u04AA\x03\x02\x02\x02\u04AC\u04AD\x03\x02" + + "\x02\x02\u04AD\u0138\x03\x02\x02\x02\u04AE\u04AF\x053\x15\x02\u04AF\u04B0" + + "\x03\x02\x02\x02\u04B0\u04B1\b\x98\n\x02\u04B1\u013A\x03\x02\x02\x02\u04B2" + + "\u04B3\x055\x16\x02\u04B3\u04B4\x03\x02\x02\x02\u04B4\u04B5\b\x99\n\x02" + + "\u04B5\u013C\x03\x02\x02\x02\u04B6\u04B7\x057\x17\x02\u04B7\u04B8\x03" + + "\x02\x02\x02\u04B8\u04B9\b\x9A\n\x02\u04B9\u013E\x03\x02\x02\x02\u04BA" + + "\u04BB\t\x0F\x02\x02\u04BB\u0140\x03\x02\x02\x02\u04BC\u04BD\t\x10\x02" + + "\x02\u04BD\u0142\x03\x02\x02\x02\u04BE\u04BF\t\x11\x02\x02\u04BF\u0144" + + "\x03\x02\x02\x02\u04C0\u04C1\t\x12\x02\x02\u04C1\u0146\x03\x02\x02\x02" + + "\u04C2\u04C3\t\t\x02\x02\u04C3\u0148\x03\x02\x02\x02\u04C4\u04C5\t\x13" + + "\x02\x02\u04C5\u014A\x03\x02\x02\x02\u04C6\u04C7\t\x14\x02\x02\u04C7\u014C" + + "\x03\x02\x02\x02\u04C8\u04C9\t\x15\x02\x02\u04C9\u014E\x03\x02\x02\x02" + + "\u04CA\u04CB\t\x16\x02\x02\u04CB\u0150\x03\x02\x02\x02\u04CC\u04CD\t\x17" + + "\x02\x02\u04CD\u0152\x03\x02\x02\x02\u04CE\u04CF\t\x18\x02\x02\u04CF\u0154" + + "\x03\x02\x02\x02\u04D0\u04D1\t\x19\x02\x02\u04D1\u0156\x03\x02\x02\x02" + + "\u04D2\u04D3\t\x1A\x02\x02\u04D3\u0158\x03\x02\x02\x02\u04D4\u04D5\t\x1B" + + "\x02\x02\u04D5\u015A\x03\x02\x02\x02\u04D6\u04D7\t\x1C\x02\x02\u04D7\u015C" + + "\x03\x02\x02\x02\u04D8\u04D9\t\x1D\x02\x02\u04D9\u015E\x03\x02\x02\x02" + + "\u04DA\u04DB\t\x1E\x02\x02\u04DB\u0160\x03\x02\x02\x02\u04DC\u04DD\t\x1F" + + "\x02\x02\u04DD\u0162\x03\x02\x02\x02\u04DE\u04DF\t \x02\x02\u04DF\u0164" + + "\x03\x02\x02\x02\u04E0\u04E1\t!\x02\x02\u04E1\u0166\x03\x02\x02\x02\u04E2" + + "\u04E3\t\"\x02\x02\u04E3\u0168\x03\x02\x02\x02\u04E4\u04E5\t#\x02\x02" + + "\u04E5\u016A\x03\x02\x02\x02\u04E6\u04E7\t$\x02\x02\u04E7\u016C\x03\x02" + + "\x02\x02\u04E8\u04E9\t%\x02\x02\u04E9\u016E\x03\x02\x02\x02\u04EA\u04EB" + + "\t&\x02\x02\u04EB\u0170\x03\x02\x02\x02\u04EC\u04ED\t\'\x02\x02\u04ED" + + "\u0172\x03\x02\x02\x028\x02\x03\x04\x05\x06\x07\b\t\n\v\f\u020F\u0219" + + "\u021D\u0220\u0229\u022B\u0236\u025F\u0264\u026D\u0274\u0279\u027B\u0286" + + "\u028E\u0291\u0293\u0298\u029D\u02A3\u02AA\u02AF\u02B5\u02B8\u02C0\u02C4" + + "\u0343\u0348\u034D\u034F\u0355\u0386\u038B\u03AE\u03B2\u03B7\u03BC\u03C1" + + "\u03C3\u041B\u0420\u04AA\u04AC\x1A\x07\x04\x02\x07\x06\x02\x07\b\x02\x07" + + "\x03\x02\x07\x05\x02\x07\n\x02\x07\x07\x02\x07\v\x02\x02\x03\x02\tA\x02" + + "\x07\x02\x02\t\x1C\x02\x06\x02\x02\tB\x02\t$\x02\t#\x02\tD\x02\t&\x02" + + "\tM\x02\x07\f\x02\x07\t\x02\tW\x02\tV\x02\tC\x02"; public static readonly _serializedATN: string = Utils.join( [ esql_lexer._serializedATNSegment0, diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.g4 b/packages/kbn-monaco/src/esql/antlr/esql_parser.g4 index 9577d28e90254..f8a4e16512ffd 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.g4 +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.g4 @@ -141,7 +141,7 @@ identifier ; identifierPattern - : PROJECT_UNQUOTED_IDENTIFIER + : UNQUOTED_ID_PATTERN | QUOTED_IDENTIFIER ; @@ -246,9 +246,13 @@ showCommand ; enrichCommand - : ENRICH policyName=fromIdentifier (ON matchField=qualifiedNamePattern)? (WITH enrichWithClause (COMMA enrichWithClause)*)? + : ENRICH setting* policyName=ENRICH_POLICY_NAME (ON matchField=qualifiedNamePattern)? (WITH enrichWithClause (COMMA enrichWithClause)*)? ; enrichWithClause : (newName=qualifiedNamePattern ASSIGN)? enrichField=qualifiedNamePattern + ; + +setting + : OPENING_BRACKET name=SETTING COLON value=SETTING CLOSING_BRACKET ; \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.interp b/packages/kbn-monaco/src/esql/antlr/esql_parser.interp index 6c8870cecd9cd..a0bbea2588493 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.interp +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.interp @@ -98,6 +98,12 @@ null null null null +null +':' +null +null +null +null token symbolic names: null @@ -175,7 +181,7 @@ FROM_UNQUOTED_IDENTIFIER FROM_LINE_COMMENT FROM_MULTILINE_COMMENT FROM_WS -PROJECT_UNQUOTED_IDENTIFIER +UNQUOTED_ID_PATTERN PROJECT_LINE_COMMENT PROJECT_MULTILINE_COMMENT PROJECT_WS @@ -185,6 +191,7 @@ RENAME_MULTILINE_COMMENT RENAME_WS ON WITH +ENRICH_POLICY_NAME ENRICH_LINE_COMMENT ENRICH_MULTILINE_COMMENT ENRICH_WS @@ -199,6 +206,11 @@ FUNCTIONS SHOW_LINE_COMMENT SHOW_MULTILINE_COMMENT SHOW_WS +COLON +SETTING +SETTING_LINE_COMMENT +SETTTING_MULTILINE_COMMENT +SETTING_WS rule names: singleStatement @@ -250,7 +262,8 @@ subqueryExpression showCommand enrichCommand enrichWithClause +setting atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 100, 521, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 110, 10, 3, 12, 3, 14, 3, 113, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 119, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 134, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 146, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 153, 10, 7, 12, 7, 14, 7, 156, 11, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 163, 10, 7, 3, 7, 3, 7, 5, 7, 167, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 175, 10, 7, 12, 7, 14, 7, 178, 11, 7, 3, 8, 3, 8, 5, 8, 182, 10, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 189, 10, 8, 3, 8, 3, 8, 3, 8, 5, 8, 194, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 201, 10, 9, 3, 10, 3, 10, 3, 10, 3, 10, 5, 10, 207, 10, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 215, 10, 10, 12, 10, 14, 10, 218, 11, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 227, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 235, 10, 12, 12, 12, 14, 12, 238, 11, 12, 5, 12, 240, 10, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 7, 14, 250, 10, 14, 12, 14, 14, 14, 253, 11, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 260, 10, 15, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 266, 10, 16, 12, 16, 14, 16, 269, 11, 16, 3, 16, 5, 16, 272, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 279, 10, 17, 12, 17, 14, 17, 282, 11, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 5, 19, 291, 10, 19, 3, 19, 3, 19, 5, 19, 295, 10, 19, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 301, 10, 20, 3, 21, 3, 21, 3, 21, 7, 21, 306, 10, 21, 12, 21, 14, 21, 309, 11, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 7, 23, 316, 10, 23, 12, 23, 14, 23, 319, 11, 23, 3, 24, 3, 24, 3, 24, 7, 24, 324, 10, 24, 12, 24, 14, 24, 327, 11, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 346, 10, 27, 12, 27, 14, 27, 349, 11, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 357, 10, 27, 12, 27, 14, 27, 360, 11, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 368, 10, 27, 12, 27, 14, 27, 371, 11, 27, 3, 27, 3, 27, 5, 27, 375, 10, 27, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 384, 10, 29, 12, 29, 14, 29, 387, 11, 29, 3, 30, 3, 30, 5, 30, 391, 10, 30, 3, 30, 3, 30, 5, 30, 395, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 401, 10, 31, 12, 31, 14, 31, 404, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 410, 10, 31, 12, 31, 14, 31, 413, 11, 31, 5, 31, 415, 10, 31, 3, 32, 3, 32, 3, 32, 3, 32, 7, 32, 421, 10, 32, 12, 32, 14, 32, 424, 11, 32, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 430, 10, 33, 12, 33, 14, 33, 433, 11, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 443, 10, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 7, 38, 455, 10, 38, 12, 38, 14, 38, 458, 11, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 468, 10, 41, 3, 42, 5, 42, 471, 10, 42, 3, 42, 3, 42, 3, 43, 5, 43, 476, 10, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 495, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 501, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 7, 49, 507, 10, 49, 12, 49, 14, 49, 510, 11, 49, 5, 49, 512, 10, 49, 3, 50, 3, 50, 3, 50, 5, 50, 517, 10, 50, 3, 50, 3, 50, 3, 50, 2, 2, 5, 4, 12, 18, 51, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 80, 2, 82, 2, 84, 2, 86, 2, 88, 2, 90, 2, 92, 2, 94, 2, 96, 2, 98, 2, 2, 11, 3, 2, 60, 61, 3, 2, 62, 64, 4, 2, 68, 68, 73, 73, 3, 2, 67, 68, 4, 2, 68, 68, 77, 77, 4, 2, 34, 34, 37, 37, 3, 2, 40, 41, 4, 2, 39, 39, 53, 53, 3, 2, 54, 59, 2, 550, 2, 100, 3, 2, 2, 2, 4, 103, 3, 2, 2, 2, 6, 118, 3, 2, 2, 2, 8, 133, 3, 2, 2, 2, 10, 135, 3, 2, 2, 2, 12, 166, 3, 2, 2, 2, 14, 193, 3, 2, 2, 2, 16, 200, 3, 2, 2, 2, 18, 206, 3, 2, 2, 2, 20, 226, 3, 2, 2, 2, 22, 228, 3, 2, 2, 2, 24, 243, 3, 2, 2, 2, 26, 246, 3, 2, 2, 2, 28, 259, 3, 2, 2, 2, 30, 261, 3, 2, 2, 2, 32, 273, 3, 2, 2, 2, 34, 285, 3, 2, 2, 2, 36, 288, 3, 2, 2, 2, 38, 296, 3, 2, 2, 2, 40, 302, 3, 2, 2, 2, 42, 310, 3, 2, 2, 2, 44, 312, 3, 2, 2, 2, 46, 320, 3, 2, 2, 2, 48, 328, 3, 2, 2, 2, 50, 330, 3, 2, 2, 2, 52, 374, 3, 2, 2, 2, 54, 376, 3, 2, 2, 2, 56, 379, 3, 2, 2, 2, 58, 388, 3, 2, 2, 2, 60, 414, 3, 2, 2, 2, 62, 416, 3, 2, 2, 2, 64, 425, 3, 2, 2, 2, 66, 434, 3, 2, 2, 2, 68, 438, 3, 2, 2, 2, 70, 444, 3, 2, 2, 2, 72, 448, 3, 2, 2, 2, 74, 451, 3, 2, 2, 2, 76, 459, 3, 2, 2, 2, 78, 463, 3, 2, 2, 2, 80, 467, 3, 2, 2, 2, 82, 470, 3, 2, 2, 2, 84, 475, 3, 2, 2, 2, 86, 479, 3, 2, 2, 2, 88, 481, 3, 2, 2, 2, 90, 483, 3, 2, 2, 2, 92, 486, 3, 2, 2, 2, 94, 494, 3, 2, 2, 2, 96, 496, 3, 2, 2, 2, 98, 516, 3, 2, 2, 2, 100, 101, 5, 4, 3, 2, 101, 102, 7, 2, 2, 3, 102, 3, 3, 2, 2, 2, 103, 104, 8, 3, 1, 2, 104, 105, 5, 6, 4, 2, 105, 111, 3, 2, 2, 2, 106, 107, 12, 3, 2, 2, 107, 108, 7, 28, 2, 2, 108, 110, 5, 8, 5, 2, 109, 106, 3, 2, 2, 2, 110, 113, 3, 2, 2, 2, 111, 109, 3, 2, 2, 2, 111, 112, 3, 2, 2, 2, 112, 5, 3, 2, 2, 2, 113, 111, 3, 2, 2, 2, 114, 119, 5, 90, 46, 2, 115, 119, 5, 30, 16, 2, 116, 119, 5, 24, 13, 2, 117, 119, 5, 94, 48, 2, 118, 114, 3, 2, 2, 2, 118, 115, 3, 2, 2, 2, 118, 116, 3, 2, 2, 2, 118, 117, 3, 2, 2, 2, 119, 7, 3, 2, 2, 2, 120, 134, 5, 34, 18, 2, 121, 134, 5, 38, 20, 2, 122, 134, 5, 54, 28, 2, 123, 134, 5, 60, 31, 2, 124, 134, 5, 56, 29, 2, 125, 134, 5, 36, 19, 2, 126, 134, 5, 10, 6, 2, 127, 134, 5, 62, 32, 2, 128, 134, 5, 64, 33, 2, 129, 134, 5, 68, 35, 2, 130, 134, 5, 70, 36, 2, 131, 134, 5, 96, 49, 2, 132, 134, 5, 72, 37, 2, 133, 120, 3, 2, 2, 2, 133, 121, 3, 2, 2, 2, 133, 122, 3, 2, 2, 2, 133, 123, 3, 2, 2, 2, 133, 124, 3, 2, 2, 2, 133, 125, 3, 2, 2, 2, 133, 126, 3, 2, 2, 2, 133, 127, 3, 2, 2, 2, 133, 128, 3, 2, 2, 2, 133, 129, 3, 2, 2, 2, 133, 130, 3, 2, 2, 2, 133, 131, 3, 2, 2, 2, 133, 132, 3, 2, 2, 2, 134, 9, 3, 2, 2, 2, 135, 136, 7, 20, 2, 2, 136, 137, 5, 12, 7, 2, 137, 11, 3, 2, 2, 2, 138, 139, 8, 7, 1, 2, 139, 140, 7, 46, 2, 2, 140, 167, 5, 12, 7, 9, 141, 167, 5, 16, 9, 2, 142, 167, 5, 14, 8, 2, 143, 145, 5, 16, 9, 2, 144, 146, 7, 46, 2, 2, 145, 144, 3, 2, 2, 2, 145, 146, 3, 2, 2, 2, 146, 147, 3, 2, 2, 2, 147, 148, 7, 43, 2, 2, 148, 149, 7, 42, 2, 2, 149, 154, 5, 16, 9, 2, 150, 151, 7, 36, 2, 2, 151, 153, 5, 16, 9, 2, 152, 150, 3, 2, 2, 2, 153, 156, 3, 2, 2, 2, 154, 152, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 157, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 157, 158, 7, 52, 2, 2, 158, 167, 3, 2, 2, 2, 159, 160, 5, 16, 9, 2, 160, 162, 7, 44, 2, 2, 161, 163, 7, 46, 2, 2, 162, 161, 3, 2, 2, 2, 162, 163, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 165, 7, 47, 2, 2, 165, 167, 3, 2, 2, 2, 166, 138, 3, 2, 2, 2, 166, 141, 3, 2, 2, 2, 166, 142, 3, 2, 2, 2, 166, 143, 3, 2, 2, 2, 166, 159, 3, 2, 2, 2, 167, 176, 3, 2, 2, 2, 168, 169, 12, 6, 2, 2, 169, 170, 7, 33, 2, 2, 170, 175, 5, 12, 7, 7, 171, 172, 12, 5, 2, 2, 172, 173, 7, 49, 2, 2, 173, 175, 5, 12, 7, 6, 174, 168, 3, 2, 2, 2, 174, 171, 3, 2, 2, 2, 175, 178, 3, 2, 2, 2, 176, 174, 3, 2, 2, 2, 176, 177, 3, 2, 2, 2, 177, 13, 3, 2, 2, 2, 178, 176, 3, 2, 2, 2, 179, 181, 5, 16, 9, 2, 180, 182, 7, 46, 2, 2, 181, 180, 3, 2, 2, 2, 181, 182, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 184, 7, 45, 2, 2, 184, 185, 5, 86, 44, 2, 185, 194, 3, 2, 2, 2, 186, 188, 5, 16, 9, 2, 187, 189, 7, 46, 2, 2, 188, 187, 3, 2, 2, 2, 188, 189, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 191, 7, 51, 2, 2, 191, 192, 5, 86, 44, 2, 192, 194, 3, 2, 2, 2, 193, 179, 3, 2, 2, 2, 193, 186, 3, 2, 2, 2, 194, 15, 3, 2, 2, 2, 195, 201, 5, 18, 10, 2, 196, 197, 5, 18, 10, 2, 197, 198, 5, 88, 45, 2, 198, 199, 5, 18, 10, 2, 199, 201, 3, 2, 2, 2, 200, 195, 3, 2, 2, 2, 200, 196, 3, 2, 2, 2, 201, 17, 3, 2, 2, 2, 202, 203, 8, 10, 1, 2, 203, 207, 5, 20, 11, 2, 204, 205, 9, 2, 2, 2, 205, 207, 5, 18, 10, 5, 206, 202, 3, 2, 2, 2, 206, 204, 3, 2, 2, 2, 207, 216, 3, 2, 2, 2, 208, 209, 12, 4, 2, 2, 209, 210, 9, 3, 2, 2, 210, 215, 5, 18, 10, 5, 211, 212, 12, 3, 2, 2, 212, 213, 9, 2, 2, 2, 213, 215, 5, 18, 10, 4, 214, 208, 3, 2, 2, 2, 214, 211, 3, 2, 2, 2, 215, 218, 3, 2, 2, 2, 216, 214, 3, 2, 2, 2, 216, 217, 3, 2, 2, 2, 217, 19, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 219, 227, 5, 52, 27, 2, 220, 227, 5, 44, 23, 2, 221, 227, 5, 22, 12, 2, 222, 223, 7, 42, 2, 2, 223, 224, 5, 12, 7, 2, 224, 225, 7, 52, 2, 2, 225, 227, 3, 2, 2, 2, 226, 219, 3, 2, 2, 2, 226, 220, 3, 2, 2, 2, 226, 221, 3, 2, 2, 2, 226, 222, 3, 2, 2, 2, 227, 21, 3, 2, 2, 2, 228, 229, 5, 48, 25, 2, 229, 239, 7, 42, 2, 2, 230, 240, 7, 62, 2, 2, 231, 236, 5, 12, 7, 2, 232, 233, 7, 36, 2, 2, 233, 235, 5, 12, 7, 2, 234, 232, 3, 2, 2, 2, 235, 238, 3, 2, 2, 2, 236, 234, 3, 2, 2, 2, 236, 237, 3, 2, 2, 2, 237, 240, 3, 2, 2, 2, 238, 236, 3, 2, 2, 2, 239, 230, 3, 2, 2, 2, 239, 231, 3, 2, 2, 2, 239, 240, 3, 2, 2, 2, 240, 241, 3, 2, 2, 2, 241, 242, 7, 52, 2, 2, 242, 23, 3, 2, 2, 2, 243, 244, 7, 16, 2, 2, 244, 245, 5, 26, 14, 2, 245, 25, 3, 2, 2, 2, 246, 251, 5, 28, 15, 2, 247, 248, 7, 36, 2, 2, 248, 250, 5, 28, 15, 2, 249, 247, 3, 2, 2, 2, 250, 253, 3, 2, 2, 2, 251, 249, 3, 2, 2, 2, 251, 252, 3, 2, 2, 2, 252, 27, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 254, 260, 5, 12, 7, 2, 255, 256, 5, 44, 23, 2, 256, 257, 7, 35, 2, 2, 257, 258, 5, 12, 7, 2, 258, 260, 3, 2, 2, 2, 259, 254, 3, 2, 2, 2, 259, 255, 3, 2, 2, 2, 260, 29, 3, 2, 2, 2, 261, 262, 7, 8, 2, 2, 262, 267, 5, 42, 22, 2, 263, 264, 7, 36, 2, 2, 264, 266, 5, 42, 22, 2, 265, 263, 3, 2, 2, 2, 266, 269, 3, 2, 2, 2, 267, 265, 3, 2, 2, 2, 267, 268, 3, 2, 2, 2, 268, 271, 3, 2, 2, 2, 269, 267, 3, 2, 2, 2, 270, 272, 5, 32, 17, 2, 271, 270, 3, 2, 2, 2, 271, 272, 3, 2, 2, 2, 272, 31, 3, 2, 2, 2, 273, 274, 7, 65, 2, 2, 274, 275, 7, 72, 2, 2, 275, 280, 5, 42, 22, 2, 276, 277, 7, 36, 2, 2, 277, 279, 5, 42, 22, 2, 278, 276, 3, 2, 2, 2, 279, 282, 3, 2, 2, 2, 280, 278, 3, 2, 2, 2, 280, 281, 3, 2, 2, 2, 281, 283, 3, 2, 2, 2, 282, 280, 3, 2, 2, 2, 283, 284, 7, 66, 2, 2, 284, 33, 3, 2, 2, 2, 285, 286, 7, 6, 2, 2, 286, 287, 5, 26, 14, 2, 287, 35, 3, 2, 2, 2, 288, 290, 7, 19, 2, 2, 289, 291, 5, 26, 14, 2, 290, 289, 3, 2, 2, 2, 290, 291, 3, 2, 2, 2, 291, 294, 3, 2, 2, 2, 292, 293, 7, 32, 2, 2, 293, 295, 5, 40, 21, 2, 294, 292, 3, 2, 2, 2, 294, 295, 3, 2, 2, 2, 295, 37, 3, 2, 2, 2, 296, 297, 7, 10, 2, 2, 297, 300, 5, 26, 14, 2, 298, 299, 7, 32, 2, 2, 299, 301, 5, 40, 21, 2, 300, 298, 3, 2, 2, 2, 300, 301, 3, 2, 2, 2, 301, 39, 3, 2, 2, 2, 302, 307, 5, 44, 23, 2, 303, 304, 7, 36, 2, 2, 304, 306, 5, 44, 23, 2, 305, 303, 3, 2, 2, 2, 306, 309, 3, 2, 2, 2, 307, 305, 3, 2, 2, 2, 307, 308, 3, 2, 2, 2, 308, 41, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 310, 311, 9, 4, 2, 2, 311, 43, 3, 2, 2, 2, 312, 317, 5, 48, 25, 2, 313, 314, 7, 38, 2, 2, 314, 316, 5, 48, 25, 2, 315, 313, 3, 2, 2, 2, 316, 319, 3, 2, 2, 2, 317, 315, 3, 2, 2, 2, 317, 318, 3, 2, 2, 2, 318, 45, 3, 2, 2, 2, 319, 317, 3, 2, 2, 2, 320, 325, 5, 50, 26, 2, 321, 322, 7, 38, 2, 2, 322, 324, 5, 50, 26, 2, 323, 321, 3, 2, 2, 2, 324, 327, 3, 2, 2, 2, 325, 323, 3, 2, 2, 2, 325, 326, 3, 2, 2, 2, 326, 47, 3, 2, 2, 2, 327, 325, 3, 2, 2, 2, 328, 329, 9, 5, 2, 2, 329, 49, 3, 2, 2, 2, 330, 331, 9, 6, 2, 2, 331, 51, 3, 2, 2, 2, 332, 375, 7, 47, 2, 2, 333, 334, 5, 84, 43, 2, 334, 335, 7, 67, 2, 2, 335, 375, 3, 2, 2, 2, 336, 375, 5, 82, 42, 2, 337, 375, 5, 84, 43, 2, 338, 375, 5, 78, 40, 2, 339, 375, 7, 50, 2, 2, 340, 375, 5, 86, 44, 2, 341, 342, 7, 65, 2, 2, 342, 347, 5, 80, 41, 2, 343, 344, 7, 36, 2, 2, 344, 346, 5, 80, 41, 2, 345, 343, 3, 2, 2, 2, 346, 349, 3, 2, 2, 2, 347, 345, 3, 2, 2, 2, 347, 348, 3, 2, 2, 2, 348, 350, 3, 2, 2, 2, 349, 347, 3, 2, 2, 2, 350, 351, 7, 66, 2, 2, 351, 375, 3, 2, 2, 2, 352, 353, 7, 65, 2, 2, 353, 358, 5, 78, 40, 2, 354, 355, 7, 36, 2, 2, 355, 357, 5, 78, 40, 2, 356, 354, 3, 2, 2, 2, 357, 360, 3, 2, 2, 2, 358, 356, 3, 2, 2, 2, 358, 359, 3, 2, 2, 2, 359, 361, 3, 2, 2, 2, 360, 358, 3, 2, 2, 2, 361, 362, 7, 66, 2, 2, 362, 375, 3, 2, 2, 2, 363, 364, 7, 65, 2, 2, 364, 369, 5, 86, 44, 2, 365, 366, 7, 36, 2, 2, 366, 368, 5, 86, 44, 2, 367, 365, 3, 2, 2, 2, 368, 371, 3, 2, 2, 2, 369, 367, 3, 2, 2, 2, 369, 370, 3, 2, 2, 2, 370, 372, 3, 2, 2, 2, 371, 369, 3, 2, 2, 2, 372, 373, 7, 66, 2, 2, 373, 375, 3, 2, 2, 2, 374, 332, 3, 2, 2, 2, 374, 333, 3, 2, 2, 2, 374, 336, 3, 2, 2, 2, 374, 337, 3, 2, 2, 2, 374, 338, 3, 2, 2, 2, 374, 339, 3, 2, 2, 2, 374, 340, 3, 2, 2, 2, 374, 341, 3, 2, 2, 2, 374, 352, 3, 2, 2, 2, 374, 363, 3, 2, 2, 2, 375, 53, 3, 2, 2, 2, 376, 377, 7, 12, 2, 2, 377, 378, 7, 30, 2, 2, 378, 55, 3, 2, 2, 2, 379, 380, 7, 18, 2, 2, 380, 385, 5, 58, 30, 2, 381, 382, 7, 36, 2, 2, 382, 384, 5, 58, 30, 2, 383, 381, 3, 2, 2, 2, 384, 387, 3, 2, 2, 2, 385, 383, 3, 2, 2, 2, 385, 386, 3, 2, 2, 2, 386, 57, 3, 2, 2, 2, 387, 385, 3, 2, 2, 2, 388, 390, 5, 12, 7, 2, 389, 391, 9, 7, 2, 2, 390, 389, 3, 2, 2, 2, 390, 391, 3, 2, 2, 2, 391, 394, 3, 2, 2, 2, 392, 393, 7, 48, 2, 2, 393, 395, 9, 8, 2, 2, 394, 392, 3, 2, 2, 2, 394, 395, 3, 2, 2, 2, 395, 59, 3, 2, 2, 2, 396, 397, 7, 11, 2, 2, 397, 402, 5, 46, 24, 2, 398, 399, 7, 36, 2, 2, 399, 401, 5, 46, 24, 2, 400, 398, 3, 2, 2, 2, 401, 404, 3, 2, 2, 2, 402, 400, 3, 2, 2, 2, 402, 403, 3, 2, 2, 2, 403, 415, 3, 2, 2, 2, 404, 402, 3, 2, 2, 2, 405, 406, 7, 14, 2, 2, 406, 411, 5, 46, 24, 2, 407, 408, 7, 36, 2, 2, 408, 410, 5, 46, 24, 2, 409, 407, 3, 2, 2, 2, 410, 413, 3, 2, 2, 2, 411, 409, 3, 2, 2, 2, 411, 412, 3, 2, 2, 2, 412, 415, 3, 2, 2, 2, 413, 411, 3, 2, 2, 2, 414, 396, 3, 2, 2, 2, 414, 405, 3, 2, 2, 2, 415, 61, 3, 2, 2, 2, 416, 417, 7, 4, 2, 2, 417, 422, 5, 46, 24, 2, 418, 419, 7, 36, 2, 2, 419, 421, 5, 46, 24, 2, 420, 418, 3, 2, 2, 2, 421, 424, 3, 2, 2, 2, 422, 420, 3, 2, 2, 2, 422, 423, 3, 2, 2, 2, 423, 63, 3, 2, 2, 2, 424, 422, 3, 2, 2, 2, 425, 426, 7, 15, 2, 2, 426, 431, 5, 66, 34, 2, 427, 428, 7, 36, 2, 2, 428, 430, 5, 66, 34, 2, 429, 427, 3, 2, 2, 2, 430, 433, 3, 2, 2, 2, 431, 429, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 65, 3, 2, 2, 2, 433, 431, 3, 2, 2, 2, 434, 435, 5, 46, 24, 2, 435, 436, 7, 81, 2, 2, 436, 437, 5, 46, 24, 2, 437, 67, 3, 2, 2, 2, 438, 439, 7, 3, 2, 2, 439, 440, 5, 20, 11, 2, 440, 442, 5, 86, 44, 2, 441, 443, 5, 74, 38, 2, 442, 441, 3, 2, 2, 2, 442, 443, 3, 2, 2, 2, 443, 69, 3, 2, 2, 2, 444, 445, 7, 9, 2, 2, 445, 446, 5, 20, 11, 2, 446, 447, 5, 86, 44, 2, 447, 71, 3, 2, 2, 2, 448, 449, 7, 13, 2, 2, 449, 450, 5, 44, 23, 2, 450, 73, 3, 2, 2, 2, 451, 456, 5, 76, 39, 2, 452, 453, 7, 36, 2, 2, 453, 455, 5, 76, 39, 2, 454, 452, 3, 2, 2, 2, 455, 458, 3, 2, 2, 2, 456, 454, 3, 2, 2, 2, 456, 457, 3, 2, 2, 2, 457, 75, 3, 2, 2, 2, 458, 456, 3, 2, 2, 2, 459, 460, 5, 48, 25, 2, 460, 461, 7, 35, 2, 2, 461, 462, 5, 52, 27, 2, 462, 77, 3, 2, 2, 2, 463, 464, 9, 9, 2, 2, 464, 79, 3, 2, 2, 2, 465, 468, 5, 82, 42, 2, 466, 468, 5, 84, 43, 2, 467, 465, 3, 2, 2, 2, 467, 466, 3, 2, 2, 2, 468, 81, 3, 2, 2, 2, 469, 471, 9, 2, 2, 2, 470, 469, 3, 2, 2, 2, 470, 471, 3, 2, 2, 2, 471, 472, 3, 2, 2, 2, 472, 473, 7, 31, 2, 2, 473, 83, 3, 2, 2, 2, 474, 476, 9, 2, 2, 2, 475, 474, 3, 2, 2, 2, 475, 476, 3, 2, 2, 2, 476, 477, 3, 2, 2, 2, 477, 478, 7, 30, 2, 2, 478, 85, 3, 2, 2, 2, 479, 480, 7, 29, 2, 2, 480, 87, 3, 2, 2, 2, 481, 482, 9, 10, 2, 2, 482, 89, 3, 2, 2, 2, 483, 484, 7, 7, 2, 2, 484, 485, 5, 92, 47, 2, 485, 91, 3, 2, 2, 2, 486, 487, 7, 65, 2, 2, 487, 488, 5, 4, 3, 2, 488, 489, 7, 66, 2, 2, 489, 93, 3, 2, 2, 2, 490, 491, 7, 17, 2, 2, 491, 495, 7, 96, 2, 2, 492, 493, 7, 17, 2, 2, 493, 495, 7, 97, 2, 2, 494, 490, 3, 2, 2, 2, 494, 492, 3, 2, 2, 2, 495, 95, 3, 2, 2, 2, 496, 497, 7, 5, 2, 2, 497, 500, 5, 42, 22, 2, 498, 499, 7, 85, 2, 2, 499, 501, 5, 46, 24, 2, 500, 498, 3, 2, 2, 2, 500, 501, 3, 2, 2, 2, 501, 511, 3, 2, 2, 2, 502, 503, 7, 86, 2, 2, 503, 508, 5, 98, 50, 2, 504, 505, 7, 36, 2, 2, 505, 507, 5, 98, 50, 2, 506, 504, 3, 2, 2, 2, 507, 510, 3, 2, 2, 2, 508, 506, 3, 2, 2, 2, 508, 509, 3, 2, 2, 2, 509, 512, 3, 2, 2, 2, 510, 508, 3, 2, 2, 2, 511, 502, 3, 2, 2, 2, 511, 512, 3, 2, 2, 2, 512, 97, 3, 2, 2, 2, 513, 514, 5, 46, 24, 2, 514, 515, 7, 35, 2, 2, 515, 517, 3, 2, 2, 2, 516, 513, 3, 2, 2, 2, 516, 517, 3, 2, 2, 2, 517, 518, 3, 2, 2, 2, 518, 519, 5, 46, 24, 2, 519, 99, 3, 2, 2, 2, 54, 111, 118, 133, 145, 154, 162, 166, 174, 176, 181, 188, 193, 200, 206, 214, 216, 226, 236, 239, 251, 259, 267, 271, 280, 290, 294, 300, 307, 317, 325, 347, 358, 369, 374, 385, 390, 394, 402, 411, 414, 422, 431, 442, 456, 467, 470, 475, 494, 500, 508, 511, 516] \ No newline at end of file +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 106, 535, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 112, 10, 3, 12, 3, 14, 3, 115, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 121, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 136, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 148, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 155, 10, 7, 12, 7, 14, 7, 158, 11, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 165, 10, 7, 3, 7, 3, 7, 5, 7, 169, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 177, 10, 7, 12, 7, 14, 7, 180, 11, 7, 3, 8, 3, 8, 5, 8, 184, 10, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 191, 10, 8, 3, 8, 3, 8, 3, 8, 5, 8, 196, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 203, 10, 9, 3, 10, 3, 10, 3, 10, 3, 10, 5, 10, 209, 10, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 217, 10, 10, 12, 10, 14, 10, 220, 11, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 229, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 237, 10, 12, 12, 12, 14, 12, 240, 11, 12, 5, 12, 242, 10, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 7, 14, 252, 10, 14, 12, 14, 14, 14, 255, 11, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 262, 10, 15, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 268, 10, 16, 12, 16, 14, 16, 271, 11, 16, 3, 16, 5, 16, 274, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 281, 10, 17, 12, 17, 14, 17, 284, 11, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 5, 19, 293, 10, 19, 3, 19, 3, 19, 5, 19, 297, 10, 19, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 303, 10, 20, 3, 21, 3, 21, 3, 21, 7, 21, 308, 10, 21, 12, 21, 14, 21, 311, 11, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 7, 23, 318, 10, 23, 12, 23, 14, 23, 321, 11, 23, 3, 24, 3, 24, 3, 24, 7, 24, 326, 10, 24, 12, 24, 14, 24, 329, 11, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 348, 10, 27, 12, 27, 14, 27, 351, 11, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 359, 10, 27, 12, 27, 14, 27, 362, 11, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 370, 10, 27, 12, 27, 14, 27, 373, 11, 27, 3, 27, 3, 27, 5, 27, 377, 10, 27, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 386, 10, 29, 12, 29, 14, 29, 389, 11, 29, 3, 30, 3, 30, 5, 30, 393, 10, 30, 3, 30, 3, 30, 5, 30, 397, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 403, 10, 31, 12, 31, 14, 31, 406, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 412, 10, 31, 12, 31, 14, 31, 415, 11, 31, 5, 31, 417, 10, 31, 3, 32, 3, 32, 3, 32, 3, 32, 7, 32, 423, 10, 32, 12, 32, 14, 32, 426, 11, 32, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 432, 10, 33, 12, 33, 14, 33, 435, 11, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 445, 10, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 7, 38, 457, 10, 38, 12, 38, 14, 38, 460, 11, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 470, 10, 41, 3, 42, 5, 42, 473, 10, 42, 3, 42, 3, 42, 3, 43, 5, 43, 478, 10, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 497, 10, 48, 3, 49, 3, 49, 7, 49, 501, 10, 49, 12, 49, 14, 49, 504, 11, 49, 3, 49, 3, 49, 3, 49, 5, 49, 509, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 7, 49, 515, 10, 49, 12, 49, 14, 49, 518, 11, 49, 5, 49, 520, 10, 49, 3, 50, 3, 50, 3, 50, 5, 50, 525, 10, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 2, 2, 5, 4, 12, 18, 52, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 80, 2, 82, 2, 84, 2, 86, 2, 88, 2, 90, 2, 92, 2, 94, 2, 96, 2, 98, 2, 100, 2, 2, 11, 3, 2, 60, 61, 3, 2, 62, 64, 4, 2, 68, 68, 73, 73, 3, 2, 67, 68, 4, 2, 68, 68, 77, 77, 4, 2, 34, 34, 37, 37, 3, 2, 40, 41, 4, 2, 39, 39, 53, 53, 3, 2, 54, 59, 2, 564, 2, 102, 3, 2, 2, 2, 4, 105, 3, 2, 2, 2, 6, 120, 3, 2, 2, 2, 8, 135, 3, 2, 2, 2, 10, 137, 3, 2, 2, 2, 12, 168, 3, 2, 2, 2, 14, 195, 3, 2, 2, 2, 16, 202, 3, 2, 2, 2, 18, 208, 3, 2, 2, 2, 20, 228, 3, 2, 2, 2, 22, 230, 3, 2, 2, 2, 24, 245, 3, 2, 2, 2, 26, 248, 3, 2, 2, 2, 28, 261, 3, 2, 2, 2, 30, 263, 3, 2, 2, 2, 32, 275, 3, 2, 2, 2, 34, 287, 3, 2, 2, 2, 36, 290, 3, 2, 2, 2, 38, 298, 3, 2, 2, 2, 40, 304, 3, 2, 2, 2, 42, 312, 3, 2, 2, 2, 44, 314, 3, 2, 2, 2, 46, 322, 3, 2, 2, 2, 48, 330, 3, 2, 2, 2, 50, 332, 3, 2, 2, 2, 52, 376, 3, 2, 2, 2, 54, 378, 3, 2, 2, 2, 56, 381, 3, 2, 2, 2, 58, 390, 3, 2, 2, 2, 60, 416, 3, 2, 2, 2, 62, 418, 3, 2, 2, 2, 64, 427, 3, 2, 2, 2, 66, 436, 3, 2, 2, 2, 68, 440, 3, 2, 2, 2, 70, 446, 3, 2, 2, 2, 72, 450, 3, 2, 2, 2, 74, 453, 3, 2, 2, 2, 76, 461, 3, 2, 2, 2, 78, 465, 3, 2, 2, 2, 80, 469, 3, 2, 2, 2, 82, 472, 3, 2, 2, 2, 84, 477, 3, 2, 2, 2, 86, 481, 3, 2, 2, 2, 88, 483, 3, 2, 2, 2, 90, 485, 3, 2, 2, 2, 92, 488, 3, 2, 2, 2, 94, 496, 3, 2, 2, 2, 96, 498, 3, 2, 2, 2, 98, 524, 3, 2, 2, 2, 100, 528, 3, 2, 2, 2, 102, 103, 5, 4, 3, 2, 103, 104, 7, 2, 2, 3, 104, 3, 3, 2, 2, 2, 105, 106, 8, 3, 1, 2, 106, 107, 5, 6, 4, 2, 107, 113, 3, 2, 2, 2, 108, 109, 12, 3, 2, 2, 109, 110, 7, 28, 2, 2, 110, 112, 5, 8, 5, 2, 111, 108, 3, 2, 2, 2, 112, 115, 3, 2, 2, 2, 113, 111, 3, 2, 2, 2, 113, 114, 3, 2, 2, 2, 114, 5, 3, 2, 2, 2, 115, 113, 3, 2, 2, 2, 116, 121, 5, 90, 46, 2, 117, 121, 5, 30, 16, 2, 118, 121, 5, 24, 13, 2, 119, 121, 5, 94, 48, 2, 120, 116, 3, 2, 2, 2, 120, 117, 3, 2, 2, 2, 120, 118, 3, 2, 2, 2, 120, 119, 3, 2, 2, 2, 121, 7, 3, 2, 2, 2, 122, 136, 5, 34, 18, 2, 123, 136, 5, 38, 20, 2, 124, 136, 5, 54, 28, 2, 125, 136, 5, 60, 31, 2, 126, 136, 5, 56, 29, 2, 127, 136, 5, 36, 19, 2, 128, 136, 5, 10, 6, 2, 129, 136, 5, 62, 32, 2, 130, 136, 5, 64, 33, 2, 131, 136, 5, 68, 35, 2, 132, 136, 5, 70, 36, 2, 133, 136, 5, 96, 49, 2, 134, 136, 5, 72, 37, 2, 135, 122, 3, 2, 2, 2, 135, 123, 3, 2, 2, 2, 135, 124, 3, 2, 2, 2, 135, 125, 3, 2, 2, 2, 135, 126, 3, 2, 2, 2, 135, 127, 3, 2, 2, 2, 135, 128, 3, 2, 2, 2, 135, 129, 3, 2, 2, 2, 135, 130, 3, 2, 2, 2, 135, 131, 3, 2, 2, 2, 135, 132, 3, 2, 2, 2, 135, 133, 3, 2, 2, 2, 135, 134, 3, 2, 2, 2, 136, 9, 3, 2, 2, 2, 137, 138, 7, 20, 2, 2, 138, 139, 5, 12, 7, 2, 139, 11, 3, 2, 2, 2, 140, 141, 8, 7, 1, 2, 141, 142, 7, 46, 2, 2, 142, 169, 5, 12, 7, 9, 143, 169, 5, 16, 9, 2, 144, 169, 5, 14, 8, 2, 145, 147, 5, 16, 9, 2, 146, 148, 7, 46, 2, 2, 147, 146, 3, 2, 2, 2, 147, 148, 3, 2, 2, 2, 148, 149, 3, 2, 2, 2, 149, 150, 7, 43, 2, 2, 150, 151, 7, 42, 2, 2, 151, 156, 5, 16, 9, 2, 152, 153, 7, 36, 2, 2, 153, 155, 5, 16, 9, 2, 154, 152, 3, 2, 2, 2, 155, 158, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 159, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 159, 160, 7, 52, 2, 2, 160, 169, 3, 2, 2, 2, 161, 162, 5, 16, 9, 2, 162, 164, 7, 44, 2, 2, 163, 165, 7, 46, 2, 2, 164, 163, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 166, 3, 2, 2, 2, 166, 167, 7, 47, 2, 2, 167, 169, 3, 2, 2, 2, 168, 140, 3, 2, 2, 2, 168, 143, 3, 2, 2, 2, 168, 144, 3, 2, 2, 2, 168, 145, 3, 2, 2, 2, 168, 161, 3, 2, 2, 2, 169, 178, 3, 2, 2, 2, 170, 171, 12, 6, 2, 2, 171, 172, 7, 33, 2, 2, 172, 177, 5, 12, 7, 7, 173, 174, 12, 5, 2, 2, 174, 175, 7, 49, 2, 2, 175, 177, 5, 12, 7, 6, 176, 170, 3, 2, 2, 2, 176, 173, 3, 2, 2, 2, 177, 180, 3, 2, 2, 2, 178, 176, 3, 2, 2, 2, 178, 179, 3, 2, 2, 2, 179, 13, 3, 2, 2, 2, 180, 178, 3, 2, 2, 2, 181, 183, 5, 16, 9, 2, 182, 184, 7, 46, 2, 2, 183, 182, 3, 2, 2, 2, 183, 184, 3, 2, 2, 2, 184, 185, 3, 2, 2, 2, 185, 186, 7, 45, 2, 2, 186, 187, 5, 86, 44, 2, 187, 196, 3, 2, 2, 2, 188, 190, 5, 16, 9, 2, 189, 191, 7, 46, 2, 2, 190, 189, 3, 2, 2, 2, 190, 191, 3, 2, 2, 2, 191, 192, 3, 2, 2, 2, 192, 193, 7, 51, 2, 2, 193, 194, 5, 86, 44, 2, 194, 196, 3, 2, 2, 2, 195, 181, 3, 2, 2, 2, 195, 188, 3, 2, 2, 2, 196, 15, 3, 2, 2, 2, 197, 203, 5, 18, 10, 2, 198, 199, 5, 18, 10, 2, 199, 200, 5, 88, 45, 2, 200, 201, 5, 18, 10, 2, 201, 203, 3, 2, 2, 2, 202, 197, 3, 2, 2, 2, 202, 198, 3, 2, 2, 2, 203, 17, 3, 2, 2, 2, 204, 205, 8, 10, 1, 2, 205, 209, 5, 20, 11, 2, 206, 207, 9, 2, 2, 2, 207, 209, 5, 18, 10, 5, 208, 204, 3, 2, 2, 2, 208, 206, 3, 2, 2, 2, 209, 218, 3, 2, 2, 2, 210, 211, 12, 4, 2, 2, 211, 212, 9, 3, 2, 2, 212, 217, 5, 18, 10, 5, 213, 214, 12, 3, 2, 2, 214, 215, 9, 2, 2, 2, 215, 217, 5, 18, 10, 4, 216, 210, 3, 2, 2, 2, 216, 213, 3, 2, 2, 2, 217, 220, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 19, 3, 2, 2, 2, 220, 218, 3, 2, 2, 2, 221, 229, 5, 52, 27, 2, 222, 229, 5, 44, 23, 2, 223, 229, 5, 22, 12, 2, 224, 225, 7, 42, 2, 2, 225, 226, 5, 12, 7, 2, 226, 227, 7, 52, 2, 2, 227, 229, 3, 2, 2, 2, 228, 221, 3, 2, 2, 2, 228, 222, 3, 2, 2, 2, 228, 223, 3, 2, 2, 2, 228, 224, 3, 2, 2, 2, 229, 21, 3, 2, 2, 2, 230, 231, 5, 48, 25, 2, 231, 241, 7, 42, 2, 2, 232, 242, 7, 62, 2, 2, 233, 238, 5, 12, 7, 2, 234, 235, 7, 36, 2, 2, 235, 237, 5, 12, 7, 2, 236, 234, 3, 2, 2, 2, 237, 240, 3, 2, 2, 2, 238, 236, 3, 2, 2, 2, 238, 239, 3, 2, 2, 2, 239, 242, 3, 2, 2, 2, 240, 238, 3, 2, 2, 2, 241, 232, 3, 2, 2, 2, 241, 233, 3, 2, 2, 2, 241, 242, 3, 2, 2, 2, 242, 243, 3, 2, 2, 2, 243, 244, 7, 52, 2, 2, 244, 23, 3, 2, 2, 2, 245, 246, 7, 16, 2, 2, 246, 247, 5, 26, 14, 2, 247, 25, 3, 2, 2, 2, 248, 253, 5, 28, 15, 2, 249, 250, 7, 36, 2, 2, 250, 252, 5, 28, 15, 2, 251, 249, 3, 2, 2, 2, 252, 255, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 253, 254, 3, 2, 2, 2, 254, 27, 3, 2, 2, 2, 255, 253, 3, 2, 2, 2, 256, 262, 5, 12, 7, 2, 257, 258, 5, 44, 23, 2, 258, 259, 7, 35, 2, 2, 259, 260, 5, 12, 7, 2, 260, 262, 3, 2, 2, 2, 261, 256, 3, 2, 2, 2, 261, 257, 3, 2, 2, 2, 262, 29, 3, 2, 2, 2, 263, 264, 7, 8, 2, 2, 264, 269, 5, 42, 22, 2, 265, 266, 7, 36, 2, 2, 266, 268, 5, 42, 22, 2, 267, 265, 3, 2, 2, 2, 268, 271, 3, 2, 2, 2, 269, 267, 3, 2, 2, 2, 269, 270, 3, 2, 2, 2, 270, 273, 3, 2, 2, 2, 271, 269, 3, 2, 2, 2, 272, 274, 5, 32, 17, 2, 273, 272, 3, 2, 2, 2, 273, 274, 3, 2, 2, 2, 274, 31, 3, 2, 2, 2, 275, 276, 7, 65, 2, 2, 276, 277, 7, 72, 2, 2, 277, 282, 5, 42, 22, 2, 278, 279, 7, 36, 2, 2, 279, 281, 5, 42, 22, 2, 280, 278, 3, 2, 2, 2, 281, 284, 3, 2, 2, 2, 282, 280, 3, 2, 2, 2, 282, 283, 3, 2, 2, 2, 283, 285, 3, 2, 2, 2, 284, 282, 3, 2, 2, 2, 285, 286, 7, 66, 2, 2, 286, 33, 3, 2, 2, 2, 287, 288, 7, 6, 2, 2, 288, 289, 5, 26, 14, 2, 289, 35, 3, 2, 2, 2, 290, 292, 7, 19, 2, 2, 291, 293, 5, 26, 14, 2, 292, 291, 3, 2, 2, 2, 292, 293, 3, 2, 2, 2, 293, 296, 3, 2, 2, 2, 294, 295, 7, 32, 2, 2, 295, 297, 5, 40, 21, 2, 296, 294, 3, 2, 2, 2, 296, 297, 3, 2, 2, 2, 297, 37, 3, 2, 2, 2, 298, 299, 7, 10, 2, 2, 299, 302, 5, 26, 14, 2, 300, 301, 7, 32, 2, 2, 301, 303, 5, 40, 21, 2, 302, 300, 3, 2, 2, 2, 302, 303, 3, 2, 2, 2, 303, 39, 3, 2, 2, 2, 304, 309, 5, 44, 23, 2, 305, 306, 7, 36, 2, 2, 306, 308, 5, 44, 23, 2, 307, 305, 3, 2, 2, 2, 308, 311, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 309, 310, 3, 2, 2, 2, 310, 41, 3, 2, 2, 2, 311, 309, 3, 2, 2, 2, 312, 313, 9, 4, 2, 2, 313, 43, 3, 2, 2, 2, 314, 319, 5, 48, 25, 2, 315, 316, 7, 38, 2, 2, 316, 318, 5, 48, 25, 2, 317, 315, 3, 2, 2, 2, 318, 321, 3, 2, 2, 2, 319, 317, 3, 2, 2, 2, 319, 320, 3, 2, 2, 2, 320, 45, 3, 2, 2, 2, 321, 319, 3, 2, 2, 2, 322, 327, 5, 50, 26, 2, 323, 324, 7, 38, 2, 2, 324, 326, 5, 50, 26, 2, 325, 323, 3, 2, 2, 2, 326, 329, 3, 2, 2, 2, 327, 325, 3, 2, 2, 2, 327, 328, 3, 2, 2, 2, 328, 47, 3, 2, 2, 2, 329, 327, 3, 2, 2, 2, 330, 331, 9, 5, 2, 2, 331, 49, 3, 2, 2, 2, 332, 333, 9, 6, 2, 2, 333, 51, 3, 2, 2, 2, 334, 377, 7, 47, 2, 2, 335, 336, 5, 84, 43, 2, 336, 337, 7, 67, 2, 2, 337, 377, 3, 2, 2, 2, 338, 377, 5, 82, 42, 2, 339, 377, 5, 84, 43, 2, 340, 377, 5, 78, 40, 2, 341, 377, 7, 50, 2, 2, 342, 377, 5, 86, 44, 2, 343, 344, 7, 65, 2, 2, 344, 349, 5, 80, 41, 2, 345, 346, 7, 36, 2, 2, 346, 348, 5, 80, 41, 2, 347, 345, 3, 2, 2, 2, 348, 351, 3, 2, 2, 2, 349, 347, 3, 2, 2, 2, 349, 350, 3, 2, 2, 2, 350, 352, 3, 2, 2, 2, 351, 349, 3, 2, 2, 2, 352, 353, 7, 66, 2, 2, 353, 377, 3, 2, 2, 2, 354, 355, 7, 65, 2, 2, 355, 360, 5, 78, 40, 2, 356, 357, 7, 36, 2, 2, 357, 359, 5, 78, 40, 2, 358, 356, 3, 2, 2, 2, 359, 362, 3, 2, 2, 2, 360, 358, 3, 2, 2, 2, 360, 361, 3, 2, 2, 2, 361, 363, 3, 2, 2, 2, 362, 360, 3, 2, 2, 2, 363, 364, 7, 66, 2, 2, 364, 377, 3, 2, 2, 2, 365, 366, 7, 65, 2, 2, 366, 371, 5, 86, 44, 2, 367, 368, 7, 36, 2, 2, 368, 370, 5, 86, 44, 2, 369, 367, 3, 2, 2, 2, 370, 373, 3, 2, 2, 2, 371, 369, 3, 2, 2, 2, 371, 372, 3, 2, 2, 2, 372, 374, 3, 2, 2, 2, 373, 371, 3, 2, 2, 2, 374, 375, 7, 66, 2, 2, 375, 377, 3, 2, 2, 2, 376, 334, 3, 2, 2, 2, 376, 335, 3, 2, 2, 2, 376, 338, 3, 2, 2, 2, 376, 339, 3, 2, 2, 2, 376, 340, 3, 2, 2, 2, 376, 341, 3, 2, 2, 2, 376, 342, 3, 2, 2, 2, 376, 343, 3, 2, 2, 2, 376, 354, 3, 2, 2, 2, 376, 365, 3, 2, 2, 2, 377, 53, 3, 2, 2, 2, 378, 379, 7, 12, 2, 2, 379, 380, 7, 30, 2, 2, 380, 55, 3, 2, 2, 2, 381, 382, 7, 18, 2, 2, 382, 387, 5, 58, 30, 2, 383, 384, 7, 36, 2, 2, 384, 386, 5, 58, 30, 2, 385, 383, 3, 2, 2, 2, 386, 389, 3, 2, 2, 2, 387, 385, 3, 2, 2, 2, 387, 388, 3, 2, 2, 2, 388, 57, 3, 2, 2, 2, 389, 387, 3, 2, 2, 2, 390, 392, 5, 12, 7, 2, 391, 393, 9, 7, 2, 2, 392, 391, 3, 2, 2, 2, 392, 393, 3, 2, 2, 2, 393, 396, 3, 2, 2, 2, 394, 395, 7, 48, 2, 2, 395, 397, 9, 8, 2, 2, 396, 394, 3, 2, 2, 2, 396, 397, 3, 2, 2, 2, 397, 59, 3, 2, 2, 2, 398, 399, 7, 11, 2, 2, 399, 404, 5, 46, 24, 2, 400, 401, 7, 36, 2, 2, 401, 403, 5, 46, 24, 2, 402, 400, 3, 2, 2, 2, 403, 406, 3, 2, 2, 2, 404, 402, 3, 2, 2, 2, 404, 405, 3, 2, 2, 2, 405, 417, 3, 2, 2, 2, 406, 404, 3, 2, 2, 2, 407, 408, 7, 14, 2, 2, 408, 413, 5, 46, 24, 2, 409, 410, 7, 36, 2, 2, 410, 412, 5, 46, 24, 2, 411, 409, 3, 2, 2, 2, 412, 415, 3, 2, 2, 2, 413, 411, 3, 2, 2, 2, 413, 414, 3, 2, 2, 2, 414, 417, 3, 2, 2, 2, 415, 413, 3, 2, 2, 2, 416, 398, 3, 2, 2, 2, 416, 407, 3, 2, 2, 2, 417, 61, 3, 2, 2, 2, 418, 419, 7, 4, 2, 2, 419, 424, 5, 46, 24, 2, 420, 421, 7, 36, 2, 2, 421, 423, 5, 46, 24, 2, 422, 420, 3, 2, 2, 2, 423, 426, 3, 2, 2, 2, 424, 422, 3, 2, 2, 2, 424, 425, 3, 2, 2, 2, 425, 63, 3, 2, 2, 2, 426, 424, 3, 2, 2, 2, 427, 428, 7, 15, 2, 2, 428, 433, 5, 66, 34, 2, 429, 430, 7, 36, 2, 2, 430, 432, 5, 66, 34, 2, 431, 429, 3, 2, 2, 2, 432, 435, 3, 2, 2, 2, 433, 431, 3, 2, 2, 2, 433, 434, 3, 2, 2, 2, 434, 65, 3, 2, 2, 2, 435, 433, 3, 2, 2, 2, 436, 437, 5, 46, 24, 2, 437, 438, 7, 81, 2, 2, 438, 439, 5, 46, 24, 2, 439, 67, 3, 2, 2, 2, 440, 441, 7, 3, 2, 2, 441, 442, 5, 20, 11, 2, 442, 444, 5, 86, 44, 2, 443, 445, 5, 74, 38, 2, 444, 443, 3, 2, 2, 2, 444, 445, 3, 2, 2, 2, 445, 69, 3, 2, 2, 2, 446, 447, 7, 9, 2, 2, 447, 448, 5, 20, 11, 2, 448, 449, 5, 86, 44, 2, 449, 71, 3, 2, 2, 2, 450, 451, 7, 13, 2, 2, 451, 452, 5, 44, 23, 2, 452, 73, 3, 2, 2, 2, 453, 458, 5, 76, 39, 2, 454, 455, 7, 36, 2, 2, 455, 457, 5, 76, 39, 2, 456, 454, 3, 2, 2, 2, 457, 460, 3, 2, 2, 2, 458, 456, 3, 2, 2, 2, 458, 459, 3, 2, 2, 2, 459, 75, 3, 2, 2, 2, 460, 458, 3, 2, 2, 2, 461, 462, 5, 48, 25, 2, 462, 463, 7, 35, 2, 2, 463, 464, 5, 52, 27, 2, 464, 77, 3, 2, 2, 2, 465, 466, 9, 9, 2, 2, 466, 79, 3, 2, 2, 2, 467, 470, 5, 82, 42, 2, 468, 470, 5, 84, 43, 2, 469, 467, 3, 2, 2, 2, 469, 468, 3, 2, 2, 2, 470, 81, 3, 2, 2, 2, 471, 473, 9, 2, 2, 2, 472, 471, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 474, 3, 2, 2, 2, 474, 475, 7, 31, 2, 2, 475, 83, 3, 2, 2, 2, 476, 478, 9, 2, 2, 2, 477, 476, 3, 2, 2, 2, 477, 478, 3, 2, 2, 2, 478, 479, 3, 2, 2, 2, 479, 480, 7, 30, 2, 2, 480, 85, 3, 2, 2, 2, 481, 482, 7, 29, 2, 2, 482, 87, 3, 2, 2, 2, 483, 484, 9, 10, 2, 2, 484, 89, 3, 2, 2, 2, 485, 486, 7, 7, 2, 2, 486, 487, 5, 92, 47, 2, 487, 91, 3, 2, 2, 2, 488, 489, 7, 65, 2, 2, 489, 490, 5, 4, 3, 2, 490, 491, 7, 66, 2, 2, 491, 93, 3, 2, 2, 2, 492, 493, 7, 17, 2, 2, 493, 497, 7, 97, 2, 2, 494, 495, 7, 17, 2, 2, 495, 497, 7, 98, 2, 2, 496, 492, 3, 2, 2, 2, 496, 494, 3, 2, 2, 2, 497, 95, 3, 2, 2, 2, 498, 502, 7, 5, 2, 2, 499, 501, 5, 100, 51, 2, 500, 499, 3, 2, 2, 2, 501, 504, 3, 2, 2, 2, 502, 500, 3, 2, 2, 2, 502, 503, 3, 2, 2, 2, 503, 505, 3, 2, 2, 2, 504, 502, 3, 2, 2, 2, 505, 508, 7, 87, 2, 2, 506, 507, 7, 85, 2, 2, 507, 509, 5, 46, 24, 2, 508, 506, 3, 2, 2, 2, 508, 509, 3, 2, 2, 2, 509, 519, 3, 2, 2, 2, 510, 511, 7, 86, 2, 2, 511, 516, 5, 98, 50, 2, 512, 513, 7, 36, 2, 2, 513, 515, 5, 98, 50, 2, 514, 512, 3, 2, 2, 2, 515, 518, 3, 2, 2, 2, 516, 514, 3, 2, 2, 2, 516, 517, 3, 2, 2, 2, 517, 520, 3, 2, 2, 2, 518, 516, 3, 2, 2, 2, 519, 510, 3, 2, 2, 2, 519, 520, 3, 2, 2, 2, 520, 97, 3, 2, 2, 2, 521, 522, 5, 46, 24, 2, 522, 523, 7, 35, 2, 2, 523, 525, 3, 2, 2, 2, 524, 521, 3, 2, 2, 2, 524, 525, 3, 2, 2, 2, 525, 526, 3, 2, 2, 2, 526, 527, 5, 46, 24, 2, 527, 99, 3, 2, 2, 2, 528, 529, 7, 65, 2, 2, 529, 530, 7, 103, 2, 2, 530, 531, 7, 102, 2, 2, 531, 532, 7, 103, 2, 2, 532, 533, 7, 66, 2, 2, 533, 101, 3, 2, 2, 2, 55, 113, 120, 135, 147, 156, 164, 168, 176, 178, 183, 190, 195, 202, 208, 216, 218, 228, 238, 241, 253, 261, 269, 273, 282, 292, 296, 302, 309, 319, 327, 349, 360, 371, 376, 387, 392, 396, 404, 413, 416, 424, 433, 444, 458, 469, 472, 477, 496, 502, 508, 516, 519, 524] \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.tokens b/packages/kbn-monaco/src/esql/antlr/esql_parser.tokens index 85a98c3a6d268..073febb9e1783 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.tokens +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.tokens @@ -72,7 +72,7 @@ FROM_UNQUOTED_IDENTIFIER=71 FROM_LINE_COMMENT=72 FROM_MULTILINE_COMMENT=73 FROM_WS=74 -PROJECT_UNQUOTED_IDENTIFIER=75 +UNQUOTED_ID_PATTERN=75 PROJECT_LINE_COMMENT=76 PROJECT_MULTILINE_COMMENT=77 PROJECT_WS=78 @@ -82,20 +82,26 @@ RENAME_MULTILINE_COMMENT=81 RENAME_WS=82 ON=83 WITH=84 -ENRICH_LINE_COMMENT=85 -ENRICH_MULTILINE_COMMENT=86 -ENRICH_WS=87 -ENRICH_FIELD_LINE_COMMENT=88 -ENRICH_FIELD_MULTILINE_COMMENT=89 -ENRICH_FIELD_WS=90 -MVEXPAND_LINE_COMMENT=91 -MVEXPAND_MULTILINE_COMMENT=92 -MVEXPAND_WS=93 -INFO=94 -FUNCTIONS=95 -SHOW_LINE_COMMENT=96 -SHOW_MULTILINE_COMMENT=97 -SHOW_WS=98 +ENRICH_POLICY_NAME=85 +ENRICH_LINE_COMMENT=86 +ENRICH_MULTILINE_COMMENT=87 +ENRICH_WS=88 +ENRICH_FIELD_LINE_COMMENT=89 +ENRICH_FIELD_MULTILINE_COMMENT=90 +ENRICH_FIELD_WS=91 +MVEXPAND_LINE_COMMENT=92 +MVEXPAND_MULTILINE_COMMENT=93 +MVEXPAND_WS=94 +INFO=95 +FUNCTIONS=96 +SHOW_LINE_COMMENT=97 +SHOW_MULTILINE_COMMENT=98 +SHOW_WS=99 +COLON=100 +SETTING=101 +SETTING_LINE_COMMENT=102 +SETTTING_MULTILINE_COMMENT=103 +SETTING_WS=104 '|'=26 '='=33 ','=34 @@ -115,3 +121,4 @@ SHOW_WS=98 '/'=61 '%'=62 ']'=64 +':'=100 diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.ts b/packages/kbn-monaco/src/esql/antlr/esql_parser.ts index 90d3da25c8d1c..9fb0e95629ef8 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.ts @@ -101,7 +101,7 @@ export class esql_parser extends Parser { public static readonly FROM_LINE_COMMENT = 72; public static readonly FROM_MULTILINE_COMMENT = 73; public static readonly FROM_WS = 74; - public static readonly PROJECT_UNQUOTED_IDENTIFIER = 75; + public static readonly UNQUOTED_ID_PATTERN = 75; public static readonly PROJECT_LINE_COMMENT = 76; public static readonly PROJECT_MULTILINE_COMMENT = 77; public static readonly PROJECT_WS = 78; @@ -111,20 +111,26 @@ export class esql_parser extends Parser { public static readonly RENAME_WS = 82; public static readonly ON = 83; public static readonly WITH = 84; - public static readonly ENRICH_LINE_COMMENT = 85; - public static readonly ENRICH_MULTILINE_COMMENT = 86; - public static readonly ENRICH_WS = 87; - public static readonly ENRICH_FIELD_LINE_COMMENT = 88; - public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 89; - public static readonly ENRICH_FIELD_WS = 90; - public static readonly MVEXPAND_LINE_COMMENT = 91; - public static readonly MVEXPAND_MULTILINE_COMMENT = 92; - public static readonly MVEXPAND_WS = 93; - public static readonly INFO = 94; - public static readonly FUNCTIONS = 95; - public static readonly SHOW_LINE_COMMENT = 96; - public static readonly SHOW_MULTILINE_COMMENT = 97; - public static readonly SHOW_WS = 98; + public static readonly ENRICH_POLICY_NAME = 85; + public static readonly ENRICH_LINE_COMMENT = 86; + public static readonly ENRICH_MULTILINE_COMMENT = 87; + public static readonly ENRICH_WS = 88; + public static readonly ENRICH_FIELD_LINE_COMMENT = 89; + public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 90; + public static readonly ENRICH_FIELD_WS = 91; + public static readonly MVEXPAND_LINE_COMMENT = 92; + public static readonly MVEXPAND_MULTILINE_COMMENT = 93; + public static readonly MVEXPAND_WS = 94; + public static readonly INFO = 95; + public static readonly FUNCTIONS = 96; + public static readonly SHOW_LINE_COMMENT = 97; + public static readonly SHOW_MULTILINE_COMMENT = 98; + public static readonly SHOW_WS = 99; + public static readonly COLON = 100; + public static readonly SETTING = 101; + public static readonly SETTING_LINE_COMMENT = 102; + public static readonly SETTTING_MULTILINE_COMMENT = 103; + public static readonly SETTING_WS = 104; public static readonly RULE_singleStatement = 0; public static readonly RULE_query = 1; public static readonly RULE_sourceCommand = 2; @@ -174,6 +180,7 @@ export class esql_parser extends Parser { public static readonly RULE_showCommand = 46; public static readonly RULE_enrichCommand = 47; public static readonly RULE_enrichWithClause = 48; + public static readonly RULE_setting = 49; // tslint:disable:no-trailing-whitespace public static readonly ruleNames: string[] = [ "singleStatement", "query", "sourceCommand", "processingCommand", "whereCommand", @@ -186,7 +193,7 @@ export class esql_parser extends Parser { "dissectCommand", "grokCommand", "mvExpandCommand", "commandOptions", "commandOption", "booleanValue", "numericValue", "decimalValue", "integerValue", "string", "comparisonOperator", "explainCommand", "subqueryExpression", - "showCommand", "enrichCommand", "enrichWithClause", + "showCommand", "enrichCommand", "enrichWithClause", "setting", ]; private static readonly _LITERAL_NAMES: Array = [ @@ -198,7 +205,12 @@ export class esql_parser extends Parser { "'.'", undefined, undefined, undefined, "'('", undefined, undefined, undefined, undefined, undefined, undefined, undefined, "'?'", undefined, "')'", undefined, "'=='", "'!='", "'<'", "'<='", "'>'", "'>='", "'+'", "'-'", "'*'", "'/'", - "'%'", undefined, "']'", + "'%'", undefined, "']'", undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, "':'", ]; private static readonly _SYMBOLIC_NAMES: Array = [ undefined, "DISSECT", "DROP", "ENRICH", "EVAL", "EXPLAIN", "FROM", "GROK", @@ -212,13 +224,14 @@ export class esql_parser extends Parser { "PERCENT", "OPENING_BRACKET", "CLOSING_BRACKET", "UNQUOTED_IDENTIFIER", "QUOTED_IDENTIFIER", "EXPR_LINE_COMMENT", "EXPR_MULTILINE_COMMENT", "EXPR_WS", "METADATA", "FROM_UNQUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", - "FROM_WS", "PROJECT_UNQUOTED_IDENTIFIER", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", + "FROM_WS", "UNQUOTED_ID_PATTERN", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", "PROJECT_WS", "AS", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", - "RENAME_WS", "ON", "WITH", "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", - "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", "ENRICH_FIELD_MULTILINE_COMMENT", - "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", "MVEXPAND_MULTILINE_COMMENT", - "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", "SHOW_MULTILINE_COMMENT", - "SHOW_WS", + "RENAME_WS", "ON", "WITH", "ENRICH_POLICY_NAME", "ENRICH_LINE_COMMENT", + "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", + "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", + "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", + "SHOW_MULTILINE_COMMENT", "SHOW_WS", "COLON", "SETTING", "SETTING_LINE_COMMENT", + "SETTTING_MULTILINE_COMMENT", "SETTING_WS", ]; public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(esql_parser._LITERAL_NAMES, esql_parser._SYMBOLIC_NAMES, []); @@ -249,9 +262,9 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 98; + this.state = 100; this.query(0); - this.state = 99; + this.state = 101; this.match(esql_parser.EOF); } } @@ -293,11 +306,11 @@ export class esql_parser extends Parser { this._ctx = _localctx; _prevctx = _localctx; - this.state = 102; + this.state = 104; this.sourceCommand(); } this._ctx._stop = this._input.tryLT(-1); - this.state = 109; + this.state = 111; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 0, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { @@ -310,18 +323,18 @@ export class esql_parser extends Parser { { _localctx = new CompositeQueryContext(new QueryContext(_parentctx, _parentState)); this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_query); - this.state = 104; + this.state = 106; if (!(this.precpred(this._ctx, 1))) { throw new FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } - this.state = 105; + this.state = 107; this.match(esql_parser.PIPE); - this.state = 106; + this.state = 108; this.processingCommand(); } } } - this.state = 111; + this.state = 113; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 0, this._ctx); } @@ -346,34 +359,34 @@ export class esql_parser extends Parser { let _localctx: SourceCommandContext = new SourceCommandContext(this._ctx, this.state); this.enterRule(_localctx, 4, esql_parser.RULE_sourceCommand); try { - this.state = 116; + this.state = 118; this._errHandler.sync(this); switch (this._input.LA(1)) { case esql_parser.EXPLAIN: this.enterOuterAlt(_localctx, 1); { - this.state = 112; + this.state = 114; this.explainCommand(); } break; case esql_parser.FROM: this.enterOuterAlt(_localctx, 2); { - this.state = 113; + this.state = 115; this.fromCommand(); } break; case esql_parser.ROW: this.enterOuterAlt(_localctx, 3); { - this.state = 114; + this.state = 116; this.rowCommand(); } break; case esql_parser.SHOW: this.enterOuterAlt(_localctx, 4); { - this.state = 115; + this.state = 117; this.showCommand(); } break; @@ -400,27 +413,27 @@ export class esql_parser extends Parser { let _localctx: ProcessingCommandContext = new ProcessingCommandContext(this._ctx, this.state); this.enterRule(_localctx, 6, esql_parser.RULE_processingCommand); try { - this.state = 131; + this.state = 133; this._errHandler.sync(this); switch (this._input.LA(1)) { case esql_parser.EVAL: this.enterOuterAlt(_localctx, 1); { - this.state = 118; + this.state = 120; this.evalCommand(); } break; case esql_parser.INLINESTATS: this.enterOuterAlt(_localctx, 2); { - this.state = 119; + this.state = 121; this.inlinestatsCommand(); } break; case esql_parser.LIMIT: this.enterOuterAlt(_localctx, 3); { - this.state = 120; + this.state = 122; this.limitCommand(); } break; @@ -428,70 +441,70 @@ export class esql_parser extends Parser { case esql_parser.PROJECT: this.enterOuterAlt(_localctx, 4); { - this.state = 121; + this.state = 123; this.keepCommand(); } break; case esql_parser.SORT: this.enterOuterAlt(_localctx, 5); { - this.state = 122; + this.state = 124; this.sortCommand(); } break; case esql_parser.STATS: this.enterOuterAlt(_localctx, 6); { - this.state = 123; + this.state = 125; this.statsCommand(); } break; case esql_parser.WHERE: this.enterOuterAlt(_localctx, 7); { - this.state = 124; + this.state = 126; this.whereCommand(); } break; case esql_parser.DROP: this.enterOuterAlt(_localctx, 8); { - this.state = 125; + this.state = 127; this.dropCommand(); } break; case esql_parser.RENAME: this.enterOuterAlt(_localctx, 9); { - this.state = 126; + this.state = 128; this.renameCommand(); } break; case esql_parser.DISSECT: this.enterOuterAlt(_localctx, 10); { - this.state = 127; + this.state = 129; this.dissectCommand(); } break; case esql_parser.GROK: this.enterOuterAlt(_localctx, 11); { - this.state = 128; + this.state = 130; this.grokCommand(); } break; case esql_parser.ENRICH: this.enterOuterAlt(_localctx, 12); { - this.state = 129; + this.state = 131; this.enrichCommand(); } break; case esql_parser.MV_EXPAND: this.enterOuterAlt(_localctx, 13); { - this.state = 130; + this.state = 132; this.mvExpandCommand(); } break; @@ -520,9 +533,9 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 133; + this.state = 135; this.match(esql_parser.WHERE); - this.state = 134; + this.state = 136; this.booleanExpression(0); } } @@ -560,7 +573,7 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 164; + this.state = 166; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 6, this._ctx) ) { case 1: @@ -569,9 +582,9 @@ export class esql_parser extends Parser { this._ctx = _localctx; _prevctx = _localctx; - this.state = 137; + this.state = 139; this.match(esql_parser.NOT); - this.state = 138; + this.state = 140; this.booleanExpression(7); } break; @@ -581,7 +594,7 @@ export class esql_parser extends Parser { _localctx = new BooleanDefaultContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 139; + this.state = 141; this.valueExpression(); } break; @@ -591,7 +604,7 @@ export class esql_parser extends Parser { _localctx = new RegexExpressionContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 140; + this.state = 142; this.regexBooleanExpression(); } break; @@ -601,41 +614,41 @@ export class esql_parser extends Parser { _localctx = new LogicalInContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 141; - this.valueExpression(); this.state = 143; + this.valueExpression(); + this.state = 145; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === esql_parser.NOT) { { - this.state = 142; + this.state = 144; this.match(esql_parser.NOT); } } - this.state = 145; + this.state = 147; this.match(esql_parser.IN); - this.state = 146; + this.state = 148; this.match(esql_parser.LP); - this.state = 147; + this.state = 149; this.valueExpression(); - this.state = 152; + this.state = 154; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 148; + this.state = 150; this.match(esql_parser.COMMA); - this.state = 149; + this.state = 151; this.valueExpression(); } } - this.state = 154; + this.state = 156; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 155; + this.state = 157; this.match(esql_parser.RP); } break; @@ -645,27 +658,27 @@ export class esql_parser extends Parser { _localctx = new IsNullContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 157; + this.state = 159; this.valueExpression(); - this.state = 158; - this.match(esql_parser.IS); this.state = 160; + this.match(esql_parser.IS); + this.state = 162; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === esql_parser.NOT) { { - this.state = 159; + this.state = 161; this.match(esql_parser.NOT); } } - this.state = 162; + this.state = 164; this.match(esql_parser.NULL); } break; } this._ctx._stop = this._input.tryLT(-1); - this.state = 174; + this.state = 176; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 8, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { @@ -675,7 +688,7 @@ export class esql_parser extends Parser { } _prevctx = _localctx; { - this.state = 172; + this.state = 174; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 7, this._ctx) ) { case 1: @@ -683,13 +696,13 @@ export class esql_parser extends Parser { _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState)); (_localctx as LogicalBinaryContext)._left = _prevctx; this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_booleanExpression); - this.state = 166; + this.state = 168; if (!(this.precpred(this._ctx, 4))) { throw new FailedPredicateException(this, "this.precpred(this._ctx, 4)"); } - this.state = 167; + this.state = 169; (_localctx as LogicalBinaryContext)._operator = this.match(esql_parser.AND); - this.state = 168; + this.state = 170; (_localctx as LogicalBinaryContext)._right = this.booleanExpression(5); } break; @@ -699,20 +712,20 @@ export class esql_parser extends Parser { _localctx = new LogicalBinaryContext(new BooleanExpressionContext(_parentctx, _parentState)); (_localctx as LogicalBinaryContext)._left = _prevctx; this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_booleanExpression); - this.state = 169; + this.state = 171; if (!(this.precpred(this._ctx, 3))) { throw new FailedPredicateException(this, "this.precpred(this._ctx, 3)"); } - this.state = 170; + this.state = 172; (_localctx as LogicalBinaryContext)._operator = this.match(esql_parser.OR); - this.state = 171; + this.state = 173; (_localctx as LogicalBinaryContext)._right = this.booleanExpression(4); } break; } } } - this.state = 176; + this.state = 178; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 8, this._ctx); } @@ -738,27 +751,27 @@ export class esql_parser extends Parser { this.enterRule(_localctx, 12, esql_parser.RULE_regexBooleanExpression); let _la: number; try { - this.state = 191; + this.state = 193; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 11, this._ctx) ) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 177; - this.valueExpression(); this.state = 179; + this.valueExpression(); + this.state = 181; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === esql_parser.NOT) { { - this.state = 178; + this.state = 180; this.match(esql_parser.NOT); } } - this.state = 181; + this.state = 183; _localctx._kind = this.match(esql_parser.LIKE); - this.state = 182; + this.state = 184; _localctx._pattern = this.string(); } break; @@ -766,21 +779,21 @@ export class esql_parser extends Parser { case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 184; - this.valueExpression(); this.state = 186; + this.valueExpression(); + this.state = 188; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === esql_parser.NOT) { { - this.state = 185; + this.state = 187; this.match(esql_parser.NOT); } } - this.state = 188; + this.state = 190; _localctx._kind = this.match(esql_parser.RLIKE); - this.state = 189; + this.state = 191; _localctx._pattern = this.string(); } break; @@ -805,14 +818,14 @@ export class esql_parser extends Parser { let _localctx: ValueExpressionContext = new ValueExpressionContext(this._ctx, this.state); this.enterRule(_localctx, 14, esql_parser.RULE_valueExpression); try { - this.state = 198; + this.state = 200; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 12, this._ctx) ) { case 1: _localctx = new ValueExpressionDefaultContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 193; + this.state = 195; this.operatorExpression(0); } break; @@ -821,11 +834,11 @@ export class esql_parser extends Parser { _localctx = new ComparisonContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 194; + this.state = 196; (_localctx as ComparisonContext)._left = this.operatorExpression(0); - this.state = 195; + this.state = 197; this.comparisonOperator(); - this.state = 196; + this.state = 198; (_localctx as ComparisonContext)._right = this.operatorExpression(0); } break; @@ -865,7 +878,7 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 204; + this.state = 206; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 13, this._ctx) ) { case 1: @@ -874,7 +887,7 @@ export class esql_parser extends Parser { this._ctx = _localctx; _prevctx = _localctx; - this.state = 201; + this.state = 203; this.primaryExpression(); } break; @@ -884,7 +897,7 @@ export class esql_parser extends Parser { _localctx = new ArithmeticUnaryContext(_localctx); this._ctx = _localctx; _prevctx = _localctx; - this.state = 202; + this.state = 204; (_localctx as ArithmeticUnaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { @@ -897,13 +910,13 @@ export class esql_parser extends Parser { this._errHandler.reportMatch(this); this.consume(); } - this.state = 203; + this.state = 205; this.operatorExpression(3); } break; } this._ctx._stop = this._input.tryLT(-1); - this.state = 214; + this.state = 216; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { @@ -913,7 +926,7 @@ export class esql_parser extends Parser { } _prevctx = _localctx; { - this.state = 212; + this.state = 214; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 14, this._ctx) ) { case 1: @@ -921,11 +934,11 @@ export class esql_parser extends Parser { _localctx = new ArithmeticBinaryContext(new OperatorExpressionContext(_parentctx, _parentState)); (_localctx as ArithmeticBinaryContext)._left = _prevctx; this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_operatorExpression); - this.state = 206; + this.state = 208; if (!(this.precpred(this._ctx, 2))) { throw new FailedPredicateException(this, "this.precpred(this._ctx, 2)"); } - this.state = 207; + this.state = 209; (_localctx as ArithmeticBinaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); if (!(((((_la - 60)) & ~0x1F) === 0 && ((1 << (_la - 60)) & ((1 << (esql_parser.ASTERISK - 60)) | (1 << (esql_parser.SLASH - 60)) | (1 << (esql_parser.PERCENT - 60)))) !== 0))) { @@ -938,7 +951,7 @@ export class esql_parser extends Parser { this._errHandler.reportMatch(this); this.consume(); } - this.state = 208; + this.state = 210; (_localctx as ArithmeticBinaryContext)._right = this.operatorExpression(3); } break; @@ -948,11 +961,11 @@ export class esql_parser extends Parser { _localctx = new ArithmeticBinaryContext(new OperatorExpressionContext(_parentctx, _parentState)); (_localctx as ArithmeticBinaryContext)._left = _prevctx; this.pushNewRecursionContext(_localctx, _startState, esql_parser.RULE_operatorExpression); - this.state = 209; + this.state = 211; if (!(this.precpred(this._ctx, 1))) { throw new FailedPredicateException(this, "this.precpred(this._ctx, 1)"); } - this.state = 210; + this.state = 212; (_localctx as ArithmeticBinaryContext)._operator = this._input.LT(1); _la = this._input.LA(1); if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { @@ -965,14 +978,14 @@ export class esql_parser extends Parser { this._errHandler.reportMatch(this); this.consume(); } - this.state = 211; + this.state = 213; (_localctx as ArithmeticBinaryContext)._right = this.operatorExpression(2); } break; } } } - this.state = 216; + this.state = 218; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 15, this._ctx); } @@ -997,14 +1010,14 @@ export class esql_parser extends Parser { let _localctx: PrimaryExpressionContext = new PrimaryExpressionContext(this._ctx, this.state); this.enterRule(_localctx, 18, esql_parser.RULE_primaryExpression); try { - this.state = 224; + this.state = 226; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 16, this._ctx) ) { case 1: _localctx = new ConstantDefaultContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 217; + this.state = 219; this.constant(); } break; @@ -1013,7 +1026,7 @@ export class esql_parser extends Parser { _localctx = new DereferenceContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 218; + this.state = 220; this.qualifiedName(); } break; @@ -1022,7 +1035,7 @@ export class esql_parser extends Parser { _localctx = new FunctionContext(_localctx); this.enterOuterAlt(_localctx, 3); { - this.state = 219; + this.state = 221; this.functionExpression(); } break; @@ -1031,11 +1044,11 @@ export class esql_parser extends Parser { _localctx = new ParenthesizedExpressionContext(_localctx); this.enterOuterAlt(_localctx, 4); { - this.state = 220; + this.state = 222; this.match(esql_parser.LP); - this.state = 221; + this.state = 223; this.booleanExpression(0); - this.state = 222; + this.state = 224; this.match(esql_parser.RP); } break; @@ -1063,16 +1076,16 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 226; + this.state = 228; this.identifier(); - this.state = 227; + this.state = 229; this.match(esql_parser.LP); - this.state = 237; + this.state = 239; this._errHandler.sync(this); switch (this._input.LA(1)) { case esql_parser.ASTERISK: { - this.state = 228; + this.state = 230; this.match(esql_parser.ASTERISK); } break; @@ -1092,21 +1105,21 @@ export class esql_parser extends Parser { case esql_parser.QUOTED_IDENTIFIER: { { - this.state = 229; + this.state = 231; this.booleanExpression(0); - this.state = 234; + this.state = 236; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 230; + this.state = 232; this.match(esql_parser.COMMA); - this.state = 231; + this.state = 233; this.booleanExpression(0); } } - this.state = 236; + this.state = 238; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -1118,7 +1131,7 @@ export class esql_parser extends Parser { default: break; } - this.state = 239; + this.state = 241; this.match(esql_parser.RP); } } @@ -1143,9 +1156,9 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 241; + this.state = 243; this.match(esql_parser.ROW); - this.state = 242; + this.state = 244; this.fields(); } } @@ -1171,23 +1184,23 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 244; + this.state = 246; this.field(); - this.state = 249; + this.state = 251; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 19, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 245; + this.state = 247; this.match(esql_parser.COMMA); - this.state = 246; + this.state = 248; this.field(); } } } - this.state = 251; + this.state = 253; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 19, this._ctx); } @@ -1212,13 +1225,13 @@ export class esql_parser extends Parser { let _localctx: FieldContext = new FieldContext(this._ctx, this.state); this.enterRule(_localctx, 26, esql_parser.RULE_field); try { - this.state = 257; + this.state = 259; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 20, this._ctx) ) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 252; + this.state = 254; this.booleanExpression(0); } break; @@ -1226,11 +1239,11 @@ export class esql_parser extends Parser { case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 253; + this.state = 255; this.qualifiedName(); - this.state = 254; + this.state = 256; this.match(esql_parser.ASSIGN); - this.state = 255; + this.state = 257; this.booleanExpression(0); } break; @@ -1258,34 +1271,34 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 259; + this.state = 261; this.match(esql_parser.FROM); - this.state = 260; + this.state = 262; this.fromIdentifier(); - this.state = 265; + this.state = 267; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 21, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 261; + this.state = 263; this.match(esql_parser.COMMA); - this.state = 262; + this.state = 264; this.fromIdentifier(); } } } - this.state = 267; + this.state = 269; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 21, this._ctx); } - this.state = 269; + this.state = 271; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 22, this._ctx) ) { case 1: { - this.state = 268; + this.state = 270; this.metadata(); } break; @@ -1314,29 +1327,29 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 271; + this.state = 273; this.match(esql_parser.OPENING_BRACKET); - this.state = 272; + this.state = 274; this.match(esql_parser.METADATA); - this.state = 273; + this.state = 275; this.fromIdentifier(); - this.state = 278; + this.state = 280; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 274; + this.state = 276; this.match(esql_parser.COMMA); - this.state = 275; + this.state = 277; this.fromIdentifier(); } } - this.state = 280; + this.state = 282; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 281; + this.state = 283; this.match(esql_parser.CLOSING_BRACKET); } } @@ -1361,9 +1374,9 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 283; + this.state = 285; this.match(esql_parser.EVAL); - this.state = 284; + this.state = 286; this.fields(); } } @@ -1388,26 +1401,26 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 286; - this.match(esql_parser.STATS); this.state = 288; + this.match(esql_parser.STATS); + this.state = 290; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 24, this._ctx) ) { case 1: { - this.state = 287; + this.state = 289; this.fields(); } break; } - this.state = 292; + this.state = 294; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 25, this._ctx) ) { case 1: { - this.state = 290; + this.state = 292; this.match(esql_parser.BY); - this.state = 291; + this.state = 293; this.grouping(); } break; @@ -1435,18 +1448,18 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 294; + this.state = 296; this.match(esql_parser.INLINESTATS); - this.state = 295; + this.state = 297; this.fields(); - this.state = 298; + this.state = 300; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 26, this._ctx) ) { case 1: { - this.state = 296; + this.state = 298; this.match(esql_parser.BY); - this.state = 297; + this.state = 299; this.grouping(); } break; @@ -1475,23 +1488,23 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 300; + this.state = 302; this.qualifiedName(); - this.state = 305; + this.state = 307; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 27, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 301; + this.state = 303; this.match(esql_parser.COMMA); - this.state = 302; + this.state = 304; this.qualifiedName(); } } } - this.state = 307; + this.state = 309; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 27, this._ctx); } @@ -1519,7 +1532,7 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 308; + this.state = 310; _la = this._input.LA(1); if (!(_la === esql_parser.QUOTED_IDENTIFIER || _la === esql_parser.FROM_UNQUOTED_IDENTIFIER)) { this._errHandler.recoverInline(this); @@ -1555,23 +1568,23 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 310; + this.state = 312; this.identifier(); - this.state = 315; + this.state = 317; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 28, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 311; + this.state = 313; this.match(esql_parser.DOT); - this.state = 312; + this.state = 314; this.identifier(); } } } - this.state = 317; + this.state = 319; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 28, this._ctx); } @@ -1599,23 +1612,23 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 318; + this.state = 320; this.identifierPattern(); - this.state = 323; + this.state = 325; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 319; + this.state = 321; this.match(esql_parser.DOT); - this.state = 320; + this.state = 322; this.identifierPattern(); } } } - this.state = 325; + this.state = 327; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); } @@ -1643,7 +1656,7 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 326; + this.state = 328; _la = this._input.LA(1); if (!(_la === esql_parser.UNQUOTED_IDENTIFIER || _la === esql_parser.QUOTED_IDENTIFIER)) { this._errHandler.recoverInline(this); @@ -1679,9 +1692,9 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 328; + this.state = 330; _la = this._input.LA(1); - if (!(_la === esql_parser.QUOTED_IDENTIFIER || _la === esql_parser.PROJECT_UNQUOTED_IDENTIFIER)) { + if (!(_la === esql_parser.QUOTED_IDENTIFIER || _la === esql_parser.UNQUOTED_ID_PATTERN)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === Token.EOF) { @@ -1713,14 +1726,14 @@ export class esql_parser extends Parser { this.enterRule(_localctx, 50, esql_parser.RULE_constant); let _la: number; try { - this.state = 372; + this.state = 374; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 33, this._ctx) ) { case 1: _localctx = new NullLiteralContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 330; + this.state = 332; this.match(esql_parser.NULL); } break; @@ -1729,9 +1742,9 @@ export class esql_parser extends Parser { _localctx = new QualifiedIntegerLiteralContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 331; + this.state = 333; this.integerValue(); - this.state = 332; + this.state = 334; this.match(esql_parser.UNQUOTED_IDENTIFIER); } break; @@ -1740,7 +1753,7 @@ export class esql_parser extends Parser { _localctx = new DecimalLiteralContext(_localctx); this.enterOuterAlt(_localctx, 3); { - this.state = 334; + this.state = 336; this.decimalValue(); } break; @@ -1749,7 +1762,7 @@ export class esql_parser extends Parser { _localctx = new IntegerLiteralContext(_localctx); this.enterOuterAlt(_localctx, 4); { - this.state = 335; + this.state = 337; this.integerValue(); } break; @@ -1758,7 +1771,7 @@ export class esql_parser extends Parser { _localctx = new BooleanLiteralContext(_localctx); this.enterOuterAlt(_localctx, 5); { - this.state = 336; + this.state = 338; this.booleanValue(); } break; @@ -1767,7 +1780,7 @@ export class esql_parser extends Parser { _localctx = new InputParamContext(_localctx); this.enterOuterAlt(_localctx, 6); { - this.state = 337; + this.state = 339; this.match(esql_parser.PARAM); } break; @@ -1776,7 +1789,7 @@ export class esql_parser extends Parser { _localctx = new StringLiteralContext(_localctx); this.enterOuterAlt(_localctx, 7); { - this.state = 338; + this.state = 340; this.string(); } break; @@ -1785,27 +1798,27 @@ export class esql_parser extends Parser { _localctx = new NumericArrayLiteralContext(_localctx); this.enterOuterAlt(_localctx, 8); { - this.state = 339; + this.state = 341; this.match(esql_parser.OPENING_BRACKET); - this.state = 340; + this.state = 342; this.numericValue(); - this.state = 345; + this.state = 347; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 341; + this.state = 343; this.match(esql_parser.COMMA); - this.state = 342; + this.state = 344; this.numericValue(); } } - this.state = 347; + this.state = 349; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 348; + this.state = 350; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -1814,27 +1827,27 @@ export class esql_parser extends Parser { _localctx = new BooleanArrayLiteralContext(_localctx); this.enterOuterAlt(_localctx, 9); { - this.state = 350; + this.state = 352; this.match(esql_parser.OPENING_BRACKET); - this.state = 351; + this.state = 353; this.booleanValue(); - this.state = 356; + this.state = 358; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 352; + this.state = 354; this.match(esql_parser.COMMA); - this.state = 353; + this.state = 355; this.booleanValue(); } } - this.state = 358; + this.state = 360; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 359; + this.state = 361; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -1843,27 +1856,27 @@ export class esql_parser extends Parser { _localctx = new StringArrayLiteralContext(_localctx); this.enterOuterAlt(_localctx, 10); { - this.state = 361; + this.state = 363; this.match(esql_parser.OPENING_BRACKET); - this.state = 362; + this.state = 364; this.string(); - this.state = 367; + this.state = 369; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 363; + this.state = 365; this.match(esql_parser.COMMA); - this.state = 364; + this.state = 366; this.string(); } } - this.state = 369; + this.state = 371; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 370; + this.state = 372; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -1890,9 +1903,9 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 374; + this.state = 376; this.match(esql_parser.LIMIT); - this.state = 375; + this.state = 377; this.match(esql_parser.INTEGER_LITERAL); } } @@ -1918,25 +1931,25 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 377; + this.state = 379; this.match(esql_parser.SORT); - this.state = 378; + this.state = 380; this.orderExpression(); - this.state = 383; + this.state = 385; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 34, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 379; + this.state = 381; this.match(esql_parser.COMMA); - this.state = 380; + this.state = 382; this.orderExpression(); } } } - this.state = 385; + this.state = 387; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 34, this._ctx); } @@ -1964,14 +1977,14 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 386; - this.booleanExpression(0); this.state = 388; + this.booleanExpression(0); + this.state = 390; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 35, this._ctx) ) { case 1: { - this.state = 387; + this.state = 389; _localctx._ordering = this._input.LT(1); _la = this._input.LA(1); if (!(_la === esql_parser.ASC || _la === esql_parser.DESC)) { @@ -1987,14 +2000,14 @@ export class esql_parser extends Parser { } break; } - this.state = 392; + this.state = 394; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 36, this._ctx) ) { case 1: { - this.state = 390; + this.state = 392; this.match(esql_parser.NULLS); - this.state = 391; + this.state = 393; _localctx._nullOrdering = this._input.LT(1); _la = this._input.LA(1); if (!(_la === esql_parser.FIRST || _la === esql_parser.LAST)) { @@ -2032,31 +2045,31 @@ export class esql_parser extends Parser { this.enterRule(_localctx, 58, esql_parser.RULE_keepCommand); try { let _alt: number; - this.state = 412; + this.state = 414; this._errHandler.sync(this); switch (this._input.LA(1)) { case esql_parser.KEEP: this.enterOuterAlt(_localctx, 1); { - this.state = 394; + this.state = 396; this.match(esql_parser.KEEP); - this.state = 395; + this.state = 397; this.qualifiedNamePattern(); - this.state = 400; + this.state = 402; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 37, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 396; + this.state = 398; this.match(esql_parser.COMMA); - this.state = 397; + this.state = 399; this.qualifiedNamePattern(); } } } - this.state = 402; + this.state = 404; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 37, this._ctx); } @@ -2065,25 +2078,25 @@ export class esql_parser extends Parser { case esql_parser.PROJECT: this.enterOuterAlt(_localctx, 2); { - this.state = 403; + this.state = 405; this.match(esql_parser.PROJECT); - this.state = 404; + this.state = 406; this.qualifiedNamePattern(); - this.state = 409; + this.state = 411; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 38, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 405; + this.state = 407; this.match(esql_parser.COMMA); - this.state = 406; + this.state = 408; this.qualifiedNamePattern(); } } } - this.state = 411; + this.state = 413; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 38, this._ctx); } @@ -2115,25 +2128,25 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 414; + this.state = 416; this.match(esql_parser.DROP); - this.state = 415; + this.state = 417; this.qualifiedNamePattern(); - this.state = 420; + this.state = 422; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 40, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 416; + this.state = 418; this.match(esql_parser.COMMA); - this.state = 417; + this.state = 419; this.qualifiedNamePattern(); } } } - this.state = 422; + this.state = 424; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 40, this._ctx); } @@ -2161,25 +2174,25 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 423; + this.state = 425; this.match(esql_parser.RENAME); - this.state = 424; + this.state = 426; this.renameClause(); - this.state = 429; + this.state = 431; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 41, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 425; + this.state = 427; this.match(esql_parser.COMMA); - this.state = 426; + this.state = 428; this.renameClause(); } } } - this.state = 431; + this.state = 433; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 41, this._ctx); } @@ -2206,11 +2219,11 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 432; + this.state = 434; _localctx._oldName = this.qualifiedNamePattern(); - this.state = 433; + this.state = 435; this.match(esql_parser.AS); - this.state = 434; + this.state = 436; _localctx._newName = this.qualifiedNamePattern(); } } @@ -2235,18 +2248,18 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 436; + this.state = 438; this.match(esql_parser.DISSECT); - this.state = 437; + this.state = 439; this.primaryExpression(); - this.state = 438; - this.string(); this.state = 440; + this.string(); + this.state = 442; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 42, this._ctx) ) { case 1: { - this.state = 439; + this.state = 441; this.commandOptions(); } break; @@ -2274,11 +2287,11 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 442; + this.state = 444; this.match(esql_parser.GROK); - this.state = 443; + this.state = 445; this.primaryExpression(); - this.state = 444; + this.state = 446; this.string(); } } @@ -2303,9 +2316,9 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 446; + this.state = 448; this.match(esql_parser.MV_EXPAND); - this.state = 447; + this.state = 449; this.qualifiedName(); } } @@ -2331,23 +2344,23 @@ export class esql_parser extends Parser { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 449; + this.state = 451; this.commandOption(); - this.state = 454; + this.state = 456; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 43, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 450; + this.state = 452; this.match(esql_parser.COMMA); - this.state = 451; + this.state = 453; this.commandOption(); } } } - this.state = 456; + this.state = 458; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 43, this._ctx); } @@ -2374,11 +2387,11 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 457; + this.state = 459; this.identifier(); - this.state = 458; + this.state = 460; this.match(esql_parser.ASSIGN); - this.state = 459; + this.state = 461; this.constant(); } } @@ -2404,7 +2417,7 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 461; + this.state = 463; _la = this._input.LA(1); if (!(_la === esql_parser.FALSE || _la === esql_parser.TRUE)) { this._errHandler.recoverInline(this); @@ -2437,13 +2450,13 @@ export class esql_parser extends Parser { let _localctx: NumericValueContext = new NumericValueContext(this._ctx, this.state); this.enterRule(_localctx, 78, esql_parser.RULE_numericValue); try { - this.state = 465; + this.state = 467; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 44, this._ctx) ) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 463; + this.state = 465; this.decimalValue(); } break; @@ -2451,7 +2464,7 @@ export class esql_parser extends Parser { case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 464; + this.state = 466; this.integerValue(); } break; @@ -2479,12 +2492,12 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 468; + this.state = 470; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === esql_parser.PLUS || _la === esql_parser.MINUS) { { - this.state = 467; + this.state = 469; _la = this._input.LA(1); if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { this._errHandler.recoverInline(this); @@ -2499,7 +2512,7 @@ export class esql_parser extends Parser { } } - this.state = 470; + this.state = 472; this.match(esql_parser.DECIMAL_LITERAL); } } @@ -2525,12 +2538,12 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 473; + this.state = 475; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === esql_parser.PLUS || _la === esql_parser.MINUS) { { - this.state = 472; + this.state = 474; _la = this._input.LA(1); if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { this._errHandler.recoverInline(this); @@ -2545,7 +2558,7 @@ export class esql_parser extends Parser { } } - this.state = 475; + this.state = 477; this.match(esql_parser.INTEGER_LITERAL); } } @@ -2570,7 +2583,7 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 477; + this.state = 479; this.match(esql_parser.STRING); } } @@ -2596,7 +2609,7 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 479; + this.state = 481; _la = this._input.LA(1); if (!(((((_la - 52)) & ~0x1F) === 0 && ((1 << (_la - 52)) & ((1 << (esql_parser.EQ - 52)) | (1 << (esql_parser.NEQ - 52)) | (1 << (esql_parser.LT - 52)) | (1 << (esql_parser.LTE - 52)) | (1 << (esql_parser.GT - 52)) | (1 << (esql_parser.GTE - 52)))) !== 0))) { this._errHandler.recoverInline(this); @@ -2631,9 +2644,9 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 481; + this.state = 483; this.match(esql_parser.EXPLAIN); - this.state = 482; + this.state = 484; this.subqueryExpression(); } } @@ -2658,11 +2671,11 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 484; + this.state = 486; this.match(esql_parser.OPENING_BRACKET); - this.state = 485; + this.state = 487; this.query(0); - this.state = 486; + this.state = 488; this.match(esql_parser.CLOSING_BRACKET); } } @@ -2685,16 +2698,16 @@ export class esql_parser extends Parser { let _localctx: ShowCommandContext = new ShowCommandContext(this._ctx, this.state); this.enterRule(_localctx, 92, esql_parser.RULE_showCommand); try { - this.state = 492; + this.state = 494; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 47, this._ctx) ) { case 1: _localctx = new ShowInfoContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 488; + this.state = 490; this.match(esql_parser.SHOW); - this.state = 489; + this.state = 491; this.match(esql_parser.INFO); } break; @@ -2703,9 +2716,9 @@ export class esql_parser extends Parser { _localctx = new ShowFunctionsContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 490; + this.state = 492; this.match(esql_parser.SHOW); - this.state = 491; + this.state = 493; this.match(esql_parser.FUNCTIONS); } break; @@ -2729,52 +2742,67 @@ export class esql_parser extends Parser { public enrichCommand(): EnrichCommandContext { let _localctx: EnrichCommandContext = new EnrichCommandContext(this._ctx, this.state); this.enterRule(_localctx, 94, esql_parser.RULE_enrichCommand); + let _la: number; try { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 494; + this.state = 496; this.match(esql_parser.ENRICH); - this.state = 495; - _localctx._policyName = this.fromIdentifier(); - this.state = 498; + this.state = 500; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === esql_parser.OPENING_BRACKET) { + { + { + this.state = 497; + this.setting(); + } + } + this.state = 502; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 503; + _localctx._policyName = this.match(esql_parser.ENRICH_POLICY_NAME); + this.state = 506; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 48, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 49, this._ctx) ) { case 1: { - this.state = 496; + this.state = 504; this.match(esql_parser.ON); - this.state = 497; + this.state = 505; _localctx._matchField = this.qualifiedNamePattern(); } break; } - this.state = 509; + this.state = 517; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 50, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 51, this._ctx) ) { case 1: { - this.state = 500; + this.state = 508; this.match(esql_parser.WITH); - this.state = 501; + this.state = 509; this.enrichWithClause(); - this.state = 506; + this.state = 514; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 49, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 50, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 502; + this.state = 510; this.match(esql_parser.COMMA); - this.state = 503; + this.state = 511; this.enrichWithClause(); } } } - this.state = 508; + this.state = 516; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 49, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 50, this._ctx); } } break; @@ -2802,19 +2830,19 @@ export class esql_parser extends Parser { try { this.enterOuterAlt(_localctx, 1); { - this.state = 514; + this.state = 522; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 51, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 52, this._ctx) ) { case 1: { - this.state = 511; + this.state = 519; _localctx._newName = this.qualifiedNamePattern(); - this.state = 512; + this.state = 520; this.match(esql_parser.ASSIGN); } break; } - this.state = 516; + this.state = 524; _localctx._enrichField = this.qualifiedNamePattern(); } } @@ -2832,6 +2860,39 @@ export class esql_parser extends Parser { } return _localctx; } + // @RuleVersion(0) + public setting(): SettingContext { + let _localctx: SettingContext = new SettingContext(this._ctx, this.state); + this.enterRule(_localctx, 98, esql_parser.RULE_setting); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 526; + this.match(esql_parser.OPENING_BRACKET); + this.state = 527; + _localctx._name = this.match(esql_parser.SETTING); + this.state = 528; + this.match(esql_parser.COLON); + this.state = 529; + _localctx._value = this.match(esql_parser.SETTING); + this.state = 530; + this.match(esql_parser.CLOSING_BRACKET); + } + } + catch (re) { + if (re instanceof RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } + finally { + this.exitRule(); + } + return _localctx; + } public sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean { switch (ruleIndex) { @@ -2875,7 +2936,7 @@ export class esql_parser extends Parser { } public static readonly _serializedATN: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03d\u0209\x04\x02" + + "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03j\u0217\x04\x02" + "\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07" + "\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04" + "\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04" + @@ -2883,249 +2944,256 @@ export class esql_parser extends Parser { "\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04" + "\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#" + "\t#\x04$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04+\t+" + - "\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x03\x02\x03\x02" + - "\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x07\x03n\n\x03" + - "\f\x03\x0E\x03q\v\x03\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04w\n\x04\x03" + - "\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03" + - "\x05\x03\x05\x03\x05\x03\x05\x05\x05\x86\n\x05\x03\x06\x03\x06\x03\x06" + - "\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x05\x07\x92\n" + - "\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x07\x07\x99\n\x07\f\x07\x0E" + - "\x07\x9C\v\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x05\x07\xA3\n\x07" + - "\x03\x07\x03\x07\x05\x07\xA7\n\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03" + - "\x07\x03\x07\x07\x07\xAF\n\x07\f\x07\x0E\x07\xB2\v\x07\x03\b\x03\b\x05" + - "\b\xB6\n\b\x03\b\x03\b\x03\b\x03\b\x03\b\x05\b\xBD\n\b\x03\b\x03\b\x03" + - "\b\x05\b\xC2\n\b\x03\t\x03\t\x03\t\x03\t\x03\t\x05\t\xC9\n\t\x03\n\x03" + - "\n\x03\n\x03\n\x05\n\xCF\n\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x07\n" + - "\xD7\n\n\f\n\x0E\n\xDA\v\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x05" + - "\v\xE3\n\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x07\f\xEB\n\f\f\f\x0E\f" + - "\xEE\v\f\x05\f\xF0\n\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\x0E\x03\x0E\x03" + - "\x0E\x07\x0E\xFA\n\x0E\f\x0E\x0E\x0E\xFD\v\x0E\x03\x0F\x03\x0F\x03\x0F" + - "\x03\x0F\x03\x0F\x05\x0F\u0104\n\x0F\x03\x10\x03\x10\x03\x10\x03\x10\x07" + - "\x10\u010A\n\x10\f\x10\x0E\x10\u010D\v\x10\x03\x10\x05\x10\u0110\n\x10" + - "\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x07\x11\u0117\n\x11\f\x11\x0E" + - "\x11\u011A\v\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13" + - "\x05\x13\u0123\n\x13\x03\x13\x03\x13\x05\x13\u0127\n\x13\x03\x14\x03\x14" + - "\x03\x14\x03\x14\x05\x14\u012D\n\x14\x03\x15\x03\x15\x03\x15\x07\x15\u0132" + - "\n\x15\f\x15\x0E\x15\u0135\v\x15\x03\x16\x03\x16\x03\x17\x03\x17\x03\x17" + - "\x07\x17\u013C\n\x17\f\x17\x0E\x17\u013F\v\x17\x03\x18\x03\x18\x03\x18" + - "\x07\x18\u0144\n\x18\f\x18\x0E\x18\u0147\v\x18\x03\x19\x03\x19\x03\x1A" + - "\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B" + - "\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x07\x1B\u015A\n\x1B\f\x1B\x0E" + - "\x1B\u015D\v\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x07\x1B" + - "\u0165\n\x1B\f\x1B\x0E\x1B\u0168\v\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B" + - "\x03\x1B\x03\x1B\x07\x1B\u0170\n\x1B\f\x1B\x0E\x1B\u0173\v\x1B\x03\x1B" + - "\x03\x1B\x05\x1B\u0177\n\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03" + - "\x1D\x03\x1D\x07\x1D\u0180\n\x1D\f\x1D\x0E\x1D\u0183\v\x1D\x03\x1E\x03" + - "\x1E\x05\x1E\u0187\n\x1E\x03\x1E\x03\x1E\x05\x1E\u018B\n\x1E\x03\x1F\x03" + - "\x1F\x03\x1F\x03\x1F\x07\x1F\u0191\n\x1F\f\x1F\x0E\x1F\u0194\v\x1F\x03" + - "\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F\u019A\n\x1F\f\x1F\x0E\x1F\u019D\v" + - "\x1F\x05\x1F\u019F\n\x1F\x03 \x03 \x03 \x03 \x07 \u01A5\n \f \x0E \u01A8" + - "\v \x03!\x03!\x03!\x03!\x07!\u01AE\n!\f!\x0E!\u01B1\v!\x03\"\x03\"\x03" + - "\"\x03\"\x03#\x03#\x03#\x03#\x05#\u01BB\n#\x03$\x03$\x03$\x03$\x03%\x03" + - "%\x03%\x03&\x03&\x03&\x07&\u01C7\n&\f&\x0E&\u01CA\v&\x03\'\x03\'\x03\'" + - "\x03\'\x03(\x03(\x03)\x03)\x05)\u01D4\n)\x03*\x05*\u01D7\n*\x03*\x03*" + - "\x03+\x05+\u01DC\n+\x03+\x03+\x03,\x03,\x03-\x03-\x03.\x03.\x03.\x03/" + - "\x03/\x03/\x03/\x030\x030\x030\x030\x050\u01EF\n0\x031\x031\x031\x031" + - "\x051\u01F5\n1\x031\x031\x031\x031\x071\u01FB\n1\f1\x0E1\u01FE\v1\x05" + - "1\u0200\n1\x032\x032\x032\x052\u0205\n2\x032\x032\x032\x02\x02\x05\x04" + - "\f\x123\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12" + - "\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&" + - "\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02" + + "\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x03\x02" + + "\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x07\x03" + + "p\n\x03\f\x03\x0E\x03s\v\x03\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04y" + + "\n\x04\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05" + + "\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x05\x05\x88\n\x05\x03\x06\x03" + + "\x06\x03\x06\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x05" + + "\x07\x94\n\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x07\x07\x9B\n\x07" + + "\f\x07\x0E\x07\x9E\v\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x05\x07" + + "\xA5\n\x07\x03\x07\x03\x07\x05\x07\xA9\n\x07\x03\x07\x03\x07\x03\x07\x03" + + "\x07\x03\x07\x03\x07\x07\x07\xB1\n\x07\f\x07\x0E\x07\xB4\v\x07\x03\b\x03" + + "\b\x05\b\xB8\n\b\x03\b\x03\b\x03\b\x03\b\x03\b\x05\b\xBF\n\b\x03\b\x03" + + "\b\x03\b\x05\b\xC4\n\b\x03\t\x03\t\x03\t\x03\t\x03\t\x05\t\xCB\n\t\x03" + + "\n\x03\n\x03\n\x03\n\x05\n\xD1\n\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n" + + "\x07\n\xD9\n\n\f\n\x0E\n\xDC\v\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03" + + "\v\x05\v\xE5\n\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x07\f\xED\n\f\f\f" + + "\x0E\f\xF0\v\f\x05\f\xF2\n\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\x0E\x03" + + "\x0E\x03\x0E\x07\x0E\xFC\n\x0E\f\x0E\x0E\x0E\xFF\v\x0E\x03\x0F\x03\x0F" + + "\x03\x0F\x03\x0F\x03\x0F\x05\x0F\u0106\n\x0F\x03\x10\x03\x10\x03\x10\x03" + + "\x10\x07\x10\u010C\n\x10\f\x10\x0E\x10\u010F\v\x10\x03\x10\x05\x10\u0112" + + "\n\x10\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x07\x11\u0119\n\x11\f\x11" + + "\x0E\x11\u011C\v\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x13\x03" + + "\x13\x05\x13\u0125\n\x13\x03\x13\x03\x13\x05\x13\u0129\n\x13\x03\x14\x03" + + "\x14\x03\x14\x03\x14\x05\x14\u012F\n\x14\x03\x15\x03\x15\x03\x15\x07\x15" + + "\u0134\n\x15\f\x15\x0E\x15\u0137\v\x15\x03\x16\x03\x16\x03\x17\x03\x17" + + "\x03\x17\x07\x17\u013E\n\x17\f\x17\x0E\x17\u0141\v\x17\x03\x18\x03\x18" + + "\x03\x18\x07\x18\u0146\n\x18\f\x18\x0E\x18\u0149\v\x18\x03\x19\x03\x19" + + "\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B" + + "\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x07\x1B\u015C\n\x1B\f" + + "\x1B\x0E\x1B\u015F\v\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B" + + "\x07\x1B\u0167\n\x1B\f\x1B\x0E\x1B\u016A\v\x1B\x03\x1B\x03\x1B\x03\x1B" + + "\x03\x1B\x03\x1B\x03\x1B\x07\x1B\u0172\n\x1B\f\x1B\x0E\x1B\u0175\v\x1B" + + "\x03\x1B\x03\x1B\x05\x1B\u0179\n\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03" + + "\x1D\x03\x1D\x03\x1D\x07\x1D\u0182\n\x1D\f\x1D\x0E\x1D\u0185\v\x1D\x03" + + "\x1E\x03\x1E\x05\x1E\u0189\n\x1E\x03\x1E\x03\x1E\x05\x1E\u018D\n\x1E\x03" + + "\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F\u0193\n\x1F\f\x1F\x0E\x1F\u0196\v" + + "\x1F\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F\u019C\n\x1F\f\x1F\x0E\x1F" + + "\u019F\v\x1F\x05\x1F\u01A1\n\x1F\x03 \x03 \x03 \x03 \x07 \u01A7\n \f " + + "\x0E \u01AA\v \x03!\x03!\x03!\x03!\x07!\u01B0\n!\f!\x0E!\u01B3\v!\x03" + + "\"\x03\"\x03\"\x03\"\x03#\x03#\x03#\x03#\x05#\u01BD\n#\x03$\x03$\x03$" + + "\x03$\x03%\x03%\x03%\x03&\x03&\x03&\x07&\u01C9\n&\f&\x0E&\u01CC\v&\x03" + + "\'\x03\'\x03\'\x03\'\x03(\x03(\x03)\x03)\x05)\u01D6\n)\x03*\x05*\u01D9" + + "\n*\x03*\x03*\x03+\x05+\u01DE\n+\x03+\x03+\x03,\x03,\x03-\x03-\x03.\x03" + + ".\x03.\x03/\x03/\x03/\x03/\x030\x030\x030\x030\x050\u01F1\n0\x031\x03" + + "1\x071\u01F5\n1\f1\x0E1\u01F8\v1\x031\x031\x031\x051\u01FD\n1\x031\x03" + + "1\x031\x031\x071\u0203\n1\f1\x0E1\u0206\v1\x051\u0208\n1\x032\x032\x03" + + "2\x052\u020D\n2\x032\x032\x033\x033\x033\x033\x033\x033\x033\x02\x02\x05" + + "\x04\f\x124\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02" + + "\x12\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02" + + "&\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02" + "B\x02D\x02F\x02H\x02J\x02L\x02N\x02P\x02R\x02T\x02V\x02X\x02Z\x02\\\x02" + - "^\x02`\x02b\x02\x02\v\x03\x02<=\x03\x02>@\x04\x02DDII\x03\x02CD\x04\x02" + - "DDMM\x04\x02\"\"%%\x03\x02()\x04\x02\'\'55\x03\x026;\x02\u0226\x02d\x03" + - "\x02\x02\x02\x04g\x03\x02\x02\x02\x06v\x03\x02\x02\x02\b\x85\x03\x02\x02" + - "\x02\n\x87\x03\x02\x02\x02\f\xA6\x03\x02\x02\x02\x0E\xC1\x03\x02\x02\x02" + - "\x10\xC8\x03\x02\x02\x02\x12\xCE\x03\x02\x02\x02\x14\xE2\x03\x02\x02\x02" + - "\x16\xE4\x03\x02\x02\x02\x18\xF3\x03\x02\x02\x02\x1A\xF6\x03\x02\x02\x02" + - "\x1C\u0103\x03\x02\x02\x02\x1E\u0105\x03\x02\x02\x02 \u0111\x03\x02\x02" + - "\x02\"\u011D\x03\x02\x02\x02$\u0120\x03\x02\x02\x02&\u0128\x03\x02\x02" + - "\x02(\u012E\x03\x02\x02\x02*\u0136\x03\x02\x02\x02,\u0138\x03\x02\x02" + - "\x02.\u0140\x03\x02\x02\x020\u0148\x03\x02\x02\x022\u014A\x03\x02\x02" + - "\x024\u0176\x03\x02\x02\x026\u0178\x03\x02\x02\x028\u017B\x03\x02\x02" + - "\x02:\u0184\x03\x02\x02\x02<\u019E\x03\x02\x02\x02>\u01A0\x03\x02\x02" + - "\x02@\u01A9\x03\x02\x02\x02B\u01B2\x03\x02\x02\x02D\u01B6\x03\x02\x02" + - "\x02F\u01BC\x03\x02\x02\x02H\u01C0\x03\x02\x02\x02J\u01C3\x03\x02\x02" + - "\x02L\u01CB\x03\x02\x02\x02N\u01CF\x03\x02\x02\x02P\u01D3\x03\x02\x02" + - "\x02R\u01D6\x03\x02\x02\x02T\u01DB\x03\x02\x02\x02V\u01DF\x03\x02\x02" + - "\x02X\u01E1\x03\x02\x02\x02Z\u01E3\x03\x02\x02\x02\\\u01E6\x03\x02\x02" + - "\x02^\u01EE\x03\x02\x02\x02`\u01F0\x03\x02\x02\x02b\u0204\x03\x02\x02" + - "\x02de\x05\x04\x03\x02ef\x07\x02\x02\x03f\x03\x03\x02\x02\x02gh\b\x03" + - "\x01\x02hi\x05\x06\x04\x02io\x03\x02\x02\x02jk\f\x03\x02\x02kl\x07\x1C" + - "\x02\x02ln\x05\b\x05\x02mj\x03\x02\x02\x02nq\x03\x02\x02\x02om\x03\x02" + - "\x02\x02op\x03\x02\x02\x02p\x05\x03\x02\x02\x02qo\x03\x02\x02\x02rw\x05" + - "Z.\x02sw\x05\x1E\x10\x02tw\x05\x18\r\x02uw\x05^0\x02vr\x03\x02\x02\x02" + - "vs\x03\x02\x02\x02vt\x03\x02\x02\x02vu\x03\x02\x02\x02w\x07\x03\x02\x02" + - "\x02x\x86\x05\"\x12\x02y\x86\x05&\x14\x02z\x86\x056\x1C\x02{\x86\x05<" + - "\x1F\x02|\x86\x058\x1D\x02}\x86\x05$\x13\x02~\x86\x05\n\x06\x02\x7F\x86" + - "\x05> \x02\x80\x86\x05@!\x02\x81\x86\x05D#\x02\x82\x86\x05F$\x02\x83\x86" + - "\x05`1\x02\x84\x86\x05H%\x02\x85x\x03\x02\x02\x02\x85y\x03\x02\x02\x02" + - "\x85z\x03\x02\x02\x02\x85{\x03\x02\x02\x02\x85|\x03\x02\x02\x02\x85}\x03" + - "\x02\x02\x02\x85~\x03\x02\x02\x02\x85\x7F\x03\x02\x02\x02\x85\x80\x03" + - "\x02\x02\x02\x85\x81\x03\x02\x02\x02\x85\x82\x03\x02\x02\x02\x85\x83\x03" + - "\x02\x02\x02\x85\x84\x03\x02\x02\x02\x86\t\x03\x02\x02\x02\x87\x88\x07" + - "\x14\x02\x02\x88\x89\x05\f\x07\x02\x89\v\x03\x02\x02\x02\x8A\x8B\b\x07" + - "\x01\x02\x8B\x8C\x07.\x02\x02\x8C\xA7\x05\f\x07\t\x8D\xA7\x05\x10\t\x02" + - "\x8E\xA7\x05\x0E\b\x02\x8F\x91\x05\x10\t\x02\x90\x92\x07.\x02\x02\x91" + - "\x90\x03\x02\x02\x02\x91\x92\x03\x02\x02\x02\x92\x93\x03\x02\x02\x02\x93" + - "\x94\x07+\x02\x02\x94\x95\x07*\x02\x02\x95\x9A\x05\x10\t\x02\x96\x97\x07" + - "$\x02\x02\x97\x99\x05\x10\t\x02\x98\x96\x03\x02\x02\x02\x99\x9C\x03\x02" + - "\x02\x02\x9A\x98\x03\x02\x02\x02\x9A\x9B\x03\x02\x02\x02\x9B\x9D\x03\x02" + - "\x02\x02\x9C\x9A\x03\x02\x02\x02\x9D\x9E\x074\x02\x02\x9E\xA7\x03\x02" + - "\x02\x02\x9F\xA0\x05\x10\t\x02\xA0\xA2\x07,\x02\x02\xA1\xA3\x07.\x02\x02" + - "\xA2\xA1\x03\x02\x02\x02\xA2\xA3\x03\x02\x02\x02\xA3\xA4\x03\x02\x02\x02" + - "\xA4\xA5\x07/\x02\x02\xA5\xA7\x03\x02\x02\x02\xA6\x8A\x03\x02\x02\x02" + - "\xA6\x8D\x03\x02\x02\x02\xA6\x8E\x03\x02\x02\x02\xA6\x8F\x03\x02\x02\x02" + - "\xA6\x9F\x03\x02\x02\x02\xA7\xB0\x03\x02\x02\x02\xA8\xA9\f\x06\x02\x02" + - "\xA9\xAA\x07!\x02\x02\xAA\xAF\x05\f\x07\x07\xAB\xAC\f\x05\x02\x02\xAC" + - "\xAD\x071\x02\x02\xAD\xAF\x05\f\x07\x06\xAE\xA8\x03\x02\x02\x02\xAE\xAB" + - "\x03\x02\x02\x02\xAF\xB2\x03\x02\x02\x02\xB0\xAE\x03\x02\x02\x02\xB0\xB1" + - "\x03\x02\x02\x02\xB1\r\x03\x02\x02\x02\xB2\xB0\x03\x02\x02\x02\xB3\xB5" + - "\x05\x10\t\x02\xB4\xB6\x07.\x02\x02\xB5\xB4\x03\x02\x02\x02\xB5\xB6\x03" + - "\x02\x02\x02\xB6\xB7\x03\x02\x02\x02\xB7\xB8\x07-\x02\x02\xB8\xB9\x05" + - "V,\x02\xB9\xC2\x03\x02\x02\x02\xBA\xBC\x05\x10\t\x02\xBB\xBD\x07.\x02" + - "\x02\xBC\xBB\x03\x02\x02\x02\xBC\xBD\x03\x02\x02\x02\xBD\xBE\x03\x02\x02" + - "\x02\xBE\xBF\x073\x02\x02\xBF\xC0\x05V,\x02\xC0\xC2\x03\x02\x02\x02\xC1" + - "\xB3\x03\x02\x02\x02\xC1\xBA\x03\x02\x02\x02\xC2\x0F\x03\x02\x02\x02\xC3" + - "\xC9\x05\x12\n\x02\xC4\xC5\x05\x12\n\x02\xC5\xC6\x05X-\x02\xC6\xC7\x05" + - "\x12\n\x02\xC7\xC9\x03\x02\x02\x02\xC8\xC3\x03\x02\x02\x02\xC8\xC4\x03" + - "\x02\x02\x02\xC9\x11\x03\x02\x02\x02\xCA\xCB\b\n\x01\x02\xCB\xCF\x05\x14" + - "\v\x02\xCC\xCD\t\x02\x02\x02\xCD\xCF\x05\x12\n\x05\xCE\xCA\x03\x02\x02" + - "\x02\xCE\xCC\x03\x02\x02\x02\xCF\xD8\x03\x02\x02\x02\xD0\xD1\f\x04\x02" + - "\x02\xD1\xD2\t\x03\x02\x02\xD2\xD7\x05\x12\n\x05\xD3\xD4\f\x03\x02\x02" + - "\xD4\xD5\t\x02\x02\x02\xD5\xD7\x05\x12\n\x04\xD6\xD0\x03\x02\x02\x02\xD6" + - "\xD3\x03\x02\x02\x02\xD7\xDA\x03\x02\x02\x02\xD8\xD6\x03\x02\x02\x02\xD8" + - "\xD9\x03\x02\x02\x02\xD9\x13\x03\x02\x02\x02\xDA\xD8\x03\x02\x02\x02\xDB" + - "\xE3\x054\x1B\x02\xDC\xE3\x05,\x17\x02\xDD\xE3\x05\x16\f\x02\xDE\xDF\x07" + - "*\x02\x02\xDF\xE0\x05\f\x07\x02\xE0\xE1\x074\x02\x02\xE1\xE3\x03\x02\x02" + - "\x02\xE2\xDB\x03\x02\x02\x02\xE2\xDC\x03\x02\x02\x02\xE2\xDD\x03\x02\x02" + - "\x02\xE2\xDE\x03\x02\x02\x02\xE3\x15\x03\x02\x02\x02\xE4\xE5\x050\x19" + - "\x02\xE5\xEF\x07*\x02\x02\xE6\xF0\x07>\x02\x02\xE7\xEC\x05\f\x07\x02\xE8" + - "\xE9\x07$\x02\x02\xE9\xEB\x05\f\x07\x02\xEA\xE8\x03\x02\x02\x02\xEB\xEE" + - "\x03\x02\x02\x02\xEC\xEA\x03\x02\x02\x02\xEC\xED\x03\x02\x02\x02\xED\xF0" + - "\x03\x02\x02\x02\xEE\xEC\x03\x02\x02\x02\xEF\xE6\x03\x02\x02\x02\xEF\xE7" + - "\x03\x02\x02\x02\xEF\xF0\x03\x02\x02\x02\xF0\xF1\x03\x02\x02\x02\xF1\xF2" + - "\x074\x02\x02\xF2\x17\x03\x02\x02\x02\xF3\xF4\x07\x10\x02\x02\xF4\xF5" + - "\x05\x1A\x0E\x02\xF5\x19\x03\x02\x02\x02\xF6\xFB\x05\x1C\x0F\x02\xF7\xF8" + - "\x07$\x02\x02\xF8\xFA\x05\x1C\x0F\x02\xF9\xF7\x03\x02\x02\x02\xFA\xFD" + - "\x03\x02\x02\x02\xFB\xF9\x03\x02\x02\x02\xFB\xFC\x03\x02\x02\x02\xFC\x1B" + - "\x03\x02\x02\x02\xFD\xFB\x03\x02\x02\x02\xFE\u0104\x05\f\x07\x02\xFF\u0100" + - "\x05,\x17\x02\u0100\u0101\x07#\x02\x02\u0101\u0102\x05\f\x07\x02\u0102" + - "\u0104\x03\x02\x02\x02\u0103\xFE\x03\x02\x02\x02\u0103\xFF\x03\x02\x02" + - "\x02\u0104\x1D\x03\x02\x02\x02\u0105\u0106\x07\b\x02\x02\u0106\u010B\x05" + - "*\x16\x02\u0107\u0108\x07$\x02\x02\u0108\u010A\x05*\x16\x02\u0109\u0107" + - "\x03\x02\x02\x02\u010A\u010D\x03\x02\x02\x02\u010B\u0109\x03\x02\x02\x02" + - "\u010B\u010C\x03\x02\x02\x02\u010C\u010F\x03\x02\x02\x02\u010D\u010B\x03" + - "\x02\x02\x02\u010E\u0110\x05 \x11\x02\u010F\u010E\x03\x02\x02\x02\u010F" + - "\u0110\x03\x02\x02\x02\u0110\x1F\x03\x02\x02\x02\u0111\u0112\x07A\x02" + - "\x02\u0112\u0113\x07H\x02\x02\u0113\u0118\x05*\x16\x02\u0114\u0115\x07" + - "$\x02\x02\u0115\u0117\x05*\x16\x02\u0116\u0114\x03\x02\x02\x02\u0117\u011A" + - "\x03\x02\x02\x02\u0118\u0116\x03\x02\x02\x02\u0118\u0119\x03\x02\x02\x02" + - "\u0119\u011B\x03\x02\x02\x02\u011A\u0118\x03\x02\x02\x02\u011B\u011C\x07" + - "B\x02\x02\u011C!\x03\x02\x02\x02\u011D\u011E\x07\x06\x02\x02\u011E\u011F" + - "\x05\x1A\x0E\x02\u011F#\x03\x02\x02\x02\u0120\u0122\x07\x13\x02\x02\u0121" + - "\u0123\x05\x1A\x0E\x02\u0122\u0121\x03\x02\x02\x02\u0122\u0123\x03\x02" + - "\x02\x02\u0123\u0126\x03\x02\x02\x02\u0124\u0125\x07 \x02\x02\u0125\u0127" + - "\x05(\x15\x02\u0126\u0124\x03\x02\x02\x02\u0126\u0127\x03\x02\x02\x02" + - "\u0127%\x03\x02\x02\x02\u0128\u0129\x07\n\x02\x02\u0129\u012C\x05\x1A" + - "\x0E\x02\u012A\u012B\x07 \x02\x02\u012B\u012D\x05(\x15\x02\u012C\u012A" + - "\x03\x02\x02\x02\u012C\u012D\x03\x02\x02\x02\u012D\'\x03\x02\x02\x02\u012E" + - "\u0133\x05,\x17\x02\u012F\u0130\x07$\x02\x02\u0130\u0132\x05,\x17\x02" + - "\u0131\u012F\x03\x02\x02\x02\u0132\u0135\x03\x02\x02\x02\u0133\u0131\x03" + - "\x02\x02\x02\u0133\u0134\x03\x02\x02\x02\u0134)\x03\x02\x02\x02\u0135" + - "\u0133\x03\x02\x02\x02\u0136\u0137\t\x04\x02\x02\u0137+\x03\x02\x02\x02" + - "\u0138\u013D\x050\x19\x02\u0139\u013A\x07&\x02\x02\u013A\u013C\x050\x19" + - "\x02\u013B\u0139\x03\x02\x02\x02\u013C\u013F\x03\x02\x02\x02\u013D\u013B" + - "\x03\x02\x02\x02\u013D\u013E\x03\x02\x02\x02\u013E-\x03\x02\x02\x02\u013F" + - "\u013D\x03\x02\x02\x02\u0140\u0145\x052\x1A\x02\u0141\u0142\x07&\x02\x02" + - "\u0142\u0144\x052\x1A\x02\u0143\u0141\x03\x02\x02\x02\u0144\u0147\x03" + - "\x02\x02\x02\u0145\u0143\x03\x02\x02\x02\u0145\u0146\x03\x02\x02\x02\u0146" + - "/\x03\x02\x02\x02\u0147\u0145\x03\x02\x02\x02\u0148\u0149\t\x05\x02\x02" + - "\u01491\x03\x02\x02\x02\u014A\u014B\t\x06\x02\x02\u014B3\x03\x02\x02\x02" + - "\u014C\u0177\x07/\x02\x02\u014D\u014E\x05T+\x02\u014E\u014F\x07C\x02\x02" + - "\u014F\u0177\x03\x02\x02\x02\u0150\u0177\x05R*\x02\u0151\u0177\x05T+\x02" + - "\u0152\u0177\x05N(\x02\u0153\u0177\x072\x02\x02\u0154\u0177\x05V,\x02" + - "\u0155\u0156\x07A\x02\x02\u0156\u015B\x05P)\x02\u0157\u0158\x07$\x02\x02" + - "\u0158\u015A\x05P)\x02\u0159\u0157\x03\x02\x02\x02\u015A\u015D\x03\x02" + - "\x02\x02\u015B\u0159\x03\x02\x02\x02\u015B\u015C\x03\x02\x02\x02\u015C" + - "\u015E\x03\x02\x02\x02\u015D\u015B\x03\x02\x02\x02\u015E\u015F\x07B\x02" + - "\x02\u015F\u0177\x03\x02\x02\x02\u0160\u0161\x07A\x02\x02\u0161\u0166" + - "\x05N(\x02\u0162\u0163\x07$\x02\x02\u0163\u0165\x05N(\x02\u0164\u0162" + - "\x03\x02\x02\x02\u0165\u0168\x03\x02\x02\x02\u0166\u0164\x03\x02\x02\x02" + - "\u0166\u0167\x03\x02\x02\x02\u0167\u0169\x03\x02\x02\x02\u0168\u0166\x03" + - "\x02\x02\x02\u0169\u016A\x07B\x02\x02\u016A\u0177\x03\x02\x02\x02\u016B" + - "\u016C\x07A\x02\x02\u016C\u0171\x05V,\x02\u016D\u016E\x07$\x02\x02\u016E" + - "\u0170\x05V,\x02\u016F\u016D\x03\x02\x02\x02\u0170\u0173\x03\x02\x02\x02" + - "\u0171\u016F\x03\x02\x02\x02\u0171\u0172\x03\x02\x02\x02\u0172\u0174\x03" + - "\x02\x02\x02\u0173\u0171\x03\x02\x02\x02\u0174\u0175\x07B\x02\x02\u0175" + - "\u0177\x03\x02\x02\x02\u0176\u014C\x03\x02\x02\x02\u0176\u014D\x03\x02" + - "\x02\x02\u0176\u0150\x03\x02\x02\x02\u0176\u0151\x03\x02\x02\x02\u0176" + - "\u0152\x03\x02\x02\x02\u0176\u0153\x03\x02\x02\x02\u0176\u0154\x03\x02" + - "\x02\x02\u0176\u0155\x03\x02\x02\x02\u0176\u0160\x03\x02\x02\x02\u0176" + - "\u016B\x03\x02\x02\x02\u01775\x03\x02\x02\x02\u0178\u0179\x07\f\x02\x02" + - "\u0179\u017A\x07\x1E\x02\x02\u017A7\x03\x02\x02\x02\u017B\u017C\x07\x12" + - "\x02\x02\u017C\u0181\x05:\x1E\x02\u017D\u017E\x07$\x02\x02\u017E\u0180" + - "\x05:\x1E\x02\u017F\u017D\x03\x02\x02\x02\u0180\u0183\x03\x02\x02\x02" + - "\u0181\u017F\x03\x02\x02\x02\u0181\u0182\x03\x02\x02\x02\u01829\x03\x02" + - "\x02\x02\u0183\u0181\x03\x02\x02\x02\u0184\u0186\x05\f\x07\x02\u0185\u0187" + - "\t\x07\x02\x02\u0186\u0185\x03\x02\x02\x02\u0186\u0187\x03\x02\x02\x02" + - "\u0187\u018A\x03\x02\x02\x02\u0188\u0189\x070\x02\x02\u0189\u018B\t\b" + - "\x02\x02\u018A\u0188\x03\x02\x02\x02\u018A\u018B\x03\x02\x02\x02\u018B" + - ";\x03\x02\x02\x02\u018C\u018D\x07\v\x02\x02\u018D\u0192\x05.\x18\x02\u018E" + - "\u018F\x07$\x02\x02\u018F\u0191\x05.\x18\x02\u0190\u018E\x03\x02\x02\x02" + - "\u0191\u0194\x03\x02\x02\x02\u0192\u0190\x03\x02\x02\x02\u0192\u0193\x03" + - "\x02\x02\x02\u0193\u019F\x03\x02\x02\x02\u0194\u0192\x03\x02\x02\x02\u0195" + - "\u0196\x07\x0E\x02\x02\u0196\u019B\x05.\x18\x02\u0197\u0198\x07$\x02\x02" + - "\u0198\u019A\x05.\x18\x02\u0199\u0197\x03\x02\x02\x02\u019A\u019D\x03" + - "\x02\x02\x02\u019B\u0199\x03\x02\x02\x02\u019B\u019C\x03\x02\x02\x02\u019C" + - "\u019F\x03\x02\x02\x02\u019D\u019B\x03\x02\x02\x02\u019E\u018C\x03\x02" + - "\x02\x02\u019E\u0195\x03\x02\x02\x02\u019F=\x03\x02\x02\x02\u01A0\u01A1" + - "\x07\x04\x02\x02\u01A1\u01A6\x05.\x18\x02\u01A2\u01A3\x07$\x02\x02\u01A3" + - "\u01A5\x05.\x18\x02\u01A4\u01A2\x03\x02\x02\x02\u01A5\u01A8\x03\x02\x02" + - "\x02\u01A6\u01A4\x03\x02\x02\x02\u01A6\u01A7\x03\x02\x02\x02\u01A7?\x03" + - "\x02\x02\x02\u01A8\u01A6\x03\x02\x02\x02\u01A9\u01AA\x07\x0F\x02\x02\u01AA" + - "\u01AF\x05B\"\x02\u01AB\u01AC\x07$\x02\x02\u01AC\u01AE\x05B\"\x02\u01AD" + - "\u01AB\x03\x02\x02\x02\u01AE\u01B1\x03\x02\x02\x02\u01AF\u01AD\x03\x02" + - "\x02\x02\u01AF\u01B0\x03\x02\x02\x02\u01B0A\x03\x02\x02\x02\u01B1\u01AF" + - "\x03\x02\x02\x02\u01B2\u01B3\x05.\x18\x02\u01B3\u01B4\x07Q\x02\x02\u01B4" + - "\u01B5\x05.\x18\x02\u01B5C\x03\x02\x02\x02\u01B6\u01B7\x07\x03\x02\x02" + - "\u01B7\u01B8\x05\x14\v\x02\u01B8\u01BA\x05V,\x02\u01B9\u01BB\x05J&\x02" + - "\u01BA\u01B9\x03\x02\x02\x02\u01BA\u01BB\x03\x02\x02\x02\u01BBE\x03\x02" + - "\x02\x02\u01BC\u01BD\x07\t\x02\x02\u01BD\u01BE\x05\x14\v\x02\u01BE\u01BF" + - "\x05V,\x02\u01BFG\x03\x02\x02\x02\u01C0\u01C1\x07\r\x02\x02\u01C1\u01C2" + - "\x05,\x17\x02\u01C2I\x03\x02\x02\x02\u01C3\u01C8\x05L\'\x02\u01C4\u01C5" + - "\x07$\x02\x02\u01C5\u01C7\x05L\'\x02\u01C6\u01C4\x03\x02\x02\x02\u01C7" + - "\u01CA\x03\x02\x02\x02\u01C8\u01C6\x03\x02\x02\x02\u01C8\u01C9\x03\x02" + - "\x02\x02\u01C9K\x03\x02\x02\x02\u01CA\u01C8\x03\x02\x02\x02\u01CB\u01CC" + - "\x050\x19\x02\u01CC\u01CD\x07#\x02\x02\u01CD\u01CE\x054\x1B\x02\u01CE" + - "M\x03\x02\x02\x02\u01CF\u01D0\t\t\x02\x02\u01D0O\x03\x02\x02\x02\u01D1" + - "\u01D4\x05R*\x02\u01D2\u01D4\x05T+\x02\u01D3\u01D1\x03\x02\x02\x02\u01D3" + - "\u01D2\x03\x02\x02\x02\u01D4Q\x03\x02\x02\x02\u01D5\u01D7\t\x02\x02\x02" + - "\u01D6\u01D5\x03\x02\x02\x02\u01D6\u01D7\x03\x02\x02\x02\u01D7\u01D8\x03" + - "\x02\x02\x02\u01D8\u01D9\x07\x1F\x02\x02\u01D9S\x03\x02\x02\x02\u01DA" + - "\u01DC\t\x02\x02\x02\u01DB\u01DA\x03\x02\x02\x02\u01DB\u01DC\x03\x02\x02" + - "\x02\u01DC\u01DD\x03\x02\x02\x02\u01DD\u01DE\x07\x1E\x02\x02\u01DEU\x03" + - "\x02\x02\x02\u01DF\u01E0\x07\x1D\x02\x02\u01E0W\x03\x02\x02\x02\u01E1" + - "\u01E2\t\n\x02\x02\u01E2Y\x03\x02\x02\x02\u01E3\u01E4\x07\x07\x02\x02" + - "\u01E4\u01E5\x05\\/\x02\u01E5[\x03\x02\x02\x02\u01E6\u01E7\x07A\x02\x02" + - "\u01E7\u01E8\x05\x04\x03\x02\u01E8\u01E9\x07B\x02\x02\u01E9]\x03\x02\x02" + - "\x02\u01EA\u01EB\x07\x11\x02\x02\u01EB\u01EF\x07`\x02\x02\u01EC\u01ED" + - "\x07\x11\x02\x02\u01ED\u01EF\x07a\x02\x02\u01EE\u01EA\x03\x02\x02\x02" + - "\u01EE\u01EC\x03\x02\x02\x02\u01EF_\x03\x02\x02\x02\u01F0\u01F1\x07\x05" + - "\x02\x02\u01F1\u01F4\x05*\x16\x02\u01F2\u01F3\x07U\x02\x02\u01F3\u01F5" + - "\x05.\x18\x02\u01F4\u01F2\x03\x02\x02\x02\u01F4\u01F5\x03\x02\x02\x02" + - "\u01F5\u01FF\x03\x02\x02\x02\u01F6\u01F7\x07V\x02\x02\u01F7\u01FC\x05" + - "b2\x02\u01F8\u01F9\x07$\x02\x02\u01F9\u01FB\x05b2\x02\u01FA\u01F8\x03" + - "\x02\x02\x02\u01FB\u01FE\x03\x02\x02\x02\u01FC\u01FA\x03\x02\x02\x02\u01FC" + - "\u01FD\x03\x02\x02\x02\u01FD\u0200\x03\x02\x02\x02\u01FE\u01FC\x03\x02" + - "\x02\x02\u01FF\u01F6\x03\x02\x02\x02\u01FF\u0200\x03\x02\x02\x02\u0200" + - "a\x03\x02\x02\x02\u0201\u0202\x05.\x18\x02\u0202\u0203\x07#\x02\x02\u0203" + - "\u0205\x03\x02\x02\x02\u0204\u0201\x03\x02\x02\x02\u0204\u0205\x03\x02" + - "\x02\x02\u0205\u0206\x03\x02\x02\x02\u0206\u0207\x05.\x18\x02\u0207c\x03" + - "\x02\x02\x026ov\x85\x91\x9A\xA2\xA6\xAE\xB0\xB5\xBC\xC1\xC8\xCE\xD6\xD8" + - "\xE2\xEC\xEF\xFB\u0103\u010B\u010F\u0118\u0122\u0126\u012C\u0133\u013D" + - "\u0145\u015B\u0166\u0171\u0176\u0181\u0186\u018A\u0192\u019B\u019E\u01A6" + - "\u01AF\u01BA\u01C8\u01D3\u01D6\u01DB\u01EE\u01F4\u01FC\u01FF\u0204"; + "^\x02`\x02b\x02d\x02\x02\v\x03\x02<=\x03\x02>@\x04\x02DDII\x03\x02CD\x04" + + "\x02DDMM\x04\x02\"\"%%\x03\x02()\x04\x02\'\'55\x03\x026;\x02\u0234\x02" + + "f\x03\x02\x02\x02\x04i\x03\x02\x02\x02\x06x\x03\x02\x02\x02\b\x87\x03" + + "\x02\x02\x02\n\x89\x03\x02\x02\x02\f\xA8\x03\x02\x02\x02\x0E\xC3\x03\x02" + + "\x02\x02\x10\xCA\x03\x02\x02\x02\x12\xD0\x03\x02\x02\x02\x14\xE4\x03\x02" + + "\x02\x02\x16\xE6\x03\x02\x02\x02\x18\xF5\x03\x02\x02\x02\x1A\xF8\x03\x02" + + "\x02\x02\x1C\u0105\x03\x02\x02\x02\x1E\u0107\x03\x02\x02\x02 \u0113\x03" + + "\x02\x02\x02\"\u011F\x03\x02\x02\x02$\u0122\x03\x02\x02\x02&\u012A\x03" + + "\x02\x02\x02(\u0130\x03\x02\x02\x02*\u0138\x03\x02\x02\x02,\u013A\x03" + + "\x02\x02\x02.\u0142\x03\x02\x02\x020\u014A\x03\x02\x02\x022\u014C\x03" + + "\x02\x02\x024\u0178\x03\x02\x02\x026\u017A\x03\x02\x02\x028\u017D\x03" + + "\x02\x02\x02:\u0186\x03\x02\x02\x02<\u01A0\x03\x02\x02\x02>\u01A2\x03" + + "\x02\x02\x02@\u01AB\x03\x02\x02\x02B\u01B4\x03\x02\x02\x02D\u01B8\x03" + + "\x02\x02\x02F\u01BE\x03\x02\x02\x02H\u01C2\x03\x02\x02\x02J\u01C5\x03" + + "\x02\x02\x02L\u01CD\x03\x02\x02\x02N\u01D1\x03\x02\x02\x02P\u01D5\x03" + + "\x02\x02\x02R\u01D8\x03\x02\x02\x02T\u01DD\x03\x02\x02\x02V\u01E1\x03" + + "\x02\x02\x02X\u01E3\x03\x02\x02\x02Z\u01E5\x03\x02\x02\x02\\\u01E8\x03" + + "\x02\x02\x02^\u01F0\x03\x02\x02\x02`\u01F2\x03\x02\x02\x02b\u020C\x03" + + "\x02\x02\x02d\u0210\x03\x02\x02\x02fg\x05\x04\x03\x02gh\x07\x02\x02\x03" + + "h\x03\x03\x02\x02\x02ij\b\x03\x01\x02jk\x05\x06\x04\x02kq\x03\x02\x02" + + "\x02lm\f\x03\x02\x02mn\x07\x1C\x02\x02np\x05\b\x05\x02ol\x03\x02\x02\x02" + + "ps\x03\x02\x02\x02qo\x03\x02\x02\x02qr\x03\x02\x02\x02r\x05\x03\x02\x02" + + "\x02sq\x03\x02\x02\x02ty\x05Z.\x02uy\x05\x1E\x10\x02vy\x05\x18\r\x02w" + + "y\x05^0\x02xt\x03\x02\x02\x02xu\x03\x02\x02\x02xv\x03\x02\x02\x02xw\x03" + + "\x02\x02\x02y\x07\x03\x02\x02\x02z\x88\x05\"\x12\x02{\x88\x05&\x14\x02" + + "|\x88\x056\x1C\x02}\x88\x05<\x1F\x02~\x88\x058\x1D\x02\x7F\x88\x05$\x13" + + "\x02\x80\x88\x05\n\x06\x02\x81\x88\x05> \x02\x82\x88\x05@!\x02\x83\x88" + + "\x05D#\x02\x84\x88\x05F$\x02\x85\x88\x05`1\x02\x86\x88\x05H%\x02\x87z" + + "\x03\x02\x02\x02\x87{\x03\x02\x02\x02\x87|\x03\x02\x02\x02\x87}\x03\x02" + + "\x02\x02\x87~\x03\x02\x02\x02\x87\x7F\x03\x02\x02\x02\x87\x80\x03\x02" + + "\x02\x02\x87\x81\x03\x02\x02\x02\x87\x82\x03\x02\x02\x02\x87\x83\x03\x02" + + "\x02\x02\x87\x84\x03\x02\x02\x02\x87\x85\x03\x02\x02\x02\x87\x86\x03\x02" + + "\x02\x02\x88\t\x03\x02\x02\x02\x89\x8A\x07\x14\x02\x02\x8A\x8B\x05\f\x07" + + "\x02\x8B\v\x03\x02\x02\x02\x8C\x8D\b\x07\x01\x02\x8D\x8E\x07.\x02\x02" + + "\x8E\xA9\x05\f\x07\t\x8F\xA9\x05\x10\t\x02\x90\xA9\x05\x0E\b\x02\x91\x93" + + "\x05\x10\t\x02\x92\x94\x07.\x02\x02\x93\x92\x03\x02\x02\x02\x93\x94\x03" + + "\x02\x02\x02\x94\x95\x03\x02\x02\x02\x95\x96\x07+\x02\x02\x96\x97\x07" + + "*\x02\x02\x97\x9C\x05\x10\t\x02\x98\x99\x07$\x02\x02\x99\x9B\x05\x10\t" + + "\x02\x9A\x98\x03\x02\x02\x02\x9B\x9E\x03\x02\x02\x02\x9C\x9A\x03\x02\x02" + + "\x02\x9C\x9D\x03\x02\x02\x02\x9D\x9F\x03\x02\x02\x02\x9E\x9C\x03\x02\x02" + + "\x02\x9F\xA0\x074\x02\x02\xA0\xA9\x03\x02\x02\x02\xA1\xA2\x05\x10\t\x02" + + "\xA2\xA4\x07,\x02\x02\xA3\xA5\x07.\x02\x02\xA4\xA3\x03\x02\x02\x02\xA4" + + "\xA5\x03\x02\x02\x02\xA5\xA6\x03\x02\x02\x02\xA6\xA7\x07/\x02\x02\xA7" + + "\xA9\x03\x02\x02\x02\xA8\x8C\x03\x02\x02\x02\xA8\x8F\x03\x02\x02\x02\xA8" + + "\x90\x03\x02\x02\x02\xA8\x91\x03\x02\x02\x02\xA8\xA1\x03\x02\x02\x02\xA9" + + "\xB2\x03\x02\x02\x02\xAA\xAB\f\x06\x02\x02\xAB\xAC\x07!\x02\x02\xAC\xB1" + + "\x05\f\x07\x07\xAD\xAE\f\x05\x02\x02\xAE\xAF\x071\x02\x02\xAF\xB1\x05" + + "\f\x07\x06\xB0\xAA\x03\x02\x02\x02\xB0\xAD\x03\x02\x02\x02\xB1\xB4\x03" + + "\x02\x02\x02\xB2\xB0\x03\x02\x02\x02\xB2\xB3\x03\x02\x02\x02\xB3\r\x03" + + "\x02\x02\x02\xB4\xB2\x03\x02\x02\x02\xB5\xB7\x05\x10\t\x02\xB6\xB8\x07" + + ".\x02\x02\xB7\xB6\x03\x02\x02\x02\xB7\xB8\x03\x02\x02\x02\xB8\xB9\x03" + + "\x02\x02\x02\xB9\xBA\x07-\x02\x02\xBA\xBB\x05V,\x02\xBB\xC4\x03\x02\x02" + + "\x02\xBC\xBE\x05\x10\t\x02\xBD\xBF\x07.\x02\x02\xBE\xBD\x03\x02\x02\x02" + + "\xBE\xBF\x03\x02\x02\x02\xBF\xC0\x03\x02\x02\x02\xC0\xC1\x073\x02\x02" + + "\xC1\xC2\x05V,\x02\xC2\xC4\x03\x02\x02\x02\xC3\xB5\x03\x02\x02\x02\xC3" + + "\xBC\x03\x02\x02\x02\xC4\x0F\x03\x02\x02\x02\xC5\xCB\x05\x12\n\x02\xC6" + + "\xC7\x05\x12\n\x02\xC7\xC8\x05X-\x02\xC8\xC9\x05\x12\n\x02\xC9\xCB\x03" + + "\x02\x02\x02\xCA\xC5\x03\x02\x02\x02\xCA\xC6\x03\x02\x02\x02\xCB\x11\x03" + + "\x02\x02\x02\xCC\xCD\b\n\x01\x02\xCD\xD1\x05\x14\v\x02\xCE\xCF\t\x02\x02" + + "\x02\xCF\xD1\x05\x12\n\x05\xD0\xCC\x03\x02\x02\x02\xD0\xCE\x03\x02\x02" + + "\x02\xD1\xDA\x03\x02\x02\x02\xD2\xD3\f\x04\x02\x02\xD3\xD4\t\x03\x02\x02" + + "\xD4\xD9\x05\x12\n\x05\xD5\xD6\f\x03\x02\x02\xD6\xD7\t\x02\x02\x02\xD7" + + "\xD9\x05\x12\n\x04\xD8\xD2\x03\x02\x02\x02\xD8\xD5\x03\x02\x02\x02\xD9" + + "\xDC\x03\x02\x02\x02\xDA\xD8\x03\x02\x02\x02\xDA\xDB\x03\x02\x02\x02\xDB" + + "\x13\x03\x02\x02\x02\xDC\xDA\x03\x02\x02\x02\xDD\xE5\x054\x1B\x02\xDE" + + "\xE5\x05,\x17\x02\xDF\xE5\x05\x16\f\x02\xE0\xE1\x07*\x02\x02\xE1\xE2\x05" + + "\f\x07\x02\xE2\xE3\x074\x02\x02\xE3\xE5\x03\x02\x02\x02\xE4\xDD\x03\x02" + + "\x02\x02\xE4\xDE\x03\x02\x02\x02\xE4\xDF\x03\x02\x02\x02\xE4\xE0\x03\x02" + + "\x02\x02\xE5\x15\x03\x02\x02\x02\xE6\xE7\x050\x19\x02\xE7\xF1\x07*\x02" + + "\x02\xE8\xF2\x07>\x02\x02\xE9\xEE\x05\f\x07\x02\xEA\xEB\x07$\x02\x02\xEB" + + "\xED\x05\f\x07\x02\xEC\xEA\x03\x02\x02\x02\xED\xF0\x03\x02\x02\x02\xEE" + + "\xEC\x03\x02\x02\x02\xEE\xEF\x03\x02\x02\x02\xEF\xF2\x03\x02\x02\x02\xF0" + + "\xEE\x03\x02\x02\x02\xF1\xE8\x03\x02\x02\x02\xF1\xE9\x03\x02\x02\x02\xF1" + + "\xF2\x03\x02\x02\x02\xF2\xF3\x03\x02\x02\x02\xF3\xF4\x074\x02\x02\xF4" + + "\x17\x03\x02\x02\x02\xF5\xF6\x07\x10\x02\x02\xF6\xF7\x05\x1A\x0E\x02\xF7" + + "\x19\x03\x02\x02\x02\xF8\xFD\x05\x1C\x0F\x02\xF9\xFA\x07$\x02\x02\xFA" + + "\xFC\x05\x1C\x0F\x02\xFB\xF9\x03\x02\x02\x02\xFC\xFF\x03\x02\x02\x02\xFD" + + "\xFB\x03\x02\x02\x02\xFD\xFE\x03\x02\x02\x02\xFE\x1B\x03\x02\x02\x02\xFF" + + "\xFD\x03\x02\x02\x02\u0100\u0106\x05\f\x07\x02\u0101\u0102\x05,\x17\x02" + + "\u0102\u0103\x07#\x02\x02\u0103\u0104\x05\f\x07\x02\u0104\u0106\x03\x02" + + "\x02\x02\u0105\u0100\x03\x02\x02\x02\u0105\u0101\x03\x02\x02\x02\u0106" + + "\x1D\x03\x02\x02\x02\u0107\u0108\x07\b\x02\x02\u0108\u010D\x05*\x16\x02" + + "\u0109\u010A\x07$\x02\x02\u010A\u010C\x05*\x16\x02\u010B\u0109\x03\x02" + + "\x02\x02\u010C\u010F\x03\x02\x02\x02\u010D\u010B\x03\x02\x02\x02\u010D" + + "\u010E\x03\x02\x02\x02\u010E\u0111\x03\x02\x02\x02\u010F\u010D\x03\x02" + + "\x02\x02\u0110\u0112\x05 \x11\x02\u0111\u0110\x03\x02\x02\x02\u0111\u0112" + + "\x03\x02\x02\x02\u0112\x1F\x03\x02\x02\x02\u0113\u0114\x07A\x02\x02\u0114" + + "\u0115\x07H\x02\x02\u0115\u011A\x05*\x16\x02\u0116\u0117\x07$\x02\x02" + + "\u0117\u0119\x05*\x16\x02\u0118\u0116\x03\x02\x02\x02\u0119\u011C\x03" + + "\x02\x02\x02\u011A\u0118\x03\x02\x02\x02\u011A\u011B\x03\x02\x02\x02\u011B" + + "\u011D\x03\x02\x02\x02\u011C\u011A\x03\x02\x02\x02\u011D\u011E\x07B\x02" + + "\x02\u011E!\x03\x02\x02\x02\u011F\u0120\x07\x06\x02\x02\u0120\u0121\x05" + + "\x1A\x0E\x02\u0121#\x03\x02\x02\x02\u0122\u0124\x07\x13\x02\x02\u0123" + + "\u0125\x05\x1A\x0E\x02\u0124\u0123\x03\x02\x02\x02\u0124\u0125\x03\x02" + + "\x02\x02\u0125\u0128\x03\x02\x02\x02\u0126\u0127\x07 \x02\x02\u0127\u0129" + + "\x05(\x15\x02\u0128\u0126\x03\x02\x02\x02\u0128\u0129\x03\x02\x02\x02" + + "\u0129%\x03\x02\x02\x02\u012A\u012B\x07\n\x02\x02\u012B\u012E\x05\x1A" + + "\x0E\x02\u012C\u012D\x07 \x02\x02\u012D\u012F\x05(\x15\x02\u012E\u012C" + + "\x03\x02\x02\x02\u012E\u012F\x03\x02\x02\x02\u012F\'\x03\x02\x02\x02\u0130" + + "\u0135\x05,\x17\x02\u0131\u0132\x07$\x02\x02\u0132\u0134\x05,\x17\x02" + + "\u0133\u0131\x03\x02\x02\x02\u0134\u0137\x03\x02\x02\x02\u0135\u0133\x03" + + "\x02\x02\x02\u0135\u0136\x03\x02\x02\x02\u0136)\x03\x02\x02\x02\u0137" + + "\u0135\x03\x02\x02\x02\u0138\u0139\t\x04\x02\x02\u0139+\x03\x02\x02\x02" + + "\u013A\u013F\x050\x19\x02\u013B\u013C\x07&\x02\x02\u013C\u013E\x050\x19" + + "\x02\u013D\u013B\x03\x02\x02\x02\u013E\u0141\x03\x02\x02\x02\u013F\u013D" + + "\x03\x02\x02\x02\u013F\u0140\x03\x02\x02\x02\u0140-\x03\x02\x02\x02\u0141" + + "\u013F\x03\x02\x02\x02\u0142\u0147\x052\x1A\x02\u0143\u0144\x07&\x02\x02" + + "\u0144\u0146\x052\x1A\x02\u0145\u0143\x03\x02\x02\x02\u0146\u0149\x03" + + "\x02\x02\x02\u0147\u0145\x03\x02\x02\x02\u0147\u0148\x03\x02\x02\x02\u0148" + + "/\x03\x02\x02\x02\u0149\u0147\x03\x02\x02\x02\u014A\u014B\t\x05\x02\x02" + + "\u014B1\x03\x02\x02\x02\u014C\u014D\t\x06\x02\x02\u014D3\x03\x02\x02\x02" + + "\u014E\u0179\x07/\x02\x02\u014F\u0150\x05T+\x02\u0150\u0151\x07C\x02\x02" + + "\u0151\u0179\x03\x02\x02\x02\u0152\u0179\x05R*\x02\u0153\u0179\x05T+\x02" + + "\u0154\u0179\x05N(\x02\u0155\u0179\x072\x02\x02\u0156\u0179\x05V,\x02" + + "\u0157\u0158\x07A\x02\x02\u0158\u015D\x05P)\x02\u0159\u015A\x07$\x02\x02" + + "\u015A\u015C\x05P)\x02\u015B\u0159\x03\x02\x02\x02\u015C\u015F\x03\x02" + + "\x02\x02\u015D\u015B\x03\x02\x02\x02\u015D\u015E\x03\x02\x02\x02\u015E" + + "\u0160\x03\x02\x02\x02\u015F\u015D\x03\x02\x02\x02\u0160\u0161\x07B\x02" + + "\x02\u0161\u0179\x03\x02\x02\x02\u0162\u0163\x07A\x02\x02\u0163\u0168" + + "\x05N(\x02\u0164\u0165\x07$\x02\x02\u0165\u0167\x05N(\x02\u0166\u0164" + + "\x03\x02\x02\x02\u0167\u016A\x03\x02\x02\x02\u0168\u0166\x03\x02\x02\x02" + + "\u0168\u0169\x03\x02\x02\x02\u0169\u016B\x03\x02\x02\x02\u016A\u0168\x03" + + "\x02\x02\x02\u016B\u016C\x07B\x02\x02\u016C\u0179\x03\x02\x02\x02\u016D" + + "\u016E\x07A\x02\x02\u016E\u0173\x05V,\x02\u016F\u0170\x07$\x02\x02\u0170" + + "\u0172\x05V,\x02\u0171\u016F\x03\x02\x02\x02\u0172\u0175\x03\x02\x02\x02" + + "\u0173\u0171\x03\x02\x02\x02\u0173\u0174\x03\x02\x02\x02\u0174\u0176\x03" + + "\x02\x02\x02\u0175\u0173\x03\x02\x02\x02\u0176\u0177\x07B\x02\x02\u0177" + + "\u0179\x03\x02\x02\x02\u0178\u014E\x03\x02\x02\x02\u0178\u014F\x03\x02" + + "\x02\x02\u0178\u0152\x03\x02\x02\x02\u0178\u0153\x03\x02\x02\x02\u0178" + + "\u0154\x03\x02\x02\x02\u0178\u0155\x03\x02\x02\x02\u0178\u0156\x03\x02" + + "\x02\x02\u0178\u0157\x03\x02\x02\x02\u0178\u0162\x03\x02\x02\x02\u0178" + + "\u016D\x03\x02\x02\x02\u01795\x03\x02\x02\x02\u017A\u017B\x07\f\x02\x02" + + "\u017B\u017C\x07\x1E\x02\x02\u017C7\x03\x02\x02\x02\u017D\u017E\x07\x12" + + "\x02\x02\u017E\u0183\x05:\x1E\x02\u017F\u0180\x07$\x02\x02\u0180\u0182" + + "\x05:\x1E\x02\u0181\u017F\x03\x02\x02\x02\u0182\u0185\x03\x02\x02\x02" + + "\u0183\u0181\x03\x02\x02\x02\u0183\u0184\x03\x02\x02\x02\u01849\x03\x02" + + "\x02\x02\u0185\u0183\x03\x02\x02\x02\u0186\u0188\x05\f\x07\x02\u0187\u0189" + + "\t\x07\x02\x02\u0188\u0187\x03\x02\x02\x02\u0188\u0189\x03\x02\x02\x02" + + "\u0189\u018C\x03\x02\x02\x02\u018A\u018B\x070\x02\x02\u018B\u018D\t\b" + + "\x02\x02\u018C\u018A\x03\x02\x02\x02\u018C\u018D\x03\x02\x02\x02\u018D" + + ";\x03\x02\x02\x02\u018E\u018F\x07\v\x02\x02\u018F\u0194\x05.\x18\x02\u0190" + + "\u0191\x07$\x02\x02\u0191\u0193\x05.\x18\x02\u0192\u0190\x03\x02\x02\x02" + + "\u0193\u0196\x03\x02\x02\x02\u0194\u0192\x03\x02\x02\x02\u0194\u0195\x03" + + "\x02\x02\x02\u0195\u01A1\x03\x02\x02\x02\u0196\u0194\x03\x02\x02\x02\u0197" + + "\u0198\x07\x0E\x02\x02\u0198\u019D\x05.\x18\x02\u0199\u019A\x07$\x02\x02" + + "\u019A\u019C\x05.\x18\x02\u019B\u0199\x03\x02\x02\x02\u019C\u019F\x03" + + "\x02\x02\x02\u019D\u019B\x03\x02\x02\x02\u019D\u019E\x03\x02\x02\x02\u019E" + + "\u01A1\x03\x02\x02\x02\u019F\u019D\x03\x02\x02\x02\u01A0\u018E\x03\x02" + + "\x02\x02\u01A0\u0197\x03\x02\x02\x02\u01A1=\x03\x02\x02\x02\u01A2\u01A3" + + "\x07\x04\x02\x02\u01A3\u01A8\x05.\x18\x02\u01A4\u01A5\x07$\x02\x02\u01A5" + + "\u01A7\x05.\x18\x02\u01A6\u01A4\x03\x02\x02\x02\u01A7\u01AA\x03\x02\x02" + + "\x02\u01A8\u01A6\x03\x02\x02\x02\u01A8\u01A9\x03\x02\x02\x02\u01A9?\x03" + + "\x02\x02\x02\u01AA\u01A8\x03\x02\x02\x02\u01AB\u01AC\x07\x0F\x02\x02\u01AC" + + "\u01B1\x05B\"\x02\u01AD\u01AE\x07$\x02\x02\u01AE\u01B0\x05B\"\x02\u01AF" + + "\u01AD\x03\x02\x02\x02\u01B0\u01B3\x03\x02\x02\x02\u01B1\u01AF\x03\x02" + + "\x02\x02\u01B1\u01B2\x03\x02\x02\x02\u01B2A\x03\x02\x02\x02\u01B3\u01B1" + + "\x03\x02\x02\x02\u01B4\u01B5\x05.\x18\x02\u01B5\u01B6\x07Q\x02\x02\u01B6" + + "\u01B7\x05.\x18\x02\u01B7C\x03\x02\x02\x02\u01B8\u01B9\x07\x03\x02\x02" + + "\u01B9\u01BA\x05\x14\v\x02\u01BA\u01BC\x05V,\x02\u01BB\u01BD\x05J&\x02" + + "\u01BC\u01BB\x03\x02\x02\x02\u01BC\u01BD\x03\x02\x02\x02\u01BDE\x03\x02" + + "\x02\x02\u01BE\u01BF\x07\t\x02\x02\u01BF\u01C0\x05\x14\v\x02\u01C0\u01C1" + + "\x05V,\x02\u01C1G\x03\x02\x02\x02\u01C2\u01C3\x07\r\x02\x02\u01C3\u01C4" + + "\x05,\x17\x02\u01C4I\x03\x02\x02\x02\u01C5\u01CA\x05L\'\x02\u01C6\u01C7" + + "\x07$\x02\x02\u01C7\u01C9\x05L\'\x02\u01C8\u01C6\x03\x02\x02\x02\u01C9" + + "\u01CC\x03\x02\x02\x02\u01CA\u01C8\x03\x02\x02\x02\u01CA\u01CB\x03\x02" + + "\x02\x02\u01CBK\x03\x02\x02\x02\u01CC\u01CA\x03\x02\x02\x02\u01CD\u01CE" + + "\x050\x19\x02\u01CE\u01CF\x07#\x02\x02\u01CF\u01D0\x054\x1B\x02\u01D0" + + "M\x03\x02\x02\x02\u01D1\u01D2\t\t\x02\x02\u01D2O\x03\x02\x02\x02\u01D3" + + "\u01D6\x05R*\x02\u01D4\u01D6\x05T+\x02\u01D5\u01D3\x03\x02\x02\x02\u01D5" + + "\u01D4\x03\x02\x02\x02\u01D6Q\x03\x02\x02\x02\u01D7\u01D9\t\x02\x02\x02" + + "\u01D8\u01D7\x03\x02\x02\x02\u01D8\u01D9\x03\x02\x02\x02\u01D9\u01DA\x03" + + "\x02\x02\x02\u01DA\u01DB\x07\x1F\x02\x02\u01DBS\x03\x02\x02\x02\u01DC" + + "\u01DE\t\x02\x02\x02\u01DD\u01DC\x03\x02\x02\x02\u01DD\u01DE\x03\x02\x02" + + "\x02\u01DE\u01DF\x03\x02\x02\x02\u01DF\u01E0\x07\x1E\x02\x02\u01E0U\x03" + + "\x02\x02\x02\u01E1\u01E2\x07\x1D\x02\x02\u01E2W\x03\x02\x02\x02\u01E3" + + "\u01E4\t\n\x02\x02\u01E4Y\x03\x02\x02\x02\u01E5\u01E6\x07\x07\x02\x02" + + "\u01E6\u01E7\x05\\/\x02\u01E7[\x03\x02\x02\x02\u01E8\u01E9\x07A\x02\x02" + + "\u01E9\u01EA\x05\x04\x03\x02\u01EA\u01EB\x07B\x02\x02\u01EB]\x03\x02\x02" + + "\x02\u01EC\u01ED\x07\x11\x02\x02\u01ED\u01F1\x07a\x02\x02\u01EE\u01EF" + + "\x07\x11\x02\x02\u01EF\u01F1\x07b\x02\x02\u01F0\u01EC\x03\x02\x02\x02" + + "\u01F0\u01EE\x03\x02\x02\x02\u01F1_\x03\x02\x02\x02\u01F2\u01F6\x07\x05" + + "\x02\x02\u01F3\u01F5\x05d3\x02\u01F4\u01F3\x03\x02\x02\x02\u01F5\u01F8" + + "\x03\x02\x02\x02\u01F6\u01F4\x03\x02\x02\x02\u01F6\u01F7\x03\x02\x02\x02" + + "\u01F7\u01F9\x03\x02\x02\x02\u01F8\u01F6\x03\x02\x02\x02\u01F9\u01FC\x07" + + "W\x02\x02\u01FA\u01FB\x07U\x02\x02\u01FB\u01FD\x05.\x18\x02\u01FC\u01FA" + + "\x03\x02\x02\x02\u01FC\u01FD\x03\x02\x02\x02\u01FD\u0207\x03\x02\x02\x02" + + "\u01FE\u01FF\x07V\x02\x02\u01FF\u0204\x05b2\x02\u0200\u0201\x07$\x02\x02" + + "\u0201\u0203\x05b2\x02\u0202\u0200\x03\x02\x02\x02\u0203\u0206\x03\x02" + + "\x02\x02\u0204\u0202\x03\x02\x02\x02\u0204\u0205\x03\x02\x02\x02\u0205" + + "\u0208\x03\x02\x02\x02\u0206\u0204\x03\x02\x02\x02\u0207\u01FE\x03\x02" + + "\x02\x02\u0207\u0208\x03\x02\x02\x02\u0208a\x03\x02\x02\x02\u0209\u020A" + + "\x05.\x18\x02\u020A\u020B\x07#\x02\x02\u020B\u020D\x03\x02\x02\x02\u020C" + + "\u0209\x03\x02\x02\x02\u020C\u020D\x03\x02\x02\x02\u020D\u020E\x03\x02" + + "\x02\x02\u020E\u020F\x05.\x18\x02\u020Fc\x03\x02\x02\x02\u0210\u0211\x07" + + "A\x02\x02\u0211\u0212\x07g\x02\x02\u0212\u0213\x07f\x02\x02\u0213\u0214" + + "\x07g\x02\x02\u0214\u0215\x07B\x02\x02\u0215e\x03\x02\x02\x027qx\x87\x93" + + "\x9C\xA4\xA8\xB0\xB2\xB7\xBE\xC3\xCA\xD0\xD8\xDA\xE4\xEE\xF1\xFD\u0105" + + "\u010D\u0111\u011A\u0124\u0128\u012E\u0135\u013F\u0147\u015D\u0168\u0173" + + "\u0178\u0183\u0188\u018C\u0194\u019D\u01A0\u01A8\u01B1\u01BC\u01CA\u01D5" + + "\u01D8\u01DD\u01F0\u01F6\u01FC\u0204\u0207\u020C"; public static __ATN: ATN; public static get _ATN(): ATN { if (!esql_parser.__ATN) { @@ -4266,7 +4334,7 @@ export class IdentifierContext extends ParserRuleContext { export class IdentifierPatternContext extends ParserRuleContext { - public PROJECT_UNQUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.PROJECT_UNQUOTED_IDENTIFIER, 0); } + public UNQUOTED_ID_PATTERN(): TerminalNode | undefined { return this.tryGetToken(esql_parser.UNQUOTED_ID_PATTERN, 0); } public QUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.QUOTED_IDENTIFIER, 0); } constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); @@ -5208,11 +5276,18 @@ export class ShowFunctionsContext extends ShowCommandContext { export class EnrichCommandContext extends ParserRuleContext { - public _policyName: FromIdentifierContext; + public _policyName: Token; public _matchField: QualifiedNamePatternContext; public ENRICH(): TerminalNode { return this.getToken(esql_parser.ENRICH, 0); } - public fromIdentifier(): FromIdentifierContext { - return this.getRuleContext(0, FromIdentifierContext); + public ENRICH_POLICY_NAME(): TerminalNode { return this.getToken(esql_parser.ENRICH_POLICY_NAME, 0); } + public setting(): SettingContext[]; + public setting(i: number): SettingContext; + public setting(i?: number): SettingContext | SettingContext[] { + if (i === undefined) { + return this.getRuleContexts(SettingContext); + } else { + return this.getRuleContext(i, SettingContext); + } } public ON(): TerminalNode | undefined { return this.tryGetToken(esql_parser.ON, 0); } public WITH(): TerminalNode | undefined { return this.tryGetToken(esql_parser.WITH, 0); } @@ -5290,3 +5365,38 @@ export class EnrichWithClauseContext extends ParserRuleContext { } +export class SettingContext extends ParserRuleContext { + public _name: Token; + public _value: Token; + public OPENING_BRACKET(): TerminalNode { return this.getToken(esql_parser.OPENING_BRACKET, 0); } + public COLON(): TerminalNode { return this.getToken(esql_parser.COLON, 0); } + public CLOSING_BRACKET(): TerminalNode { return this.getToken(esql_parser.CLOSING_BRACKET, 0); } + public SETTING(): TerminalNode[]; + public SETTING(i: number): TerminalNode; + public SETTING(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(esql_parser.SETTING); + } else { + return this.getToken(esql_parser.SETTING, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return esql_parser.RULE_setting; } + // @Override + public enterRule(listener: esql_parserListener): void { + if (listener.enterSetting) { + listener.enterSetting(this); + } + } + // @Override + public exitRule(listener: esql_parserListener): void { + if (listener.exitSetting) { + listener.exitSetting(this); + } + } +} + + diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts b/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts index de114f648d0b0..ade6be71e52fc 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts @@ -82,6 +82,7 @@ import { SubqueryExpressionContext } from "./esql_parser"; import { ShowCommandContext } from "./esql_parser"; import { EnrichCommandContext } from "./esql_parser"; import { EnrichWithClauseContext } from "./esql_parser"; +import { SettingContext } from "./esql_parser"; /** @@ -1004,5 +1005,16 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitEnrichWithClause?: (ctx: EnrichWithClauseContext) => void; + + /** + * Enter a parse tree produced by `esql_parser.setting`. + * @param ctx the parse tree + */ + enterSetting?: (ctx: SettingContext) => void; + /** + * Exit a parse tree produced by `esql_parser.setting`. + * @param ctx the parse tree + */ + exitSetting?: (ctx: SettingContext) => void; } diff --git a/packages/kbn-monaco/src/esql/language.ts b/packages/kbn-monaco/src/esql/language.ts index 956baa4405e0a..33a911b2272d6 100644 --- a/packages/kbn-monaco/src/esql/language.ts +++ b/packages/kbn-monaco/src/esql/language.ts @@ -91,7 +91,7 @@ export const ESQLLang: CustomLangModuleType = { }, getSuggestionProvider: (callbacks?: ESQLCallbacks): monaco.languages.CompletionItemProvider => { return { - triggerCharacters: [',', '(', '=', ' ', ''], + triggerCharacters: [',', '(', '=', ' ', '[', ''], async provideCompletionItems( model: monaco.editor.ITextModel, position: monaco.Position, diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts index 939d6d764f513..c86e04cac5737 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts @@ -43,6 +43,7 @@ import { getPolicyName, getMatchField, getEnrichClauses, + getPolicySettings, } from './ast_walker'; import type { ESQLAst } from './types'; @@ -244,6 +245,11 @@ export class AstListener implements ESQLParserListener { exitEnrichCommand(ctx: EnrichCommandContext) { const command = createCommand('enrich', ctx); this.ast.push(command); - command.args.push(...getPolicyName(ctx), ...getMatchField(ctx), ...getEnrichClauses(ctx)); + command.args.push( + ...getPolicySettings(ctx), + ...getPolicyName(ctx), + ...getMatchField(ctx), + ...getEnrichClauses(ctx) + ); } } diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts index 1a7dc44160872..d972b76b1c207 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts @@ -6,6 +6,11 @@ * Side Public License, v 1. */ +/** + * In case of changes in the grammar, this script should be updated: esql_update_ast_script.js + */ + +import { Token } from 'antlr4ts'; import type { ParserRuleContext } from 'antlr4ts/ParserRuleContext'; import { ErrorNode } from 'antlr4ts/tree/ErrorNode'; import type { TerminalNode } from 'antlr4ts/tree/TerminalNode'; @@ -14,6 +19,7 @@ import type { DecimalValueContext, IntegerValueContext, QualifiedIntegerLiteralContext, + SettingContext, } from '../../antlr/esql_parser'; import { getPosition } from './ast_position_utils'; import type { @@ -27,6 +33,7 @@ import type { ESQLColumn, ESQLCommandOption, ESQLAstItem, + ESQLCommandMode, } from './types'; export function nonNullable(v: T): v is NonNullable { @@ -80,6 +87,23 @@ export function createFakeMultiplyLiteral(ctx: ArithmeticUnaryContext): ESQLLite }; } +export function createLiteralString(token: Token): ESQLLiteral { + const text = token.text!; + return { + type: 'literal', + literalType: 'string', + text, + name: text, + value: text, + location: getPosition(token), + incomplete: Boolean(token.text === ''), + }; +} + +function isMissingText(text: string) { + return / ctx.tryGetToken(keyCode, 0)) .filter(nonNullable)[0]; } @@ -170,11 +199,12 @@ function getQuotedText(ctx: ParserRuleContext) { function getUnquotedText(ctx: ParserRuleContext) { return [ 65 /* esql_parser.UNQUOTED_IDENTIFIER */, 71 /* esql_parser.FROM_UNQUOTED_IDENTIFIER */, - 76 /* esql_parser.PROJECT_UNQUOTED_IDENTIFIER */, + 75 /* esql_parser.UNQUOTED_ID_PATTERN */, ] .map((keyCode) => ctx.tryGetToken(keyCode, 0)) .filter(nonNullable)[0]; } +/* SCRIPT_MARKER_END */ const TICKS_REGEX = /(`)/g; @@ -194,6 +224,34 @@ export function wrapIdentifierAsArray(identifierCtx return Array.isArray(identifierCtx) ? identifierCtx : [identifierCtx]; } +export function createSettingTuple(ctx: SettingContext): ESQLCommandMode { + return { + type: 'mode', + name: ctx._name?.text || '', + text: ctx.text!, + location: getPosition(ctx.start, ctx.stop), + incomplete: + (ctx._name?.text ? isMissingText(ctx._name.text) : true) || + (ctx._value?.text ? isMissingText(ctx._value.text) : true), + args: [], + }; +} + +/** + * In https://github.com/elastic/elasticsearch/pull/103949 the ENRICH policy name + * changed from rule to token type so we need to handle this specifically + */ +export function createPolicy(token: Token): ESQLSource { + return { + type: 'source', + name: token.text!, + text: token.text!, + sourceType: 'policy', + location: getPosition(token), + incomplete: false, + }; +} + export function createSource( ctx: ParserRuleContext, type: 'index' | 'policy' = 'index' diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts index 3916dc68d1ece..6764bd497cd61 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts @@ -73,6 +73,9 @@ import { computeLocationExtends, createColumnStar, wrapIdentifierAsArray, + createPolicy, + createSettingTuple, + createLiteralString, } from './ast_helpers'; import { getPosition } from './ast_position_utils'; import type { @@ -117,10 +120,25 @@ export function collectAllColumnIdentifiers( } export function getPolicyName(ctx: EnrichCommandContext) { - if (!ctx._policyName) { + if (!ctx._policyName || (ctx._policyName.text && / { + const node = createSettingTuple(setting); + if (setting._name?.text && setting._value?.text) { + node.args.push(createLiteralString(setting._value)!); + return node; + } + // incomplete setting + return node; + }); } export function getMatchField(ctx: EnrichCommandContext) { diff --git a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts index 3aaeeb9344b83..827930719a6c3 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts @@ -480,6 +480,7 @@ describe('autocomplete', () => { }); describe('enrich', () => { + const modes = ['any', 'coordinator', 'remote']; for (const prevCommand of [ '', '| enrich other-policy ', @@ -490,6 +491,18 @@ describe('autocomplete', () => { `from a ${prevCommand}| enrich `, policies.map(({ name, suggestedAs }) => suggestedAs || name) ); + testSuggestions( + `from a ${prevCommand}| enrich [`, + modes.map((mode) => `ccq.mode:${mode}`), + '[' + ); + // Not suggesting duplicate setting + testSuggestions(`from a ${prevCommand}| enrich [ccq.mode:any] [`, [], '['); + testSuggestions(`from a ${prevCommand}| enrich [ccq.mode:`, modes, ':'); + testSuggestions( + `from a ${prevCommand}| enrich [ccq.mode:any] `, + policies.map(({ name, suggestedAs }) => suggestedAs || name) + ); testSuggestions(`from a ${prevCommand}| enrich policy `, ['on', 'with', '|']); testSuggestions(`from a ${prevCommand}| enrich policy on `, [ 'stringField', diff --git a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.ts b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.ts index de1b07b39bed5..53a9c6a195c2f 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.ts @@ -14,8 +14,10 @@ import { columnExists, getColumnHit, getCommandDefinition, + getCommandMode, getCommandOption, getFunctionDefinition, + getLastCharFromTrimmed, isAssignment, isAssignmentComplete, isColumnItem, @@ -24,6 +26,7 @@ import { isLiteralItem, isOptionItem, isRestartingExpression, + isSettingItem, isSourceItem, isTimeIntervalItem, monacoPositionToOffset, @@ -34,6 +37,7 @@ import type { ESQLAst, ESQLAstItem, ESQLCommand, + ESQLCommandMode, ESQLCommandOption, ESQLFunction, ESQLSingleAstItem, @@ -60,6 +64,8 @@ import { buildVariablesDefinitions, buildOptionDefinition, TRIGGER_SUGGESTION_COMMAND, + buildSettingDefinitions, + buildSettingValueDefinitions, } from './factories'; import { EDITOR_MARKER } from '../shared/constants'; import { getAstContext, removeMarkerArgFromArgsList } from '../shared/context'; @@ -159,21 +165,31 @@ export async function suggest( let finalText = innerText; // check if all brackets are closed, otherwise close them - const unclosedBrackets = countBracketsUnclosed('(', finalText); + const unclosedRoundBrackets = countBracketsUnclosed('(', finalText); + const unclosedSquaredBrackets = countBracketsUnclosed('[', finalText); + const unclosedBrackets = unclosedRoundBrackets + unclosedSquaredBrackets; // if it's a comma by the user or a forced trigger by a function argument suggestion // add a marker to make the expression still valid if ( context.triggerCharacter === ',' || - (context.triggerKind === 0 && unclosedBrackets === 0) || + (context.triggerKind === 0 && unclosedRoundBrackets === 0) || (context.triggerCharacter === ' ' && // make this more robust (isMathFunction(innerText[offset - 2]) || isComma(innerText[offset - 2]))) ) { finalText = `${innerText.substring(0, offset)}${EDITOR_MARKER}${innerText.substring(offset)}`; } - if (unclosedBrackets > 0) { - // inject the closing brackets - finalText += Array(unclosedBrackets).fill(')').join(''); + // if there are unclosed brackets, close them + if (unclosedBrackets) { + for (const [char, count] of [ + [')', unclosedRoundBrackets], + [']', unclosedSquaredBrackets], + ]) { + if (count) { + // inject the closing brackets + finalText += Array(count).fill(char).join(''); + } + } } const { ast } = await astProvider(finalText); @@ -212,6 +228,20 @@ export async function suggest( getPolicyMetadata ); } + if (astContext.type === 'setting') { + // need this wrap/unwrap thing to make TS happy + const { setting, ...rest } = astContext; + if (setting && isSettingItem(setting)) { + return getSettingArgsSuggestions( + innerText, + ast, + { setting, ...rest }, + getFieldsByType, + getFieldsMap, + getPolicyMetadata + ); + } + } if (astContext.type === 'option') { // need this wrap/unwrap thing to make TS happy const { option, ...rest } = astContext; @@ -674,7 +704,7 @@ async function getExpressionSuggestionsByType( } const nonOptionArgs = command.args.filter( - (arg) => !isOptionItem(arg) && !Array.isArray(arg) && !arg.incomplete + (arg) => !isOptionItem(arg) && !isSettingItem(arg) && !Array.isArray(arg) && !arg.incomplete ); // Perform some checks on mandatory arguments const mandatoryArgsAlreadyPresent = @@ -955,6 +985,47 @@ async function getFunctionArgsSuggestions( return mathCommandDefinition; } +async function getSettingArgsSuggestions( + innerText: string, + commands: ESQLCommand[], + { + command, + node, + setting, + }: { + command: ESQLCommand; + setting: ESQLCommandMode; + node: ESQLSingleAstItem | undefined; + }, + getFieldsByType: GetFieldsByTypeFn, + getFieldsMaps: GetFieldsMapFn, + getPolicyMetadata: GetPolicyMetadataFn +) { + const suggestions = []; + const existingSettingArgs = new Set( + command.args + .filter((item) => isSettingItem(item) && !item.incomplete) + .map((item) => (isSettingItem(item) ? item.name : undefined)) + ); + + const settingDef = + setting.name && setting.incomplete + ? getCommandMode(setting.name) + : getCommandDefinition(command.name).modes.find(({ name }) => !existingSettingArgs.has(name)); + + if (settingDef) { + const lastChar = getLastCharFromTrimmed(innerText); + if (lastChar === '[') { + // COMMAND [ + suggestions.push(...buildSettingDefinitions(settingDef)); + } else if (lastChar === ':') { + // COMMAND [setting: + suggestions.push(...buildSettingValueDefinitions(settingDef)); + } + } + return suggestions; +} + async function getOptionArgsSuggestions( innerText: string, commands: ESQLCommand[], diff --git a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/factories.ts b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/factories.ts index d3da3be7a5ba9..89c867a95a539 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/factories.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/factories.ts @@ -16,6 +16,7 @@ import { FunctionDefinition, CommandDefinition, CommandOptionsDefinition, + CommandModeDefinition, } from '../definitions/types'; import { getCommandDefinition } from '../shared/helpers'; import { buildDocumentation, buildFunctionDocumentation } from './documentation_util'; @@ -218,6 +219,44 @@ export const buildOptionDefinition = (option: CommandOptionsDefinition) => { return completeItem; }; +export const buildSettingDefinitions = ( + setting: CommandModeDefinition +): AutocompleteCommandDefinition[] => { + // for now there's just a single setting with one argument + return setting.signature.params.flatMap(({ values, valueDescriptions }) => { + return values!.map((value, i) => { + const completeItem: AutocompleteCommandDefinition = { + label: `${setting.name}:${value}`, + insertText: `${setting.name}:${value}`, + kind: 21, + detail: valueDescriptions + ? `${setting.description} - ${valueDescriptions[i]}` + : setting.description, + sortText: 'D', + }; + return completeItem; + }); + }); +}; + +export const buildSettingValueDefinitions = ( + setting: CommandModeDefinition +): AutocompleteCommandDefinition[] => { + // for now there's just a single setting with one argument + return setting.signature.params.flatMap(({ values, valueDescriptions }) => { + return values!.map((value, i) => { + const completeItem: AutocompleteCommandDefinition = { + label: value, + insertText: value, + kind: 21, + detail: valueDescriptions ? valueDescriptions[i] : setting.description, + sortText: 'D', + }; + return completeItem; + }); + }); +}; + export const buildNoPoliciesAvailableDefinition = (): AutocompleteCommandDefinition => ({ label: i18n.translate('monaco.esql.autocomplete.noPoliciesLabel', { defaultMessage: 'No available policy', diff --git a/packages/kbn-monaco/src/esql/lib/ast/definitions/commands.ts b/packages/kbn-monaco/src/esql/lib/ast/definitions/commands.ts index e727cffd83a1e..cdeec2896b805 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/definitions/commands.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/definitions/commands.ts @@ -7,8 +7,9 @@ */ import { i18n } from '@kbn/i18n'; -import { isColumnItem } from '../shared/helpers'; -import { ESQLColumn, ESQLCommand, ESQLMessage } from '../types'; +import { isColumnItem, isSettingItem } from '../shared/helpers'; +import { ESQLColumn, ESQLCommand, ESQLCommandMode, ESQLMessage } from '../types'; +import { ccqMode } from './settings'; import { appendSeparatorOption, asOption, @@ -33,6 +34,7 @@ export const commandDefinitions: CommandDefinition[] = [ params: [{ name: 'assignment', type: 'any' }], }, options: [], + modes: [], }, { name: 'from', @@ -42,6 +44,7 @@ export const commandDefinitions: CommandDefinition[] = [ }), examples: ['from logs', 'from logs-*', 'from logs_*, events-*'], options: [metadataOption], + modes: [], signature: { multipleParams: true, params: [{ name: 'index', type: 'source', wildcards: true }], @@ -54,6 +57,7 @@ export const commandDefinitions: CommandDefinition[] = [ }), examples: ['show functions', 'show info'], options: [], + modes: [], signature: { multipleParams: false, params: [{ name: 'functions', type: 'function' }], @@ -71,6 +75,7 @@ export const commandDefinitions: CommandDefinition[] = [ params: [{ name: 'expression', type: 'function' }], }, options: [byOption], + modes: [], }, { name: 'eval', @@ -89,6 +94,7 @@ export const commandDefinitions: CommandDefinition[] = [ params: [{ name: 'expression', type: 'any' }], }, options: [], + modes: [], }, { name: 'rename', @@ -101,6 +107,7 @@ export const commandDefinitions: CommandDefinition[] = [ params: [{ name: 'renameClause', type: 'column' }], }, options: [asOption], + modes: [], }, { name: 'limit', @@ -114,6 +121,7 @@ export const commandDefinitions: CommandDefinition[] = [ params: [{ name: 'size', type: 'number', literalOnly: true }], }, options: [], + modes: [], }, { name: 'keep', @@ -122,6 +130,7 @@ export const commandDefinitions: CommandDefinition[] = [ }), examples: ['… | keep a', '… | keep a,b'], options: [], + modes: [], signature: { multipleParams: true, params: [{ name: 'column', type: 'column', wildcards: true }], @@ -149,6 +158,7 @@ export const commandDefinitions: CommandDefinition[] = [ }), examples: ['… | drop a', '… | drop a,b'], options: [], + modes: [], signature: { multipleParams: true, params: [{ name: 'column', type: 'column', wildcards: true }], @@ -194,6 +204,7 @@ export const commandDefinitions: CommandDefinition[] = [ '… | sort c asc nulls first', ], options: [], + modes: [], signature: { multipleParams: true, params: [ @@ -215,6 +226,7 @@ export const commandDefinitions: CommandDefinition[] = [ params: [{ name: 'expression', type: 'boolean' }], }, options: [], + modes: [], }, { name: 'dissect', @@ -224,6 +236,7 @@ export const commandDefinitions: CommandDefinition[] = [ }), examples: ['… | dissect a "%{b} %{c}"'], options: [appendSeparatorOption], + modes: [], signature: { multipleParams: false, params: [ @@ -240,6 +253,7 @@ export const commandDefinitions: CommandDefinition[] = [ }), examples: ['… | grok a "%{IP:b} %{NUMBER:c}"'], options: [], + modes: [], signature: { multipleParams: false, params: [ @@ -255,6 +269,7 @@ export const commandDefinitions: CommandDefinition[] = [ }), examples: ['row a=[1,2,3] | mv_expand a'], options: [], + modes: [], signature: { multipleParams: false, params: [{ name: 'column', type: 'column', innerType: 'list' }], @@ -272,9 +287,40 @@ export const commandDefinitions: CommandDefinition[] = [ '… | enrich my-policy on pivotField with a = enrichFieldA, b = enrichFieldB', ], options: [onOption, withOption], + modes: [ccqMode], signature: { multipleParams: false, params: [{ name: 'policyName', type: 'source', innerType: 'policy' }], }, + validate: (command: ESQLCommand) => { + const messages: ESQLMessage[] = []; + if (command.args.some(isSettingItem)) { + const settings = command.args.filter(isSettingItem); + const settingCounters: Record = {}; + const settingLookup: Record = {}; + for (const setting of settings) { + if (!settingCounters[setting.name]) { + settingCounters[setting.name] = 0; + settingLookup[setting.name] = setting; + } + settingCounters[setting.name]++; + } + const duplicateSettings = Object.entries(settingCounters).filter(([_, count]) => count > 1); + messages.push( + ...duplicateSettings.map(([name]) => ({ + location: settingLookup[name].location, + text: i18n.translate('monaco.esql.validation.duplicateSettingWarning', { + defaultMessage: + 'Multiple definition of setting [{name}]. Only last one will be applied.', + values: { + name, + }, + }), + type: 'warning' as const, + })) + ); + } + return messages; + }, }, ]; diff --git a/packages/kbn-monaco/src/esql/lib/ast/definitions/settings.ts b/packages/kbn-monaco/src/esql/lib/ast/definitions/settings.ts new file mode 100644 index 0000000000000..5dad48913c408 --- /dev/null +++ b/packages/kbn-monaco/src/esql/lib/ast/definitions/settings.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 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { i18n } from '@kbn/i18n'; +import { CommandModeDefinition } from './types'; + +export const ccqMode: CommandModeDefinition = { + name: 'ccq.mode', + description: i18n.translate('monaco.esql.definitions.ccqModeDoc', { + defaultMessage: 'Cross-clusters query mode', + }), + signature: { + multipleParams: false, + params: [ + { + name: 'mode', + type: 'string', + values: ['any', 'coordinator', 'remote'], + valueDescriptions: [ + i18n.translate('monaco.esql.definitions.ccqAnyDoc', { + defaultMessage: 'Enrich takes place on any cluster', + }), + i18n.translate('monaco.esql.definitions.ccqCoordinatorDoc', { + defaultMessage: 'Enrich takes place on the coordinating cluster receiving an ES|QL', + }), + i18n.translate('monaco.esql.definitions.ccqRemoteDoc', { + defaultMessage: 'Enrich takes place on the cluster hosting the target index.', + }), + ], + }, + ], + }, +}; diff --git a/packages/kbn-monaco/src/esql/lib/ast/definitions/types.ts b/packages/kbn-monaco/src/esql/lib/ast/definitions/types.ts index c52f332f3f2eb..f85c2be7a8abb 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/definitions/types.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/definitions/types.ts @@ -45,6 +45,7 @@ export interface CommandBaseDefinition { optional?: boolean; innerType?: string; values?: string[]; + valueDescriptions?: string[]; literalOnly?: boolean; wildcards?: boolean; }>; @@ -58,10 +59,16 @@ export interface CommandOptionsDefinition extends CommandBaseDefinition { validate?: (option: ESQLCommandOption) => ESQLMessage[]; } +export interface CommandModeDefinition extends CommandBaseDefinition { + name: string; + description: string; +} + export interface CommandDefinition extends CommandBaseDefinition { options: CommandOptionsDefinition[]; examples: string[]; validate?: (option: ESQLCommand) => ESQLMessage[]; + modes: CommandModeDefinition[]; } export interface Literals { diff --git a/packages/kbn-monaco/src/esql/lib/ast/shared/context.ts b/packages/kbn-monaco/src/esql/lib/ast/shared/context.ts index d175ae1b2f3af..004d4ca5ded6b 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/shared/context.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/shared/context.ts @@ -13,6 +13,7 @@ import type { ESQLFunction, ESQLCommand, ESQLCommandOption, + ESQLCommandMode, } from '../types'; import { EDITOR_MARKER } from './constants'; import { @@ -21,6 +22,7 @@ import { getLastCharFromTrimmed, getFunctionDefinition, isSourceItem, + isSettingItem, } from './helpers'; function findNode(nodes: ESQLAstItem[], offset: number): ESQLSingleAstItem | undefined { @@ -56,9 +58,20 @@ function findCommand(ast: ESQLAst, offset: number) { } function findOption(nodes: ESQLAstItem[], offset: number): ESQLCommandOption | undefined { - // this is a similar logic to the findNode, but it check if the command is in root or option scope + return findCommandSubType(nodes, offset, isOptionItem); +} + +function findSetting(nodes: ESQLAstItem[], offset: number): ESQLCommandMode | undefined { + return findCommandSubType(nodes, offset, isSettingItem); +} + +function findCommandSubType( + nodes: ESQLAstItem[], + offset: number, + isOfTypeFn: (node: ESQLAstItem) => node is T +): T | undefined { for (const node of nodes) { - if (!Array.isArray(node) && isOptionItem(node)) { + if (isOfTypeFn(node)) { if ( (node.location.min <= offset && node.location.max >= offset) || (nodes[nodes.length - 1] === node && node.location.max < offset) @@ -105,12 +118,13 @@ export function removeMarkerArgFromArgsList ) - return { type: 'list' as const, command, node, option }; + return { type: 'list' as const, command, node, option, setting }; } if (isNotEnrichClauseAssigment(node, command) && !isBuiltinFunction(node)) { // command ... fn( ) - return { type: 'function' as const, command, node, option }; + return { type: 'function' as const, command, node, option, setting }; } } if (node.type === 'option' || option) { // command ... by - return { type: 'option' as const, command, node, option }; + return { type: 'option' as const, command, node, option, setting }; + } + if (node.type === 'mode' || option) { + // command [ + return { type: 'setting' as const, command, node, option, setting }; } } if (!command || (innerText.length <= offset && getLastCharFromTrimmed(innerText) === '|')) { // // ... | - return { type: 'newCommand' as const, command: undefined, node, option }; + return { type: 'newCommand' as const, command: undefined, node, option, setting }; } if (command && command.args.length) { if (option) { - return { type: 'option' as const, command, node, option }; + return { type: 'option' as const, command, node, option, setting }; + } + if (setting?.incomplete) { + return { type: 'setting' as const, command, node, option, setting }; } } @@ -157,5 +178,6 @@ export function getAstContext(innerText: string, ast: ESQLAst, offset: number) { command, option, node, + setting, }; } diff --git a/packages/kbn-monaco/src/esql/lib/ast/shared/helpers.ts b/packages/kbn-monaco/src/esql/lib/ast/shared/helpers.ts index f54849b7e81cf..b9e1b6171c761 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/shared/helpers.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/shared/helpers.ts @@ -13,9 +13,18 @@ import { commandDefinitions } from '../definitions/commands'; import { evalFunctionsDefinitions } from '../definitions/functions'; import { getFunctionSignatures } from '../definitions/helpers'; import { chronoLiterals, timeLiterals } from '../definitions/literals'; -import { byOption, metadataOption, asOption, onOption, withOption } from '../definitions/options'; +import { + byOption, + metadataOption, + asOption, + onOption, + withOption, + appendSeparatorOption, +} from '../definitions/options'; +import { ccqMode } from '../definitions/settings'; import { CommandDefinition, + CommandModeDefinition, CommandOptionsDefinition, FunctionDefinition, SignatureArgType, @@ -23,6 +32,7 @@ import { import { ESQLAstItem, ESQLColumn, + ESQLCommandMode, ESQLCommandOption, ESQLFunction, ESQLLiteral, @@ -33,28 +43,35 @@ import { import { ESQLRealField, ESQLVariable, ReferenceMaps } from '../validation/types'; import { removeMarkerArgFromArgsList } from './context'; +function isSingleItem(arg: ESQLAstItem): arg is ESQLSingleAstItem { + return arg && !Array.isArray(arg); +} + +export function isSettingItem(arg: ESQLAstItem): arg is ESQLCommandMode { + return isSingleItem(arg) && arg.type === 'mode'; +} export function isFunctionItem(arg: ESQLAstItem): arg is ESQLFunction { - return arg && !Array.isArray(arg) && arg.type === 'function'; + return isSingleItem(arg) && arg.type === 'function'; } export function isOptionItem(arg: ESQLAstItem): arg is ESQLCommandOption { - return !Array.isArray(arg) && arg.type === 'option'; + return isSingleItem(arg) && arg.type === 'option'; } export function isSourceItem(arg: ESQLAstItem): arg is ESQLSource { - return arg && !Array.isArray(arg) && arg.type === 'source'; + return isSingleItem(arg) && arg.type === 'source'; } export function isColumnItem(arg: ESQLAstItem): arg is ESQLColumn { - return arg && !Array.isArray(arg) && arg.type === 'column'; + return isSingleItem(arg) && arg.type === 'column'; } export function isLiteralItem(arg: ESQLAstItem): arg is ESQLLiteral { - return arg && !Array.isArray(arg) && arg.type === 'literal'; + return isSingleItem(arg) && arg.type === 'literal'; } export function isTimeIntervalItem(arg: ESQLAstItem): arg is ESQLTimeInterval { - return arg && !Array.isArray(arg) && arg.type === 'timeInterval'; + return isSingleItem(arg) && arg.type === 'timeInterval'; } export function isAssignment(arg: ESQLAstItem): arg is ESQLFunction { @@ -151,21 +168,14 @@ export function getAllCommands() { return Array.from(buildCommandLookup().values()); } -export function getCommandOption(name: CommandOptionsDefinition['name']) { - switch (name) { - case 'by': - return byOption; - case 'metadata': - return metadataOption; - case 'as': - return asOption; - case 'on': - return onOption; - case 'with': - return withOption; - default: - return; - } +export function getCommandOption(optionName: CommandOptionsDefinition['name']) { + return [byOption, metadataOption, asOption, onOption, withOption, appendSeparatorOption].find( + ({ name }) => name === optionName + ); +} + +export function getCommandMode(settingName: CommandModeDefinition['name']) { + return [ccqMode].find(({ name }) => name === settingName); } function compareLiteralType(argTypes: string, item: ESQLLiteral) { diff --git a/packages/kbn-monaco/src/esql/lib/ast/types.ts b/packages/kbn-monaco/src/esql/lib/ast/types.ts index 6c241270de457..b15c02baee5fe 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/types.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/types.ts @@ -17,7 +17,8 @@ export type ESQLSingleAstItem = | ESQLColumn | ESQLTimeInterval | ESQLList - | ESQLLiteral; + | ESQLLiteral + | ESQLCommandMode; export type ESQLAstItem = ESQLSingleAstItem | ESQLAstItem[]; @@ -43,6 +44,11 @@ export interface ESQLCommandOption extends ESQLAstBaseItem { args: ESQLAstItem[]; } +export interface ESQLCommandMode extends ESQLAstBaseItem { + type: 'mode'; + args: ESQLAstItem[]; +} + export interface ESQLFunction extends ESQLAstBaseItem { type: 'function'; args: ESQLAstItem[]; diff --git a/packages/kbn-monaco/src/esql/lib/ast/validation/errors.ts b/packages/kbn-monaco/src/esql/lib/ast/validation/errors.ts index ef4fd4a0fd009..71c3f4ad87ec6 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/validation/errors.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/validation/errors.ts @@ -183,6 +183,31 @@ function getMessageAndTypeFromId({ }), type: 'warning', }; + case 'unsupportedSetting': + return { + message: i18n.translate('monaco.esql.validation.unsupportedSetting', { + defaultMessage: 'Unsupported setting [{setting}], expected [{expected}]', + values: { + setting: out.setting, + expected: out.expected, + }, + }), + type: 'error', + }; + case 'unsupportedSettingCommandValue': + return { + message: i18n.translate('monaco.esql.validation.unsupportedSettingValue', { + defaultMessage: + 'Unrecognized value [{value}], {command} [{setting}] needs to be one of [{expected}]', + values: { + setting: out.setting, + expected: out.expected, + value: out.value, + command: out.command, + }, + }), + type: 'error', + }; } return { message: '' }; } diff --git a/packages/kbn-monaco/src/esql/lib/ast/validation/types.ts b/packages/kbn-monaco/src/esql/lib/ast/validation/types.ts index b0a1c2857e8c5..ae7460d5f6ad4 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/validation/types.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/validation/types.ts @@ -112,6 +112,14 @@ export interface ValidationErrors { message: string; type: { field: string }; }; + unsupportedSetting: { + message: string; + type: { setting: string; expected: string }; + }; + unsupportedSettingCommandValue: { + message: string; + type: { command: string; setting: string; value: string; expected: string }; + }; } export type ErrorTypes = keyof ValidationErrors; diff --git a/packages/kbn-monaco/src/esql/lib/ast/validation/validation.test.ts b/packages/kbn-monaco/src/esql/lib/ast/validation/validation.test.ts index 6314a06427d83..1cdf61e271cfc 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/validation/validation.test.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/validation/validation.test.ts @@ -60,6 +60,12 @@ function getCallbackMocks() { matchField: 'otherStringField', enrichFields: ['otherField', 'yetAnotherField'], }, + { + name: 'policy[]', + sourceIndices: ['enrichIndex1'], + matchField: 'otherStringField', + enrichFields: ['otherField', 'yetAnotherField'], + }, ]), }; } @@ -512,15 +518,15 @@ describe('validation logic', () => { describe('keep', () => { testErrorsAndWarnings('from index | keep ', [ - `SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''`, + `SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''`, ]); testErrorsAndWarnings('from index | keep stringField, numberField, dateField', []); testErrorsAndWarnings('from index | keep `stringField`, `numberField`, `dateField`', []); testErrorsAndWarnings('from index | keep 4.5', [ "SyntaxError: token recognition error at: '4'", "SyntaxError: token recognition error at: '5'", - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at '.'", - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at '.'", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", 'Unknown column [.]', ]); testErrorsAndWarnings('from index | keep `4.5`', ['Unknown column [4.5]']); @@ -530,7 +536,7 @@ describe('validation logic', () => { testErrorsAndWarnings('from index | keep `any#Char$ field`', []); testErrorsAndWarnings( 'from index | project ', - [`SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''`], + [`SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''`], ['PROJECT command is no longer supported, please use KEEP instead'] ); testErrorsAndWarnings( @@ -567,14 +573,14 @@ describe('validation logic', () => { describe('drop', () => { testErrorsAndWarnings('from index | drop ', [ - `SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''`, + `SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''`, ]); testErrorsAndWarnings('from index | drop stringField, numberField, dateField', []); testErrorsAndWarnings('from index | drop 4.5', [ "SyntaxError: token recognition error at: '4'", "SyntaxError: token recognition error at: '5'", - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at '.'", - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at '.'", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", 'Unknown column [.]', ]); testErrorsAndWarnings('from index | drop missingField, numberField, dateField', [ @@ -628,7 +634,7 @@ describe('validation logic', () => { describe('rename', () => { testErrorsAndWarnings('from a | rename', [ - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", ]); testErrorsAndWarnings('from a | rename stringField', [ 'SyntaxError: expected {DOT, AS} but found ""', @@ -638,10 +644,10 @@ describe('validation logic', () => { 'Unknown column [a]', ]); testErrorsAndWarnings('from a | rename stringField as', [ - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", ]); testErrorsAndWarnings('from a | rename missingField as', [ - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", 'Unknown column [missingField]', ]); testErrorsAndWarnings('from a | rename stringField as b', []); @@ -660,7 +666,7 @@ describe('validation logic', () => { [] ); testErrorsAndWarnings('from a | eval numberField + 1 | rename `numberField + 1` as ', [ - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", ]); testErrorsAndWarnings('from a | rename s* as strings', [ 'Using wildcards (*) in rename is not allowed [s*]', @@ -1329,22 +1335,68 @@ describe('validation logic', () => { describe('enrich', () => { testErrorsAndWarnings(`from a | enrich`, [ - "SyntaxError: missing {QUOTED_IDENTIFIER, FROM_UNQUOTED_IDENTIFIER} at ''", + 'SyntaxError: expected {OPENING_BRACKET, ENRICH_POLICY_NAME} but found ""', + ]); + testErrorsAndWarnings(`from a | enrich [`, [ + 'SyntaxError: expected {SETTING} but found ""', + ]); + testErrorsAndWarnings(`from a | enrich [ccq.mode`, [ + 'SyntaxError: expected {COLON} but found ""', + ]); + testErrorsAndWarnings(`from a | enrich [ccq.mode:`, [ + 'SyntaxError: expected {SETTING} but found ""', + ]); + testErrorsAndWarnings(`from a | enrich [ccq.mode:any`, [ + 'SyntaxError: expected {CLOSING_BRACKET} but found ""', + ]); + testErrorsAndWarnings(`from a | enrich [ccq.mode:any] `, [ + "SyntaxError: extraneous input '' expecting {OPENING_BRACKET, ENRICH_POLICY_NAME}", ]); testErrorsAndWarnings(`from a | enrich policy `, []); + testErrorsAndWarnings(`from a | enrich [ccq.mode:value] policy `, [ + 'Unrecognized value [value], ENRICH [ccq.mode] needs to be one of [ANY, COORDINATOR, REMOTE]', + ]); + for (const value of ['any', 'coordinator', 'remote']) { + testErrorsAndWarnings(`from a | enrich [ccq.mode:${value}] policy `, []); + testErrorsAndWarnings(`from a | enrich [ccq.mode:${value.toUpperCase()}] policy `, []); + } + + testErrorsAndWarnings(`from a | enrich [setting:value policy`, [ + 'SyntaxError: expected {CLOSING_BRACKET} but found "policy"', + 'Unsupported setting [setting], expected [ccq.mode]', + ]); + + testErrorsAndWarnings(`from a | enrich [ccq.mode:any policy`, [ + 'SyntaxError: expected {CLOSING_BRACKET} but found "policy"', + ]); + + testErrorsAndWarnings(`from a | enrich [ccq.mode:any policy`, [ + 'SyntaxError: expected {CLOSING_BRACKET} but found "policy"', + ]); + + testErrorsAndWarnings(`from a | enrich [setting:value] policy`, [ + 'Unsupported setting [setting], expected [ccq.mode]', + ]); + testErrorsAndWarnings(`from a | enrich [ccq.mode:any] policy[]`, []); + + testErrorsAndWarnings( + `from a | enrich [ccq.mode:any][ccq.mode:coordinator] policy[]`, + [], + ['Multiple definition of setting [ccq.mode]. Only last one will be applied.'] + ); testErrorsAndWarnings(`from a | enrich missing-policy `, ['Unknown policy [missing-policy]']); testErrorsAndWarnings(`from a | enrich policy on `, [ - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", ]); testErrorsAndWarnings(`from a | enrich policy on b `, ['Unknown column [b]']); testErrorsAndWarnings(`from a | enrich policy on numberField with `, [ - 'SyntaxError: expected {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} but found ""', + 'SyntaxError: expected {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} but found ""', ]); testErrorsAndWarnings(`from a | enrich policy on numberField with var0 `, [ 'Unknown column [var0]', ]); testErrorsAndWarnings(`from a | enrich policy on numberField with var0 = `, [ - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", 'Unknown column [var0]', ]); testErrorsAndWarnings(`from a | enrich policy on numberField with var0 = c `, [ @@ -1356,8 +1408,8 @@ describe('validation logic', () => { // `Unknown column [stringField]`, // ]); testErrorsAndWarnings(`from a | enrich policy on numberField with var0 = , `, [ - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ','", - 'SyntaxError: expected {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} but found ""', + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ','", + 'SyntaxError: expected {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} but found ""', 'Unknown column [var0]', ]); testErrorsAndWarnings(`from a | enrich policy on numberField with var0 = otherField, var1 `, [ @@ -1369,7 +1421,7 @@ describe('validation logic', () => { [] ); testErrorsAndWarnings(`from a | enrich policy on numberField with var0 = otherField, var1 = `, [ - "SyntaxError: missing {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} at ''", + "SyntaxError: missing {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} at ''", 'Unknown column [var1]', ]); @@ -1378,7 +1430,7 @@ describe('validation logic', () => { [] ); testErrorsAndWarnings(`from a | enrich policy with `, [ - 'SyntaxError: expected {QUOTED_IDENTIFIER, PROJECT_UNQUOTED_IDENTIFIER} but found ""', + 'SyntaxError: expected {QUOTED_IDENTIFIER, UNQUOTED_ID_PATTERN} but found ""', ]); testErrorsAndWarnings(`from a | enrich policy with otherField`, []); testErrorsAndWarnings(`from a | enrich policy | eval otherField`, []); diff --git a/packages/kbn-monaco/src/esql/lib/ast/validation/validation.ts b/packages/kbn-monaco/src/esql/lib/ast/validation/validation.ts index 744e63cc6bb13..5f2d36d01765f 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/validation/validation.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/validation/validation.ts @@ -8,7 +8,11 @@ import uniqBy from 'lodash/uniqBy'; import capitalize from 'lodash/capitalize'; -import { CommandOptionsDefinition, SignatureArgType } from '../definitions/types'; +import { + CommandModeDefinition, + CommandOptionsDefinition, + SignatureArgType, +} from '../definitions/types'; import { areFieldAndVariableTypesCompatible, extractSingleType, @@ -33,6 +37,7 @@ import { columnExists, hasWildcard, hasCCSSource, + isSettingItem, } from '../shared/helpers'; import { collectVariables } from '../shared/variables'; import type { @@ -40,6 +45,7 @@ import type { ESQLAstItem, ESQLColumn, ESQLCommand, + ESQLCommandMode, ESQLCommandOption, ESQLFunction, ESQLMessage, @@ -378,6 +384,54 @@ function validateFunction( return uniqBy(messages, ({ location }) => `${location.min}-${location.max}`); } +function validateSetting( + setting: ESQLCommandMode, + settingDef: CommandModeDefinition | undefined, + command: ESQLCommand, + referenceMaps: ReferenceMaps +): ESQLMessage[] { + const messages: ESQLMessage[] = []; + if (setting.incomplete || command.incomplete) { + return messages; + } + if (!settingDef) { + const commandDef = getCommandDefinition(command.name); + messages.push( + getMessageFromId({ + messageId: 'unsupportedSetting', + values: { + setting: setting.name, + expected: commandDef.modes.map(({ name }) => name).join(', '), + }, + locations: setting.location, + }) + ); + return messages; + } + setting.args.forEach((arg, index) => { + if (!Array.isArray(arg)) { + const argDef = settingDef.signature.params[index]; + const value = 'value' in arg ? arg.value : arg.name; + if (argDef.values && !argDef.values?.includes(String(value).toLowerCase())) { + messages.push( + getMessageFromId({ + messageId: 'unsupportedSettingCommandValue', + values: { + setting: setting.name, + command: command.name.toUpperCase(), + value: String(value), + // for some reason all this enums are uppercase in ES + expected: (argDef.values?.join(', ') || argDef.type).toUpperCase(), + }, + locations: arg.location, + }) + ); + } + } + }); + return messages; +} + function validateOption( option: ESQLCommandOption, optionDef: CommandOptionsDefinition | undefined, @@ -626,6 +680,17 @@ function validateCommand(command: ESQLCommand, references: ReferenceMaps): ESQLM messages.push(...validateFunction(arg, command.name, references)); } + if (isSettingItem(arg)) { + messages.push( + ...validateSetting( + arg, + commandDef.modes?.find(({ name }) => name === arg.name), + command, + references + ) + ); + } + if (isOptionItem(arg)) { messages.push( ...validateOption( diff --git a/packages/kbn-sort-predicates/README.md b/packages/kbn-sort-predicates/README.md new file mode 100644 index 0000000000000..c650be1d6f1f5 --- /dev/null +++ b/packages/kbn-sort-predicates/README.md @@ -0,0 +1,74 @@ +# @kbn/sort-predicates + +This package contains a flexible sorting function who supports the following types: + +* string +* number +* version +* ip addresses (both IPv4 and IPv6) - handles `Others`/strings correcly in this case +* dates +* ranges open and closed (number type only for now) +* null and undefined (always sorted as last entries, no matter the direction) +* any multi-value version of the types above (version excluded) + +The function is intended to use with objects and to simplify the usage with sorting by a specific column/field. +The functions has been extracted from Lens datatable where it was originally used. + +### How to use it + +Basic usage with an array of objects: + +```js +import { getSortingCriteria } from '@kbn/sorting-predicates'; + +... +const predicate = getSortingCriteria( typeHint, columnId, formatterFn ); + +const orderedRows = [{a: 1, b: 2}, {a: 3, b: 4}] + .sort( (rowA, rowB) => predicate(rowA, rowB, 'asc' /* or 'desc' */)); +``` + +Basic usage with EUI DataGrid schemaDetector: + +```tsx +const [data, setData] = useState(table); +const dataGridColumns: EuiDataGridColumn[] = data.columns.map( (column) => ({ + ... + schema: getColumnType(column) +})); +const [sortingColumns, setSortingColumns] = useState([ + { id: 'custom', direction: 'asc' }, +]); + +const schemaDetectors = dataGridColumns.map((column) => { + const sortingHint = getColumnType(column); + const sortingCriteria = getSortingCriteria( + sortingHint, + column.id, + (val: unknwon) => String(val) + ); + return { + sortTextAsc: 'asc' + sortTextDesc: 'desc', + icon: 'starFilled', + type: sortingHint || '', + detector: () => 1, + // This is the actual logic that is used to sort the table + comparator: (_a, _b, direction, { aIndex, bIndex }) => + sortingCriteria(data.rows[aIndex], data.rows[bIndex], direction) as 0 | 1 | -1 + }; +}); + +return { ... } + }} +/>; +``` \ No newline at end of file diff --git a/packages/kbn-sort-predicates/index.ts b/packages/kbn-sort-predicates/index.ts new file mode 100644 index 0000000000000..63e0b6bbf005e --- /dev/null +++ b/packages/kbn-sort-predicates/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { getSortingCriteria } from './src/sorting'; diff --git a/packages/kbn-sort-predicates/jest.config.js b/packages/kbn-sort-predicates/jest.config.js new file mode 100644 index 0000000000000..dc69bcd8e5a56 --- /dev/null +++ b/packages/kbn-sort-predicates/jest.config.js @@ -0,0 +1,13 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../..', + roots: ['/packages/kbn-sort-predicates'], +}; diff --git a/packages/kbn-sort-predicates/kibana.jsonc b/packages/kbn-sort-predicates/kibana.jsonc new file mode 100644 index 0000000000000..c07088597a01e --- /dev/null +++ b/packages/kbn-sort-predicates/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/sort-predicates", + "owner": "@elastic/kibana-visualizations" +} diff --git a/packages/kbn-sort-predicates/package.json b/packages/kbn-sort-predicates/package.json new file mode 100644 index 0000000000000..05413a2b68e6e --- /dev/null +++ b/packages/kbn-sort-predicates/package.json @@ -0,0 +1,7 @@ +{ + "name": "@kbn/sort-predicates", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0", + "sideEffects": false +} \ No newline at end of file diff --git a/x-pack/plugins/lens/common/expressions/datatable/sorting.test.tsx b/packages/kbn-sort-predicates/src/sorting.test.ts similarity index 97% rename from x-pack/plugins/lens/common/expressions/datatable/sorting.test.tsx rename to packages/kbn-sort-predicates/src/sorting.test.ts index 042a3e22f7bb8..2c50158964505 100644 --- a/x-pack/plugins/lens/common/expressions/datatable/sorting.test.tsx +++ b/packages/kbn-sort-predicates/src/sorting.test.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import { getSortingCriteria } from './sorting'; @@ -40,8 +41,8 @@ function testSorting({ sorted.push(firstEl); } } - const criteria = getSortingCriteria(type, 'a', getMockFormatter(), direction); - expect(datatable.sort(criteria).map((row) => row.a)).toEqual(sorted); + const criteria = getSortingCriteria(type, 'a', getMockFormatter()); + expect(datatable.sort((a, b) => criteria(a, b, direction)).map((row) => row.a)).toEqual(sorted); } describe('Data sorting criteria', () => { diff --git a/x-pack/plugins/lens/common/expressions/datatable/sorting.tsx b/packages/kbn-sort-predicates/src/sorting.ts similarity index 86% rename from x-pack/plugins/lens/common/expressions/datatable/sorting.tsx rename to packages/kbn-sort-predicates/src/sorting.ts index 643e119e6ef7f..555ca22a24bf0 100644 --- a/x-pack/plugins/lens/common/expressions/datatable/sorting.tsx +++ b/packages/kbn-sort-predicates/src/sorting.ts @@ -1,8 +1,9 @@ /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. */ import versionCompare from 'compare-versions'; @@ -130,9 +131,15 @@ const rangeComparison: CompareFn> = (v1, v2) => { return fromComparison || toComparison || 0; }; -function createArrayValuesHandler(sortBy: string, directionFactor: number, formatter: FieldFormat) { +function createArrayValuesHandler(sortBy: string, formatter: FieldFormat) { return function (criteriaFn: CompareFn) { - return (rowA: Record, rowB: Record) => { + return ( + rowA: Record, + rowB: Record, + direction: 'asc' | 'desc' + ) => { + // handle the direction with a multiply factor. + const directionFactor = direction === 'asc' ? 1 : -1; // if either side of the comparison is an array, make it also the other one become one // then perform an array comparison if (Array.isArray(rowA[sortBy]) || Array.isArray(rowB[sortBy])) { @@ -157,13 +164,21 @@ function createArrayValuesHandler(sortBy: string, directionFactor: number, forma function getUndefinedHandler( sortBy: string, - sortingCriteria: (rowA: Record, rowB: Record) => number + sortingCriteria: ( + rowA: Record, + rowB: Record, + directionFactor: 'asc' | 'desc' + ) => number ) { - return (rowA: Record, rowB: Record) => { + return ( + rowA: Record, + rowB: Record, + direction: 'asc' | 'desc' + ) => { const valueA = rowA[sortBy]; const valueB = rowB[sortBy]; if (valueA != null && valueB != null && !Number.isNaN(valueA) && !Number.isNaN(valueB)) { - return sortingCriteria(rowA, rowB); + return sortingCriteria(rowA, rowB, direction); } if (valueA == null || Number.isNaN(valueA)) { return 1; @@ -179,13 +194,9 @@ function getUndefinedHandler( export function getSortingCriteria( type: string | undefined, sortBy: string, - formatter: FieldFormat, - direction: string + formatter: FieldFormat ) { - // handle the direction with a multiply factor. - const directionFactor = direction === 'asc' ? 1 : -1; - - const arrayValueHandler = createArrayValuesHandler(sortBy, directionFactor, formatter); + const arrayValueHandler = createArrayValuesHandler(sortBy, formatter); if (['number', 'date'].includes(type || '')) { return getUndefinedHandler(sortBy, arrayValueHandler(numberCompare)); diff --git a/packages/kbn-sort-predicates/tsconfig.json b/packages/kbn-sort-predicates/tsconfig.json new file mode 100644 index 0000000000000..3bc215c57f5e7 --- /dev/null +++ b/packages/kbn-sort-predicates/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + ] + }, + "include": [ + "**/*.ts" + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/field-formats-plugin", + "@kbn/expressions-plugin" + ] +} diff --git a/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx b/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx index 089376fec5b21..46af131f573f4 100644 --- a/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx +++ b/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx @@ -1226,6 +1226,34 @@ Euler’s number. \`\`\` ROW E() +\`\`\` + `, + description: + 'Text is in markdown. Do not translate function names, special characters, or field names like sum(bytes)', + } + )} + /> + ), + }, + { + label: i18n.translate( + 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.endsWithFunction', + { + defaultMessage: 'ENDS_WITH', + } + ), + description: ( + ), }, + { + label: i18n.translate( + 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.toCartesianpointFunction', + { + defaultMessage: 'TO_CARTESIANPOINT', + } + ), + description: ( + + ), + }, { label: i18n.translate( 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.toDatetimeFunction', @@ -2408,6 +2437,38 @@ Alias: TO_DBL /> ), }, + { + label: i18n.translate( + 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.toGeopointFunction', + { + defaultMessage: 'TO_GEOPOINT', + } + ), + description: ( + + ), + }, { label: i18n.translate( 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.toIntegerFunction', diff --git a/packages/presentation/presentation_publishing/index.ts b/packages/presentation/presentation_publishing/index.ts index 722227a7cce35..a50763b7b2098 100644 --- a/packages/presentation/presentation_publishing/index.ts +++ b/packages/presentation/presentation_publishing/index.ts @@ -18,11 +18,11 @@ export { type CanAccessViewMode, } from './interfaces/can_access_view_mode'; export { - apiFiresPhaseEvents, - type FiresPhaseEvents, + apiPublishesPhaseEvents, + type PublishesPhaseEvents, type PhaseEvent, type PhaseEventType, -} from './interfaces/fires_phase_events'; +} from './interfaces/publishes_phase_events'; export { hasEditCapabilities, type HasEditCapabilities } from './interfaces/has_edit_capabilities'; export { apiHasParentApi, type HasParentApi } from './interfaces/has_parent_api'; export { diff --git a/packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts b/packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts similarity index 74% rename from packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts rename to packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts index 874e9d86c677d..72dbf70393a90 100644 --- a/packages/presentation/presentation_publishing/interfaces/fires_phase_events.ts +++ b/packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts @@ -20,10 +20,12 @@ export interface PhaseEvent { timeToEvent: number; } -export interface FiresPhaseEvents { - onPhaseChange: PublishingSubject; +export interface PublishesPhaseEvents { + onPhaseChange: PublishingSubject; } -export const apiFiresPhaseEvents = (unknownApi: null | unknown): unknownApi is FiresPhaseEvents => { - return Boolean(unknownApi && (unknownApi as FiresPhaseEvents)?.onPhaseChange !== undefined); +export const apiPublishesPhaseEvents = ( + unknownApi: null | unknown +): unknownApi is PublishesPhaseEvents => { + return Boolean(unknownApi && (unknownApi as PublishesPhaseEvents)?.onPhaseChange !== undefined); }; diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/ironbank/hardening_manifest.yaml b/src/dev/build/tasks/os_packages/docker_generator/templates/ironbank/hardening_manifest.yaml index 43800a045da9c..bbfaee1e16202 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/templates/ironbank/hardening_manifest.yaml +++ b/src/dev/build/tasks/os_packages/docker_generator/templates/ironbank/hardening_manifest.yaml @@ -52,6 +52,10 @@ maintainers: name: 'Jonathan Budzenski' username: 'jbudz' cht_member: false + - email: 'brad.white@elastic.co' + name: 'Brad White' + username: 'brad.white' + cht_member: false - email: 'klepal_alexander@bah.com' name: 'Alexander Klepal' username: 'alexander.klepal' diff --git a/src/dev/precommit_hook/casing_check_config.js b/src/dev/precommit_hook/casing_check_config.js index 4043878da9195..fb6006fda0a78 100644 --- a/src/dev/precommit_hook/casing_check_config.js +++ b/src/dev/precommit_hook/casing_check_config.js @@ -80,6 +80,9 @@ export const IGNORE_FILE_GLOBS = [ // generator templates use weird filenames based on the requirements for the files they're generating 'packages/kbn-generate/templates/**/*', + + // ecs templates + '**/ecs/fields/**/*', ]; /** diff --git a/src/plugins/data/common/exports/export_csv.test.ts b/src/plugins/data/common/exports/export_csv.test.ts index 0c005b4bdee2e..090d140bd4317 100644 --- a/src/plugins/data/common/exports/export_csv.test.ts +++ b/src/plugins/data/common/exports/export_csv.test.ts @@ -96,4 +96,14 @@ describe('CSV exporter', () => { }) ).toMatch('columnOne\r\n"a,b"\r\n'); }); + + test('should respect the sorted columns order when passed', () => { + const datatable = getDataTable({ multipleColumns: true }); + expect( + datatableToCSV(datatable, { + ...getDefaultOptions(), + columnsSorting: ['col2', 'col1'], + }) + ).toMatch('columnTwo,columnOne\r\n"Formatted_5","Formatted_value"\r\n'); + }); }); diff --git a/src/plugins/data/common/exports/export_csv.tsx b/src/plugins/data/common/exports/export_csv.tsx index fe7d35fe03e49..83e64152c178a 100644 --- a/src/plugins/data/common/exports/export_csv.tsx +++ b/src/plugins/data/common/exports/export_csv.tsx @@ -21,39 +21,51 @@ interface CSVOptions { escapeFormulaValues: boolean; formatFactory: FormatFactory; raw?: boolean; + columnsSorting?: string[]; } export function datatableToCSV( { columns, rows }: Datatable, - { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions + { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }: CSVOptions ) { const escapeValues = createEscapeValue({ separator: csvSeparator, quoteValues, escapeFormulaValues, }); + + const sortedIds = columnsSorting || columns.map((col) => col.id); + + // Build an index lookup table + const columnIndexLookup = sortedIds.reduce((memo, id, index) => { + memo[id] = index; + return memo; + }, {} as Record); + // Build the header row by its names - const header = columns.map((col) => escapeValues(col.name)); + const header: string[] = []; + const sortedColumnIds: string[] = []; + const formatters: Record> = {}; - const formatters = columns.reduce>>( - (memo, { id, meta }) => { - memo[id] = formatFactory(meta?.params); - return memo; - }, - {} - ); + for (const column of columns) { + const columnIndex = columnIndexLookup[column.id]; - // Convert the array of row objects to an array of row arrays - const csvRows = rows.map((row) => { - return columns.map((column) => - escapeValues(raw ? row[column.id] : formatters[column.id].convert(row[column.id])) - ); - }); + header[columnIndex] = escapeValues(column.name); + sortedColumnIds[columnIndex] = column.id; + formatters[column.id] = formatFactory(column.meta?.params); + } if (header.length === 0) { return ''; } + // Convert the array of row objects to an array of row arrays + const csvRows = rows.map((row) => { + return sortedColumnIds.map((id) => + escapeValues(raw ? row[id] : formatters[id].convert(row[id])) + ); + }); + return ( [header, ...csvRows].map((row) => row.join(csvSeparator)).join(LINE_FEED_CHARACTER) + LINE_FEED_CHARACTER diff --git a/src/plugins/embeddable/public/lib/embeddables/compatibility/legacy_embeddable_to_api.ts b/src/plugins/embeddable/public/lib/embeddables/compatibility/legacy_embeddable_to_api.ts index a557878728973..e76253c278d4e 100644 --- a/src/plugins/embeddable/public/lib/embeddables/compatibility/legacy_embeddable_to_api.ts +++ b/src/plugins/embeddable/public/lib/embeddables/compatibility/legacy_embeddable_to_api.ts @@ -10,8 +10,10 @@ import { DataView } from '@kbn/data-views-plugin/common'; import { AggregateQuery, compareFilters, Filter, Query, TimeRange } from '@kbn/es-query'; import type { ErrorLike } from '@kbn/expressions-plugin/common'; import { i18n } from '@kbn/i18n'; +import { PhaseEvent, PhaseEventType } from '@kbn/presentation-publishing'; import deepEqual from 'fast-deep-equal'; -import { BehaviorSubject, Subscription } from 'rxjs'; +import { isNil } from 'lodash'; +import { BehaviorSubject, map, Subscription, distinct } from 'rxjs'; import { embeddableStart } from '../../../kibana_services'; import { isFilterableEmbeddable } from '../../filterable_embeddable'; import { @@ -40,6 +42,18 @@ function isVisualizeEmbeddable( return embeddable.type === 'visualization'; } +const getEventStatus = (output: EmbeddableOutput): PhaseEventType => { + if (!isNil(output.error)) { + return 'error'; + } else if (output.rendered === true) { + return 'rendered'; + } else if (output.loading === false) { + return 'loaded'; + } else { + return 'loading'; + } +}; + export const legacyEmbeddableToApi = ( embeddable: CommonLegacyEmbeddable ): { api: Omit; destroyAPI: () => void } => { @@ -66,6 +80,42 @@ export const legacyEmbeddableToApi = ( }); const isEditingEnabled = () => canEditEmbeddable(embeddable); + /** + * Performance tracking + */ + const onPhaseChange = new BehaviorSubject(undefined); + + let loadingStartTime = 0; + subscriptions.add( + embeddable + .getOutput$() + .pipe( + // Map loaded event properties + map((output) => { + if (output.loading === true) { + loadingStartTime = performance.now(); + } + return { + id: embeddable.id, + status: getEventStatus(output), + error: output.error, + }; + }), + // Dedupe + distinct((output) => loadingStartTime + output.id + output.status + !!output.error), + // Map loaded event properties + map((output): PhaseEvent => { + return { + ...output, + timeToEvent: performance.now() - loadingStartTime, + }; + }) + ) + .subscribe((statusOutput) => { + onPhaseChange.next(statusOutput); + }) + ); + /** * Publish state for Presentation panel */ @@ -155,6 +205,8 @@ export const legacyEmbeddableToApi = ( dataLoading, blockingError, + onPhaseChange, + onEdit, isEditingEnabled, getTypeDisplayName, diff --git a/src/plugins/embeddable/public/lib/embeddables/embeddable.test.tsx b/src/plugins/embeddable/public/lib/embeddables/embeddable.test.tsx index 079a31089d707..b3f4d4d915b74 100644 --- a/src/plugins/embeddable/public/lib/embeddables/embeddable.test.tsx +++ b/src/plugins/embeddable/public/lib/embeddables/embeddable.test.tsx @@ -43,6 +43,17 @@ class OutputTestEmbeddable extends Embeddable { reload() {} } +class PhaseTestEmbeddable extends Embeddable { + public readonly type = 'phaseTest'; + constructor() { + super({ id: 'phaseTest', viewMode: ViewMode.VIEW }, {}); + } + public reportsEmbeddableLoad(): boolean { + return true; + } + reload() {} +} + test('Embeddable calls input subscribers when changed', (done) => { const hello = new ContactCardEmbeddable( { id: '123', firstName: 'Brienne', lastName: 'Tarth' }, @@ -104,6 +115,21 @@ test('updating output state retains instance information', async () => { expect(outputTest.getOutput().testClass).toBeInstanceOf(TestClass); }); +test('fires phase events when output changes', async () => { + const phaseEventTest = new PhaseTestEmbeddable(); + let phaseEventCount = 0; + phaseEventTest.onPhaseChange.subscribe((event) => { + if (event) { + phaseEventCount++; + } + }); + expect(phaseEventCount).toBe(1); // loading is true by default which fires an event. + phaseEventTest.updateOutput({ loading: false }); + expect(phaseEventCount).toBe(2); + phaseEventTest.updateOutput({ rendered: true }); + expect(phaseEventCount).toBe(3); +}); + test('updated$ called after reload and batches input/output changes', async () => { const hello = new ContactCardEmbeddable( { id: '123', firstName: 'Brienne', lastName: 'Tarth' }, diff --git a/src/plugins/embeddable/public/lib/embeddables/embeddable.tsx b/src/plugins/embeddable/public/lib/embeddables/embeddable.tsx index cb0f94b46cc58..4ea27da2f617f 100644 --- a/src/plugins/embeddable/public/lib/embeddables/embeddable.tsx +++ b/src/plugins/embeddable/public/lib/embeddables/embeddable.tsx @@ -126,6 +126,7 @@ export abstract class Embeddable< dataLoading: this.dataLoading, localFilters: this.localFilters, blockingError: this.blockingError, + onPhaseChange: this.onPhaseChange, setPanelTitle: this.setPanelTitle, linkToLibrary: this.linkToLibrary, hidePanelTitle: this.hidePanelTitle, @@ -164,6 +165,7 @@ export abstract class Embeddable< public panelTitle: LegacyEmbeddableAPI['panelTitle']; public dataLoading: LegacyEmbeddableAPI['dataLoading']; public localFilters: LegacyEmbeddableAPI['localFilters']; + public onPhaseChange: LegacyEmbeddableAPI['onPhaseChange']; public linkToLibrary: LegacyEmbeddableAPI['linkToLibrary']; public blockingError: LegacyEmbeddableAPI['blockingError']; public setPanelTitle: LegacyEmbeddableAPI['setPanelTitle']; diff --git a/src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts b/src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts index 5dbfbcc63be32..21f22f9fb7f84 100644 --- a/src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts +++ b/src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts @@ -22,6 +22,7 @@ import { PublishesViewMode, PublishesWritablePanelDescription, PublishesWritablePanelTitle, + PublishesPhaseEvents, } from '@kbn/presentation-publishing'; import { Observable } from 'rxjs'; import { EmbeddableInput } from '../../../common/types'; @@ -38,6 +39,7 @@ export type { EmbeddableInput }; */ export type LegacyEmbeddableAPI = HasType & HasUniqueId & + PublishesPhaseEvents & PublishesViewMode & PublishesDataViews & HasEditCapabilities & diff --git a/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.tsx b/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.tsx index b4d57cb46c45e..8af8e22cbeede 100644 --- a/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.tsx +++ b/src/plugins/presentation_panel/public/panel_component/presentation_panel_internal.tsx @@ -9,7 +9,7 @@ import { EuiFlexGroup, EuiPanel, htmlIdGenerator } from '@elastic/eui'; import { PanelLoader } from '@kbn/panel-loader'; import { - apiFiresPhaseEvents, + apiPublishesPhaseEvents, apiHasParentApi, apiPublishesViewMode, useBatchedPublishingSubjects, @@ -82,8 +82,10 @@ export const PresentationPanelInternal = < useEffect(() => { let subscription: Subscription; - if (api && onPanelStatusChange && apiFiresPhaseEvents(api)) { - subscription = api.onPhaseChange.subscribe((phase) => onPanelStatusChange(phase)); + if (api && onPanelStatusChange && apiPublishesPhaseEvents(api)) { + subscription = api.onPhaseChange.subscribe((phase) => { + if (phase) onPanelStatusChange(phase); + }); } return () => subscription?.unsubscribe(); }, [api, onPanelStatusChange]); diff --git a/test/plugin_functional/test_suites/core_plugins/rendering.ts b/test/plugin_functional/test_suites/core_plugins/rendering.ts index bbe39f4ea50fb..33a9e249cc2c7 100644 --- a/test/plugin_functional/test_suites/core_plugins/rendering.ts +++ b/test/plugin_functional/test_suites/core_plugins/rendering.ts @@ -213,6 +213,7 @@ export default function ({ getService }: PluginFunctionalProviderContext) { 'xpack.apm.featureFlags.migrationToFleetAvailable (any)', 'xpack.apm.featureFlags.sourcemapApiAvailable (any)', 'xpack.apm.featureFlags.storageExplorerAvailable (any)', + 'xpack.apm.featureFlags.profilingIntegrationAvailable (boolean)', 'xpack.apm.serverless.enabled (any)', // It's a boolean (any because schema.conditional) 'xpack.assetManager.alphaEnabled (boolean)', 'xpack.observability_onboarding.serverless.enabled (any)', // It's a boolean (any because schema.conditional) @@ -282,7 +283,7 @@ export default function ({ getService }: PluginFunctionalProviderContext) { 'xpack.infra.featureFlags.logThresholdAlertRuleEnabled (any)', 'xpack.infra.featureFlags.logsUIEnabled (any)', 'xpack.infra.featureFlags.alertsAndRulesDropdownEnabled (any)', - 'xpack.infra.featureFlags.profilingEnabled (any)', + 'xpack.infra.featureFlags.profilingEnabled (boolean)', 'xpack.license_management.ui.enabled (boolean)', 'xpack.maps.preserveDrawingBuffer (boolean)', diff --git a/tsconfig.base.json b/tsconfig.base.json index a4770a13af2c8..4ec7632df4cbb 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -624,6 +624,8 @@ "@kbn/dashboard-enhanced-plugin/*": ["x-pack/plugins/dashboard_enhanced/*"], "@kbn/dashboard-plugin": ["src/plugins/dashboard"], "@kbn/dashboard-plugin/*": ["src/plugins/dashboard/*"], + "@kbn/data-forge": ["x-pack/packages/kbn-data-forge"], + "@kbn/data-forge/*": ["x-pack/packages/kbn-data-forge/*"], "@kbn/data-plugin": ["src/plugins/data"], "@kbn/data-plugin/*": ["src/plugins/data/*"], "@kbn/data-search-plugin": ["test/plugin_functional/plugins/data_search"], @@ -1534,6 +1536,8 @@ "@kbn/some-dev-log/*": ["packages/kbn-some-dev-log/*"], "@kbn/sort-package-json": ["packages/kbn-sort-package-json"], "@kbn/sort-package-json/*": ["packages/kbn-sort-package-json/*"], + "@kbn/sort-predicates": ["packages/kbn-sort-predicates"], + "@kbn/sort-predicates/*": ["packages/kbn-sort-predicates/*"], "@kbn/spaces-plugin": ["x-pack/plugins/spaces"], "@kbn/spaces-plugin/*": ["x-pack/plugins/spaces/*"], "@kbn/spaces-test-plugin": ["x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin"], diff --git a/versions.json b/versions.json index 523329764c6a3..90d1a205d66d6 100644 --- a/versions.json +++ b/versions.json @@ -14,7 +14,7 @@ "previousMinor": true }, { - "version": "7.17.17", + "version": "7.17.18", "branch": "7.17", "previousMajor": true } diff --git a/x-pack/packages/kbn-alerting-state-types/src/lifecycle_state.ts b/x-pack/packages/kbn-alerting-state-types/src/lifecycle_state.ts index 0d8fb3e5aaada..8fa5cb111f6d9 100644 --- a/x-pack/packages/kbn-alerting-state-types/src/lifecycle_state.ts +++ b/x-pack/packages/kbn-alerting-state-types/src/lifecycle_state.ts @@ -17,6 +17,8 @@ const trackedAlertStateRt = t.type({ flappingHistory: t.array(t.boolean), // flapping flag that indicates whether the alert is flapping flapping: t.boolean, + // count of consecutive recovered alerts for flapping + // will reset if the alert is active or if equal to the statusChangeThreshold stored in the rule settings pendingRecoveredCount: t.number, }); diff --git a/x-pack/packages/kbn-alerting-state-types/src/task_state/v1/schema.ts b/x-pack/packages/kbn-alerting-state-types/src/task_state/v1/schema.ts index 62e802483dcf7..247c0d7fc8d87 100644 --- a/x-pack/packages/kbn-alerting-state-types/src/task_state/v1/schema.ts +++ b/x-pack/packages/kbn-alerting-state-types/src/task_state/v1/schema.ts @@ -32,8 +32,13 @@ export const metaSchema = schema.object({ // flapping flag that indicates whether the alert is flapping flapping: schema.maybe(schema.boolean()), maintenanceWindowIds: schema.maybe(schema.arrayOf(schema.string())), + // count of consecutive recovered alerts for flapping + // will reset if the alert is active or if equal to the statusChangeThreshold stored in the rule settings pendingRecoveredCount: schema.maybe(schema.number()), uuid: schema.maybe(schema.string()), + // count of consecutive active alerts + // will reset if the alert is recovered or if equal to notificationDelay.active stored in the rule + activeCount: schema.maybe(schema.number()), }); export const rawAlertInstanceSchema = schema.object({ diff --git a/x-pack/packages/kbn-data-forge/README.md b/x-pack/packages/kbn-data-forge/README.md new file mode 100644 index 0000000000000..5f1f9919febb6 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/README.md @@ -0,0 +1,3 @@ +# @kbn/data-forge + +Empty package generated by @kbn/generate diff --git a/x-pack/packages/kbn-data-forge/index.ts b/x-pack/packages/kbn-data-forge/index.ts new file mode 100644 index 0000000000000..bb9d0e104f4a7 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export type { + Config, + Dataset, + PartialConfig, + Schedule, + EventsPerCycle, + MetricEventDef, + TransitionMethod, +} from './src/types'; +export { run } from './src/run'; +export { cli } from './src/cli'; +export { generate } from './src/generate'; +export { cleanup } from './src/cleanup'; +export { createConfig, readConfig } from './src/lib/create_config'; diff --git a/x-pack/packages/kbn-data-forge/jest.config.js b/x-pack/packages/kbn-data-forge/jest.config.js new file mode 100644 index 0000000000000..d1a6e79c73a62 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/jest.config.js @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +module.exports = { + preset: '@kbn/test', + rootDir: '../../..', + roots: ['/x-pack/packages/kbn-data-forge'], +}; diff --git a/x-pack/packages/kbn-data-forge/kibana.jsonc b/x-pack/packages/kbn-data-forge/kibana.jsonc new file mode 100644 index 0000000000000..7a09830de0b3a --- /dev/null +++ b/x-pack/packages/kbn-data-forge/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/data-forge", + "owner": "@elastic/obs-ux-management-team" +} diff --git a/x-pack/packages/kbn-data-forge/package.json b/x-pack/packages/kbn-data-forge/package.json new file mode 100644 index 0000000000000..8ae87a8372657 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/data-forge", + "private": true, + "version": "1.0.0", + "license": "Elastic License 2.0" +} \ No newline at end of file diff --git a/x-pack/packages/kbn-data-forge/src/cleanup.ts b/x-pack/packages/kbn-data-forge/src/cleanup.ts new file mode 100644 index 0000000000000..84b571f93ecd5 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/cleanup.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 { Client } from '@elastic/elasticsearch'; +import { ToolingLog } from '@kbn/tooling-log'; +import { createConfig } from './lib/create_config'; +import { deleteIndexTemplate } from './lib/delete_index_template'; +import { PartialConfig } from './types'; + +export async function cleanup({ + client, + config: partialConfig, + logger, +}: { + client: Client; + config: PartialConfig; + logger: ToolingLog; +}) { + const config = createConfig(partialConfig); + return deleteIndexTemplate(config, client, logger); +} diff --git a/x-pack/packages/kbn-data-forge/src/cli.ts b/x-pack/packages/kbn-data-forge/src/cli.ts new file mode 100644 index 0000000000000..9d7e9e3bca026 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/cli.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ToolingLog } from '@kbn/tooling-log'; +import { cliOptionsToPartialConfig } from './lib/cli_to_partial_config'; +import { createConfig, readConfig } from './lib/create_config'; +import { getEsClient } from './lib/get_es_client'; +import { parseCliOptions } from './lib/parse_cli_options'; +import { run } from './run'; + +export async function cli() { + const options = parseCliOptions(); + const partialConfig = options.config + ? await readConfig(options.config) + : cliOptionsToPartialConfig(options); + const logger = new ToolingLog({ level: 'info', writeTo: process.stdout }); + const config = createConfig(partialConfig); + const client = getEsClient(config); + logger.info( + `Starting index to ${config.elasticsearch.host} with a payload size of ${config.indexing.payloadSize} using ${config.indexing.concurrency} workers to index ${config.indexing.eventsPerCycle} events per cycle` + ); + return run(config, client, logger); +} diff --git a/x-pack/packages/kbn-data-forge/src/constants.ts b/x-pack/packages/kbn-data-forge/src/constants.ts new file mode 100644 index 0000000000000..d96735eeff8d0 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/constants.ts @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export const FAKE_HOSTS = 'fake_hosts'; +export const FAKE_LOGS = 'fake_logs'; +export const FAKE_STACK = 'fake_stack'; + +export const INDEX_PREFIX = 'kbn-data-forge'; + +export const DEFAULTS = { + EVENTS_PER_CYCLE: 1, + PAYLOAD_SIZE: 10_000, + CONCURRENCY: 5, + SERVERLESS: false, + INDEX_INTERVAL: 60_000, + DATASET: FAKE_LOGS, + SCENARIO: 'good', + ELASTICSEARCH_HOST: 'http://localhost:9200', + ELASTICSEARCH_USERNAME: 'elastic', + ELASTICSEARCH_PASSWORD: 'changeme', + ELASTICSEARCH_API_KEY: '', + SKIP_KIBANA_USER: false, + INSTALL_KIBANA_ASSETS: false, + DELAY_IN_MINUTES: 0, + DELAY_EVERY_MINUTES: 5, + LOOKBACK: 'now-15m', + KIBANA_URL: 'http://localhost:5601', + KIBANA_USERNAME: 'elastic', + KIBANA_PASSWORD: 'changeme', + EVENT_TEMPLATE: 'good', + REDUCE_WEEKEND_TRAFFIC_BY: 0, + EPHEMERAL_PROJECT_IDS: 0, +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/custom/metricset.yaml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/custom/metricset.yaml new file mode 100644 index 0000000000000..87a8856f0e637 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/custom/metricset.yaml @@ -0,0 +1,11 @@ +- name: metricset + title: Metricset + description: > + Metricset data + type: group + fields: + - name: interval + type: long + level: custom + description: > + The interval of the data diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/custom/system.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/custom/system.yml new file mode 100644 index 0000000000000..00f986a666075 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/custom/system.yml @@ -0,0 +1,34 @@ +- name: system + title: System + type: group + level: custom + description: "System-related information" + fields: + - name: cpu.cores + type: integer + level: custom + description: "Number of CPU cores" + - name: cpu.total.norm.pct + level: custom + type: float + description: "Percentage of CPU usage" + - name: cpu.user.pct + level: custom + type: float + description: "Percentage of CPU usage by user processes" + - name: cpu.system.pct + level: custom + type: float + description: "Percentage of CPU usage by system processes" + - name: network.name + type: keyword + level: custom + description: "Name of the network interface" + - name: network.in.bytes + level: custom + type: long + description: "Number of incoming bytes" + - name: network.out.bytes + level: custom + type: long + description: "Number of outgoing bytes" diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/mapping-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/mapping-settings.json new file mode 100644 index 0000000000000..213c50bcc0851 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/mapping-settings.json @@ -0,0 +1,20 @@ +{ + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "type": "keyword", + "ignore_above": 1024, + "fields": { + "text": { "type": "text", "norms" : false } + } + }, + "match_mapping_type": "string" + } + } + ] +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/subset.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/subset.yml new file mode 100644 index 0000000000000..a77baa6836a7b --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/subset.yml @@ -0,0 +1,16 @@ +--- +name: fake_hosts +fields: + base: + fields: '*' + event: + fields: + module: {} + dataset: {} + host: + fields: '*' + metricset: + fields: '*' + system: + fields: '*' + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/template-settings-legacy.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/template-settings-legacy.json new file mode 100644 index 0000000000000..5b81ff077110f --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/template-settings-legacy.json @@ -0,0 +1,17 @@ +{ + "index_patterns": ["kbn-data-forge-fake_hosts.fake_hosts-*"], + "order": 1, + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} + + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/template-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/template-settings.json new file mode 100644 index 0000000000000..50978547015d0 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/fields/template-settings.json @@ -0,0 +1,16 @@ +{ + "index_patterns": ["kbn-data-forge-fake_hosts.fake_hosts-*"], + "priority": 1, + "template": { + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generate.sh b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generate.sh new file mode 100755 index 0000000000000..76221bba3ad34 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generate.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +cd ../../../../../../../../ecs + +BASE=../kibana/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts +ECS=$BASE/ecs + +python3 ./scripts/generator.py --ref v8.0.0 \ + --subset $ECS/fields/subset.yml \ + --include $ECS/fields/custom \ + --out $ECS/ \ + --template-settings-legacy $ECS/fields/template-settings-legacy.json \ + --template-settings $ECS/fields/template-settings.json \ + --mapping-settings $ECS/fields/mapping-settings.json diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/beats/fields.ecs.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/beats/fields.ecs.yml new file mode 100644 index 0000000000000..f69fb05d790ea --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/beats/fields.ecs.yml @@ -0,0 +1,416 @@ +# WARNING! Do not edit this file directly, it was generated by the ECS project, +# based on ECS version 8.0.0. +# Please visit https://github.com/elastic/ecs to suggest changes to ECS fields. + +- key: ecs + title: ECS + description: ECS Fields. + fields: + - name: '@timestamp' + level: core + required: true + type: date + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + default_field: true + - name: labels + level: core + type: object + object_type: keyword + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + default_field: true + - name: message + level: core + type: match_only_text + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + default_field: true + - name: tags + level: core + type: keyword + ignore_above: 1024 + description: List of keywords used to tag each event. + example: '["production", "env2"]' + default_field: true + - name: event + title: Event + group: 2 + description: 'The event fields are used for context information about the log + or metric event itself. + + A log is defined as an event containing details of something that happened. + Log events must include the time at which the thing happened. Examples of log + events include a process starting on a host, a network packet being sent from + a source to a destination, or a network connection between a client and a server + being initiated or closed. A metric is defined as an event containing one or + more numerical measurements and the time at which the measurement was taken. + Examples of metric events include memory pressure measured on a host and device + temperature. See the `event.kind` definition in this section for additional + details about metric and state events.' + type: group + default_field: true + fields: + - name: dataset + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes + from. + + It''s recommended but not required to start the dataset name with the module + name, followed by a dot, then the dataset name.' + example: apache.access + - name: module + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain + the name of this module.' + example: apache + - name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include + hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + default_field: true + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: cpu.usage + level: extended + type: scaled_float + description: 'Percent CPU used which is normalized by the number of CPU cores + and it ranges from 0 to 1. + + Scaling factor: 1000. + + For example: For a two core host, this value should be the average of the + two cores, between 0 and 1.' + scaling_factor: 1000 + default_field: false + - name: disk.read.bytes + level: extended + type: long + description: The total number of bytes (gauge) read successfully (aggregated + from all disks) since the last metric collection. + default_field: false + - name: disk.write.bytes + level: extended + type: long + description: The total number of bytes (gauge) written successfully (aggregated + from all disks) since the last metric collection. + default_field: false + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain + or NetBIOS domain name. For Linux this could be the domain of the host''s + LDAP provider.' + example: CONTOSO + default_field: false + - name: geo.city_name + level: core + type: keyword + ignore_above: 1024 + description: City name. + example: Montreal + - name: geo.continent_code + level: core + type: keyword + ignore_above: 1024 + description: Two-letter code representing continent's name. + example: NA + default_field: false + - name: geo.continent_name + level: core + type: keyword + ignore_above: 1024 + description: Name of the continent. + example: North America + - name: geo.country_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Country ISO code. + example: CA + - name: geo.country_name + level: core + type: keyword + ignore_above: 1024 + description: Country name. + example: Canada + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + - name: geo.name + level: extended + type: keyword + ignore_above: 1024 + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + - name: geo.postal_code + level: core + type: keyword + ignore_above: 1024 + description: 'Postal code associated with the location. + + Values appropriate for this field may also be known as a postcode or ZIP code + and will vary widely from country to country.' + example: 94040 + default_field: false + - name: geo.region_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Region ISO code. + example: CA-QC + - name: geo.region_name + level: core + type: keyword + ignore_above: 1024 + description: Region name. + example: Quebec + - name: geo.timezone + level: core + type: keyword + ignore_above: 1024 + description: The time zone of the location, such as IANA time zone name. + example: America/Argentina/Buenos_Aires + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: 'Host MAC addresses. + + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit + byte) is represented by two [uppercase] hexadecimal digits giving the value + of the octet as an unsigned integer. Successive octets are separated by a + hyphen.' + example: '["00-00-5E-00-53-23", "00-00-5E-00-53-24"]' + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + - name: network.egress.bytes + level: extended + type: long + description: The number of bytes (gauge) sent out on all network interfaces + by the host since the last metric collection. + default_field: false + - name: network.egress.packets + level: extended + type: long + description: The number of packets (gauge) sent out on all network interfaces + by the host since the last metric collection. + default_field: false + - name: network.ingress.bytes + level: extended + type: long + description: The number of bytes received (gauge) on all network interfaces + by the host since the last metric collection. + default_field: false + - name: network.ingress.packets + level: extended + type: long + description: The number of packets (gauge) received on all network interfaces + by the host since the last metric collection. + default_field: false + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.full + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: match_only_text + default_field: false + description: Operating system name, including the version or code name. + example: Mac OS Mojave + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: match_only_text + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.type + level: extended + type: keyword + ignore_above: 1024 + description: 'Use the `os.type` field to categorize the operating system into + one of the broad commercial families. + + One of these following values should be used (lowercase): linux, macos, unix, + windows. + + If the OS you''re dealing with is not in the list, the field should not be + populated. Please let us know by opening an issue with ECS, to propose its + addition.' + example: macos + default_field: false + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, + this could be the container, for example, or other information meaningful + in your environment.' + - name: uptime + level: extended + type: long + description: Seconds the host has been up. + example: 1325 + - name: metricset + title: Metricset + group: 2 + description: Metricset data + type: group + default_field: true + fields: + - name: interval + level: custom + type: long + description: The interval of the data + default_field: false + - name: system + title: System + group: 2 + description: System-related information + type: group + default_field: true + fields: + - name: cpu.cores + level: custom + type: integer + description: Number of CPU cores + default_field: false + - name: cpu.system.pct + level: custom + type: float + description: Percentage of CPU usage by system processes + default_field: false + - name: cpu.total.norm.pct + level: custom + type: float + description: Percentage of CPU usage + default_field: false + - name: cpu.user.pct + level: custom + type: float + description: Percentage of CPU usage by user processes + default_field: false + - name: network.in.bytes + level: custom + type: long + description: Number of incoming bytes + default_field: false + - name: network.name + level: custom + type: keyword + ignore_above: 1024 + description: Name of the network interface + default_field: false + - name: network.out.bytes + level: custom + type: long + description: Number of outgoing bytes + default_field: false diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/csv/fields.csv b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/csv/fields.csv new file mode 100644 index 0000000000000..809fe586cd103 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/csv/fields.csv @@ -0,0 +1,51 @@ +ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description +8.0.0,true,base,@timestamp,date,core,,2016-05-23T08:05:34.853Z,Date/time when the event originated. +8.0.0,true,base,labels,object,core,,"{""application"": ""foo-bar"", ""env"": ""production""}",Custom key/value pairs. +8.0.0,true,base,message,match_only_text,core,,Hello World,Log message optimized for viewing in a log viewer. +8.0.0,true,base,tags,keyword,core,array,"[""production"", ""env2""]",List of keywords used to tag each event. +8.0.0,true,event,event.dataset,keyword,core,,apache.access,Name of the dataset. +8.0.0,true,event,event.module,keyword,core,,apache,Name of the module this data is coming from. +8.0.0,true,host,host.architecture,keyword,core,,x86_64,Operating system architecture. +8.0.0,true,host,host.cpu.usage,scaled_float,extended,,,"Percent CPU used, between 0 and 1." +8.0.0,true,host,host.disk.read.bytes,long,extended,,,The number of bytes read by all disks. +8.0.0,true,host,host.disk.write.bytes,long,extended,,,The number of bytes written on all disks. +8.0.0,true,host,host.domain,keyword,extended,,CONTOSO,Name of the directory the group is a member of. +8.0.0,true,host,host.geo.city_name,keyword,core,,Montreal,City name. +8.0.0,true,host,host.geo.continent_code,keyword,core,,NA,Continent code. +8.0.0,true,host,host.geo.continent_name,keyword,core,,North America,Name of the continent. +8.0.0,true,host,host.geo.country_iso_code,keyword,core,,CA,Country ISO code. +8.0.0,true,host,host.geo.country_name,keyword,core,,Canada,Country name. +8.0.0,true,host,host.geo.location,geo_point,core,,"{ ""lon"": -73.614830, ""lat"": 45.505918 }",Longitude and latitude. +8.0.0,true,host,host.geo.name,keyword,extended,,boston-dc,User-defined description of a location. +8.0.0,true,host,host.geo.postal_code,keyword,core,,94040,Postal code. +8.0.0,true,host,host.geo.region_iso_code,keyword,core,,CA-QC,Region ISO code. +8.0.0,true,host,host.geo.region_name,keyword,core,,Quebec,Region name. +8.0.0,true,host,host.geo.timezone,keyword,core,,America/Argentina/Buenos_Aires,Time zone. +8.0.0,true,host,host.hostname,keyword,core,,,Hostname of the host. +8.0.0,true,host,host.id,keyword,core,,,Unique host id. +8.0.0,true,host,host.ip,ip,core,array,,Host ip addresses. +8.0.0,true,host,host.mac,keyword,core,array,"[""00-00-5E-00-53-23"", ""00-00-5E-00-53-24""]",Host MAC addresses. +8.0.0,true,host,host.name,keyword,core,,,Name of the host. +8.0.0,true,host,host.network.egress.bytes,long,extended,,,The number of bytes sent on all network interfaces. +8.0.0,true,host,host.network.egress.packets,long,extended,,,The number of packets sent on all network interfaces. +8.0.0,true,host,host.network.ingress.bytes,long,extended,,,The number of bytes received on all network interfaces. +8.0.0,true,host,host.network.ingress.packets,long,extended,,,The number of packets received on all network interfaces. +8.0.0,true,host,host.os.family,keyword,extended,,debian,"OS family (such as redhat, debian, freebsd, windows)." +8.0.0,true,host,host.os.full,keyword,extended,,Mac OS Mojave,"Operating system name, including the version or code name." +8.0.0,true,host,host.os.full.text,match_only_text,extended,,Mac OS Mojave,"Operating system name, including the version or code name." +8.0.0,true,host,host.os.kernel,keyword,extended,,4.4.0-112-generic,Operating system kernel version as a raw string. +8.0.0,true,host,host.os.name,keyword,extended,,Mac OS X,"Operating system name, without the version." +8.0.0,true,host,host.os.name.text,match_only_text,extended,,Mac OS X,"Operating system name, without the version." +8.0.0,true,host,host.os.platform,keyword,extended,,darwin,"Operating system platform (such centos, ubuntu, windows)." +8.0.0,true,host,host.os.type,keyword,extended,,macos,"Which commercial OS family (one of: linux, macos, unix or windows)." +8.0.0,true,host,host.os.version,keyword,extended,,10.14.1,Operating system version as a raw string. +8.0.0,true,host,host.type,keyword,core,,,Type of host. +8.0.0,true,host,host.uptime,long,extended,,1325,Seconds the host has been up. +8.0.0,true,metricset,metricset.interval,long,custom,,,The interval of the data +8.0.0,true,system,system.cpu.cores,integer,custom,,,Number of CPU cores +8.0.0,true,system,system.cpu.system.pct,float,custom,,,Percentage of CPU usage by system processes +8.0.0,true,system,system.cpu.total.norm.pct,float,custom,,,Percentage of CPU usage +8.0.0,true,system,system.cpu.user.pct,float,custom,,,Percentage of CPU usage by user processes +8.0.0,true,system,system.network.in.bytes,long,custom,,,Number of incoming bytes +8.0.0,true,system,system.network.name,keyword,custom,,,Name of the network interface +8.0.0,true,system,system.network.out.bytes,long,custom,,,Number of outgoing bytes diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/ecs_flat.yml new file mode 100644 index 0000000000000..a4598f341a717 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/ecs_flat.yml @@ -0,0 +1,596 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +event.dataset: + dashed_name: event-dataset + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes from. + + It''s recommended but not required to start the dataset name with the module name, + followed by a dot, then the dataset name.' + example: apache.access + flat_name: event.dataset + ignore_above: 1024 + level: core + name: dataset + normalize: [] + short: Name of the dataset. + type: keyword +event.module: + dashed_name: event-module + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain the + name of this module.' + example: apache + flat_name: event.module + ignore_above: 1024 + level: core + name: module + normalize: [] + short: Name of the module this data is coming from. + type: keyword +host.architecture: + dashed_name: host-architecture + description: Operating system architecture. + example: x86_64 + flat_name: host.architecture + ignore_above: 1024 + level: core + name: architecture + normalize: [] + short: Operating system architecture. + type: keyword +host.cpu.usage: + dashed_name: host-cpu-usage + description: 'Percent CPU used which is normalized by the number of CPU cores and + it ranges from 0 to 1. + + Scaling factor: 1000. + + For example: For a two core host, this value should be the average of the two + cores, between 0 and 1.' + flat_name: host.cpu.usage + level: extended + name: cpu.usage + normalize: [] + scaling_factor: 1000 + short: Percent CPU used, between 0 and 1. + type: scaled_float +host.disk.read.bytes: + dashed_name: host-disk-read-bytes + description: The total number of bytes (gauge) read successfully (aggregated from + all disks) since the last metric collection. + flat_name: host.disk.read.bytes + level: extended + name: disk.read.bytes + normalize: [] + short: The number of bytes read by all disks. + type: long +host.disk.write.bytes: + dashed_name: host-disk-write-bytes + description: The total number of bytes (gauge) written successfully (aggregated + from all disks) since the last metric collection. + flat_name: host.disk.write.bytes + level: extended + name: disk.write.bytes + normalize: [] + short: The number of bytes written on all disks. + type: long +host.domain: + dashed_name: host-domain + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS + domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + flat_name: host.domain + ignore_above: 1024 + level: extended + name: domain + normalize: [] + short: Name of the directory the group is a member of. + type: keyword +host.geo.city_name: + dashed_name: host-geo-city-name + description: City name. + example: Montreal + flat_name: host.geo.city_name + ignore_above: 1024 + level: core + name: city_name + normalize: [] + original_fieldset: geo + short: City name. + type: keyword +host.geo.continent_code: + dashed_name: host-geo-continent-code + description: Two-letter code representing continent's name. + example: NA + flat_name: host.geo.continent_code + ignore_above: 1024 + level: core + name: continent_code + normalize: [] + original_fieldset: geo + short: Continent code. + type: keyword +host.geo.continent_name: + dashed_name: host-geo-continent-name + description: Name of the continent. + example: North America + flat_name: host.geo.continent_name + ignore_above: 1024 + level: core + name: continent_name + normalize: [] + original_fieldset: geo + short: Name of the continent. + type: keyword +host.geo.country_iso_code: + dashed_name: host-geo-country-iso-code + description: Country ISO code. + example: CA + flat_name: host.geo.country_iso_code + ignore_above: 1024 + level: core + name: country_iso_code + normalize: [] + original_fieldset: geo + short: Country ISO code. + type: keyword +host.geo.country_name: + dashed_name: host-geo-country-name + description: Country name. + example: Canada + flat_name: host.geo.country_name + ignore_above: 1024 + level: core + name: country_name + normalize: [] + original_fieldset: geo + short: Country name. + type: keyword +host.geo.location: + dashed_name: host-geo-location + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + flat_name: host.geo.location + level: core + name: location + normalize: [] + original_fieldset: geo + short: Longitude and latitude. + type: geo_point +host.geo.name: + dashed_name: host-geo-name + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes a + local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + flat_name: host.geo.name + ignore_above: 1024 + level: extended + name: name + normalize: [] + original_fieldset: geo + short: User-defined description of a location. + type: keyword +host.geo.postal_code: + dashed_name: host-geo-postal-code + description: 'Postal code associated with the location. + + Values appropriate for this field may also be known as a postcode or ZIP code + and will vary widely from country to country.' + example: 94040 + flat_name: host.geo.postal_code + ignore_above: 1024 + level: core + name: postal_code + normalize: [] + original_fieldset: geo + short: Postal code. + type: keyword +host.geo.region_iso_code: + dashed_name: host-geo-region-iso-code + description: Region ISO code. + example: CA-QC + flat_name: host.geo.region_iso_code + ignore_above: 1024 + level: core + name: region_iso_code + normalize: [] + original_fieldset: geo + short: Region ISO code. + type: keyword +host.geo.region_name: + dashed_name: host-geo-region-name + description: Region name. + example: Quebec + flat_name: host.geo.region_name + ignore_above: 1024 + level: core + name: region_name + normalize: [] + original_fieldset: geo + short: Region name. + type: keyword +host.geo.timezone: + dashed_name: host-geo-timezone + description: The time zone of the location, such as IANA time zone name. + example: America/Argentina/Buenos_Aires + flat_name: host.geo.timezone + ignore_above: 1024 + level: core + name: timezone + normalize: [] + original_fieldset: geo + short: Time zone. + type: keyword +host.hostname: + dashed_name: host-hostname + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + flat_name: host.hostname + ignore_above: 1024 + level: core + name: hostname + normalize: [] + short: Hostname of the host. + type: keyword +host.id: + dashed_name: host-id + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + flat_name: host.id + ignore_above: 1024 + level: core + name: id + normalize: [] + short: Unique host id. + type: keyword +host.ip: + dashed_name: host-ip + description: Host ip addresses. + flat_name: host.ip + level: core + name: ip + normalize: + - array + short: Host ip addresses. + type: ip +host.mac: + dashed_name: host-mac + description: 'Host MAC addresses. + + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) + is represented by two [uppercase] hexadecimal digits giving the value of the octet + as an unsigned integer. Successive octets are separated by a hyphen.' + example: '["00-00-5E-00-53-23", "00-00-5E-00-53-24"]' + flat_name: host.mac + ignore_above: 1024 + level: core + name: mac + normalize: + - array + short: Host MAC addresses. + type: keyword +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +host.network.egress.bytes: + dashed_name: host-network-egress-bytes + description: The number of bytes (gauge) sent out on all network interfaces by the + host since the last metric collection. + flat_name: host.network.egress.bytes + level: extended + name: network.egress.bytes + normalize: [] + short: The number of bytes sent on all network interfaces. + type: long +host.network.egress.packets: + dashed_name: host-network-egress-packets + description: The number of packets (gauge) sent out on all network interfaces by + the host since the last metric collection. + flat_name: host.network.egress.packets + level: extended + name: network.egress.packets + normalize: [] + short: The number of packets sent on all network interfaces. + type: long +host.network.ingress.bytes: + dashed_name: host-network-ingress-bytes + description: The number of bytes received (gauge) on all network interfaces by the + host since the last metric collection. + flat_name: host.network.ingress.bytes + level: extended + name: network.ingress.bytes + normalize: [] + short: The number of bytes received on all network interfaces. + type: long +host.network.ingress.packets: + dashed_name: host-network-ingress-packets + description: The number of packets (gauge) received on all network interfaces by + the host since the last metric collection. + flat_name: host.network.ingress.packets + level: extended + name: network.ingress.packets + normalize: [] + short: The number of packets received on all network interfaces. + type: long +host.os.family: + dashed_name: host-os-family + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + flat_name: host.os.family + ignore_above: 1024 + level: extended + name: family + normalize: [] + original_fieldset: os + short: OS family (such as redhat, debian, freebsd, windows). + type: keyword +host.os.full: + dashed_name: host-os-full + description: Operating system name, including the version or code name. + example: Mac OS Mojave + flat_name: host.os.full + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: host.os.full.text + name: text + type: match_only_text + name: full + normalize: [] + original_fieldset: os + short: Operating system name, including the version or code name. + type: keyword +host.os.kernel: + dashed_name: host-os-kernel + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + flat_name: host.os.kernel + ignore_above: 1024 + level: extended + name: kernel + normalize: [] + original_fieldset: os + short: Operating system kernel version as a raw string. + type: keyword +host.os.name: + dashed_name: host-os-name + description: Operating system name, without the version. + example: Mac OS X + flat_name: host.os.name + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: host.os.name.text + name: text + type: match_only_text + name: name + normalize: [] + original_fieldset: os + short: Operating system name, without the version. + type: keyword +host.os.platform: + dashed_name: host-os-platform + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + flat_name: host.os.platform + ignore_above: 1024 + level: extended + name: platform + normalize: [] + original_fieldset: os + short: Operating system platform (such centos, ubuntu, windows). + type: keyword +host.os.type: + dashed_name: host-os-type + description: 'Use the `os.type` field to categorize the operating system into one + of the broad commercial families. + + One of these following values should be used (lowercase): linux, macos, unix, + windows. + + If the OS you''re dealing with is not in the list, the field should not be populated. + Please let us know by opening an issue with ECS, to propose its addition.' + example: macos + flat_name: host.os.type + ignore_above: 1024 + level: extended + name: type + normalize: [] + original_fieldset: os + short: 'Which commercial OS family (one of: linux, macos, unix or windows).' + type: keyword +host.os.version: + dashed_name: host-os-version + description: Operating system version as a raw string. + example: 10.14.1 + flat_name: host.os.version + ignore_above: 1024 + level: extended + name: version + normalize: [] + original_fieldset: os + short: Operating system version as a raw string. + type: keyword +host.type: + dashed_name: host-type + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this + could be the container, for example, or other information meaningful in your environment.' + flat_name: host.type + ignore_above: 1024 + level: core + name: type + normalize: [] + short: Type of host. + type: keyword +host.uptime: + dashed_name: host-uptime + description: Seconds the host has been up. + example: 1325 + flat_name: host.uptime + level: extended + name: uptime + normalize: [] + short: Seconds the host has been up. + type: long +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +metricset.interval: + dashed_name: metricset-interval + description: The interval of the data + flat_name: metricset.interval + level: custom + name: interval + normalize: [] + short: The interval of the data + type: long +system.cpu.cores: + dashed_name: system-cpu-cores + description: Number of CPU cores + flat_name: system.cpu.cores + level: custom + name: cpu.cores + normalize: [] + short: Number of CPU cores + type: integer +system.cpu.system.pct: + dashed_name: system-cpu-system-pct + description: Percentage of CPU usage by system processes + flat_name: system.cpu.system.pct + level: custom + name: cpu.system.pct + normalize: [] + short: Percentage of CPU usage by system processes + type: float +system.cpu.total.norm.pct: + dashed_name: system-cpu-total-norm-pct + description: Percentage of CPU usage + flat_name: system.cpu.total.norm.pct + level: custom + name: cpu.total.norm.pct + normalize: [] + short: Percentage of CPU usage + type: float +system.cpu.user.pct: + dashed_name: system-cpu-user-pct + description: Percentage of CPU usage by user processes + flat_name: system.cpu.user.pct + level: custom + name: cpu.user.pct + normalize: [] + short: Percentage of CPU usage by user processes + type: float +system.network.in.bytes: + dashed_name: system-network-in-bytes + description: Number of incoming bytes + flat_name: system.network.in.bytes + level: custom + name: network.in.bytes + normalize: [] + short: Number of incoming bytes + type: long +system.network.name: + dashed_name: system-network-name + description: Name of the network interface + flat_name: system.network.name + ignore_above: 1024 + level: custom + name: network.name + normalize: [] + short: Name of the network interface + type: keyword +system.network.out.bytes: + dashed_name: system-network-out-bytes + description: Number of outgoing bytes + flat_name: system.network.out.bytes + level: custom + name: network.out.bytes + normalize: [] + short: Number of outgoing bytes + type: long +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/ecs_nested.yml new file mode 100644 index 0000000000000..778fef1eac743 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/ecs_nested.yml @@ -0,0 +1,675 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +event: + description: 'The event fields are used for context information about the log or + metric event itself. + + A log is defined as an event containing details of something that happened. Log + events must include the time at which the thing happened. Examples of log events + include a process starting on a host, a network packet being sent from a source + to a destination, or a network connection between a client and a server being + initiated or closed. A metric is defined as an event containing one or more numerical + measurements and the time at which the measurement was taken. Examples of metric + events include memory pressure measured on a host and device temperature. See + the `event.kind` definition in this section for additional details about metric + and state events.' + fields: + event.dataset: + dashed_name: event-dataset + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes + from. + + It''s recommended but not required to start the dataset name with the module + name, followed by a dot, then the dataset name.' + example: apache.access + flat_name: event.dataset + ignore_above: 1024 + level: core + name: dataset + normalize: [] + short: Name of the dataset. + type: keyword + event.module: + dashed_name: event-module + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain + the name of this module.' + example: apache + flat_name: event.module + ignore_above: 1024 + level: core + name: module + normalize: [] + short: Name of the module this data is coming from. + type: keyword + group: 2 + name: event + prefix: event. + short: Fields breaking down the event details. + title: Event + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.architecture: + dashed_name: host-architecture + description: Operating system architecture. + example: x86_64 + flat_name: host.architecture + ignore_above: 1024 + level: core + name: architecture + normalize: [] + short: Operating system architecture. + type: keyword + host.cpu.usage: + dashed_name: host-cpu-usage + description: 'Percent CPU used which is normalized by the number of CPU cores + and it ranges from 0 to 1. + + Scaling factor: 1000. + + For example: For a two core host, this value should be the average of the + two cores, between 0 and 1.' + flat_name: host.cpu.usage + level: extended + name: cpu.usage + normalize: [] + scaling_factor: 1000 + short: Percent CPU used, between 0 and 1. + type: scaled_float + host.disk.read.bytes: + dashed_name: host-disk-read-bytes + description: The total number of bytes (gauge) read successfully (aggregated + from all disks) since the last metric collection. + flat_name: host.disk.read.bytes + level: extended + name: disk.read.bytes + normalize: [] + short: The number of bytes read by all disks. + type: long + host.disk.write.bytes: + dashed_name: host-disk-write-bytes + description: The total number of bytes (gauge) written successfully (aggregated + from all disks) since the last metric collection. + flat_name: host.disk.write.bytes + level: extended + name: disk.write.bytes + normalize: [] + short: The number of bytes written on all disks. + type: long + host.domain: + dashed_name: host-domain + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain + or NetBIOS domain name. For Linux this could be the domain of the host''s + LDAP provider.' + example: CONTOSO + flat_name: host.domain + ignore_above: 1024 + level: extended + name: domain + normalize: [] + short: Name of the directory the group is a member of. + type: keyword + host.geo.city_name: + dashed_name: host-geo-city-name + description: City name. + example: Montreal + flat_name: host.geo.city_name + ignore_above: 1024 + level: core + name: city_name + normalize: [] + original_fieldset: geo + short: City name. + type: keyword + host.geo.continent_code: + dashed_name: host-geo-continent-code + description: Two-letter code representing continent's name. + example: NA + flat_name: host.geo.continent_code + ignore_above: 1024 + level: core + name: continent_code + normalize: [] + original_fieldset: geo + short: Continent code. + type: keyword + host.geo.continent_name: + dashed_name: host-geo-continent-name + description: Name of the continent. + example: North America + flat_name: host.geo.continent_name + ignore_above: 1024 + level: core + name: continent_name + normalize: [] + original_fieldset: geo + short: Name of the continent. + type: keyword + host.geo.country_iso_code: + dashed_name: host-geo-country-iso-code + description: Country ISO code. + example: CA + flat_name: host.geo.country_iso_code + ignore_above: 1024 + level: core + name: country_iso_code + normalize: [] + original_fieldset: geo + short: Country ISO code. + type: keyword + host.geo.country_name: + dashed_name: host-geo-country-name + description: Country name. + example: Canada + flat_name: host.geo.country_name + ignore_above: 1024 + level: core + name: country_name + normalize: [] + original_fieldset: geo + short: Country name. + type: keyword + host.geo.location: + dashed_name: host-geo-location + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + flat_name: host.geo.location + level: core + name: location + normalize: [] + original_fieldset: geo + short: Longitude and latitude. + type: geo_point + host.geo.name: + dashed_name: host-geo-name + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + flat_name: host.geo.name + ignore_above: 1024 + level: extended + name: name + normalize: [] + original_fieldset: geo + short: User-defined description of a location. + type: keyword + host.geo.postal_code: + dashed_name: host-geo-postal-code + description: 'Postal code associated with the location. + + Values appropriate for this field may also be known as a postcode or ZIP code + and will vary widely from country to country.' + example: 94040 + flat_name: host.geo.postal_code + ignore_above: 1024 + level: core + name: postal_code + normalize: [] + original_fieldset: geo + short: Postal code. + type: keyword + host.geo.region_iso_code: + dashed_name: host-geo-region-iso-code + description: Region ISO code. + example: CA-QC + flat_name: host.geo.region_iso_code + ignore_above: 1024 + level: core + name: region_iso_code + normalize: [] + original_fieldset: geo + short: Region ISO code. + type: keyword + host.geo.region_name: + dashed_name: host-geo-region-name + description: Region name. + example: Quebec + flat_name: host.geo.region_name + ignore_above: 1024 + level: core + name: region_name + normalize: [] + original_fieldset: geo + short: Region name. + type: keyword + host.geo.timezone: + dashed_name: host-geo-timezone + description: The time zone of the location, such as IANA time zone name. + example: America/Argentina/Buenos_Aires + flat_name: host.geo.timezone + ignore_above: 1024 + level: core + name: timezone + normalize: [] + original_fieldset: geo + short: Time zone. + type: keyword + host.hostname: + dashed_name: host-hostname + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + flat_name: host.hostname + ignore_above: 1024 + level: core + name: hostname + normalize: [] + short: Hostname of the host. + type: keyword + host.id: + dashed_name: host-id + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + flat_name: host.id + ignore_above: 1024 + level: core + name: id + normalize: [] + short: Unique host id. + type: keyword + host.ip: + dashed_name: host-ip + description: Host ip addresses. + flat_name: host.ip + level: core + name: ip + normalize: + - array + short: Host ip addresses. + type: ip + host.mac: + dashed_name: host-mac + description: 'Host MAC addresses. + + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit + byte) is represented by two [uppercase] hexadecimal digits giving the value + of the octet as an unsigned integer. Successive octets are separated by a + hyphen.' + example: '["00-00-5E-00-53-23", "00-00-5E-00-53-24"]' + flat_name: host.mac + ignore_above: 1024 + level: core + name: mac + normalize: + - array + short: Host MAC addresses. + type: keyword + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + host.network.egress.bytes: + dashed_name: host-network-egress-bytes + description: The number of bytes (gauge) sent out on all network interfaces + by the host since the last metric collection. + flat_name: host.network.egress.bytes + level: extended + name: network.egress.bytes + normalize: [] + short: The number of bytes sent on all network interfaces. + type: long + host.network.egress.packets: + dashed_name: host-network-egress-packets + description: The number of packets (gauge) sent out on all network interfaces + by the host since the last metric collection. + flat_name: host.network.egress.packets + level: extended + name: network.egress.packets + normalize: [] + short: The number of packets sent on all network interfaces. + type: long + host.network.ingress.bytes: + dashed_name: host-network-ingress-bytes + description: The number of bytes received (gauge) on all network interfaces + by the host since the last metric collection. + flat_name: host.network.ingress.bytes + level: extended + name: network.ingress.bytes + normalize: [] + short: The number of bytes received on all network interfaces. + type: long + host.network.ingress.packets: + dashed_name: host-network-ingress-packets + description: The number of packets (gauge) received on all network interfaces + by the host since the last metric collection. + flat_name: host.network.ingress.packets + level: extended + name: network.ingress.packets + normalize: [] + short: The number of packets received on all network interfaces. + type: long + host.os.family: + dashed_name: host-os-family + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + flat_name: host.os.family + ignore_above: 1024 + level: extended + name: family + normalize: [] + original_fieldset: os + short: OS family (such as redhat, debian, freebsd, windows). + type: keyword + host.os.full: + dashed_name: host-os-full + description: Operating system name, including the version or code name. + example: Mac OS Mojave + flat_name: host.os.full + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: host.os.full.text + name: text + type: match_only_text + name: full + normalize: [] + original_fieldset: os + short: Operating system name, including the version or code name. + type: keyword + host.os.kernel: + dashed_name: host-os-kernel + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + flat_name: host.os.kernel + ignore_above: 1024 + level: extended + name: kernel + normalize: [] + original_fieldset: os + short: Operating system kernel version as a raw string. + type: keyword + host.os.name: + dashed_name: host-os-name + description: Operating system name, without the version. + example: Mac OS X + flat_name: host.os.name + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: host.os.name.text + name: text + type: match_only_text + name: name + normalize: [] + original_fieldset: os + short: Operating system name, without the version. + type: keyword + host.os.platform: + dashed_name: host-os-platform + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + flat_name: host.os.platform + ignore_above: 1024 + level: extended + name: platform + normalize: [] + original_fieldset: os + short: Operating system platform (such centos, ubuntu, windows). + type: keyword + host.os.type: + dashed_name: host-os-type + description: 'Use the `os.type` field to categorize the operating system into + one of the broad commercial families. + + One of these following values should be used (lowercase): linux, macos, unix, + windows. + + If the OS you''re dealing with is not in the list, the field should not be + populated. Please let us know by opening an issue with ECS, to propose its + addition.' + example: macos + flat_name: host.os.type + ignore_above: 1024 + level: extended + name: type + normalize: [] + original_fieldset: os + short: 'Which commercial OS family (one of: linux, macos, unix or windows).' + type: keyword + host.os.version: + dashed_name: host-os-version + description: Operating system version as a raw string. + example: 10.14.1 + flat_name: host.os.version + ignore_above: 1024 + level: extended + name: version + normalize: [] + original_fieldset: os + short: Operating system version as a raw string. + type: keyword + host.type: + dashed_name: host-type + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, + this could be the container, for example, or other information meaningful + in your environment.' + flat_name: host.type + ignore_above: 1024 + level: core + name: type + normalize: [] + short: Type of host. + type: keyword + host.uptime: + dashed_name: host-uptime + description: Seconds the host has been up. + example: 1325 + flat_name: host.uptime + level: extended + name: uptime + normalize: [] + short: Seconds the host has been up. + type: long + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +metricset: + description: Metricset data + fields: + metricset.interval: + dashed_name: metricset-interval + description: The interval of the data + flat_name: metricset.interval + level: custom + name: interval + normalize: [] + short: The interval of the data + type: long + group: 2 + name: metricset + prefix: metricset. + short: Metricset data + title: Metricset + type: group +system: + description: System-related information + fields: + system.cpu.cores: + dashed_name: system-cpu-cores + description: Number of CPU cores + flat_name: system.cpu.cores + level: custom + name: cpu.cores + normalize: [] + short: Number of CPU cores + type: integer + system.cpu.system.pct: + dashed_name: system-cpu-system-pct + description: Percentage of CPU usage by system processes + flat_name: system.cpu.system.pct + level: custom + name: cpu.system.pct + normalize: [] + short: Percentage of CPU usage by system processes + type: float + system.cpu.total.norm.pct: + dashed_name: system-cpu-total-norm-pct + description: Percentage of CPU usage + flat_name: system.cpu.total.norm.pct + level: custom + name: cpu.total.norm.pct + normalize: [] + short: Percentage of CPU usage + type: float + system.cpu.user.pct: + dashed_name: system-cpu-user-pct + description: Percentage of CPU usage by user processes + flat_name: system.cpu.user.pct + level: custom + name: cpu.user.pct + normalize: [] + short: Percentage of CPU usage by user processes + type: float + system.network.in.bytes: + dashed_name: system-network-in-bytes + description: Number of incoming bytes + flat_name: system.network.in.bytes + level: custom + name: network.in.bytes + normalize: [] + short: Number of incoming bytes + type: long + system.network.name: + dashed_name: system-network-name + description: Name of the network interface + flat_name: system.network.name + ignore_above: 1024 + level: custom + name: network.name + normalize: [] + short: Name of the network interface + type: keyword + system.network.out.bytes: + dashed_name: system-network-out-bytes + description: Number of outgoing bytes + flat_name: system.network.out.bytes + level: custom + name: network.out.bytes + normalize: [] + short: Number of outgoing bytes + type: long + group: 2 + level: custom + name: system + prefix: system. + short: System-related information + title: System + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/subset/fake_hosts/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/subset/fake_hosts/ecs_flat.yml new file mode 100644 index 0000000000000..a4598f341a717 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/subset/fake_hosts/ecs_flat.yml @@ -0,0 +1,596 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +event.dataset: + dashed_name: event-dataset + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes from. + + It''s recommended but not required to start the dataset name with the module name, + followed by a dot, then the dataset name.' + example: apache.access + flat_name: event.dataset + ignore_above: 1024 + level: core + name: dataset + normalize: [] + short: Name of the dataset. + type: keyword +event.module: + dashed_name: event-module + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain the + name of this module.' + example: apache + flat_name: event.module + ignore_above: 1024 + level: core + name: module + normalize: [] + short: Name of the module this data is coming from. + type: keyword +host.architecture: + dashed_name: host-architecture + description: Operating system architecture. + example: x86_64 + flat_name: host.architecture + ignore_above: 1024 + level: core + name: architecture + normalize: [] + short: Operating system architecture. + type: keyword +host.cpu.usage: + dashed_name: host-cpu-usage + description: 'Percent CPU used which is normalized by the number of CPU cores and + it ranges from 0 to 1. + + Scaling factor: 1000. + + For example: For a two core host, this value should be the average of the two + cores, between 0 and 1.' + flat_name: host.cpu.usage + level: extended + name: cpu.usage + normalize: [] + scaling_factor: 1000 + short: Percent CPU used, between 0 and 1. + type: scaled_float +host.disk.read.bytes: + dashed_name: host-disk-read-bytes + description: The total number of bytes (gauge) read successfully (aggregated from + all disks) since the last metric collection. + flat_name: host.disk.read.bytes + level: extended + name: disk.read.bytes + normalize: [] + short: The number of bytes read by all disks. + type: long +host.disk.write.bytes: + dashed_name: host-disk-write-bytes + description: The total number of bytes (gauge) written successfully (aggregated + from all disks) since the last metric collection. + flat_name: host.disk.write.bytes + level: extended + name: disk.write.bytes + normalize: [] + short: The number of bytes written on all disks. + type: long +host.domain: + dashed_name: host-domain + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS + domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + flat_name: host.domain + ignore_above: 1024 + level: extended + name: domain + normalize: [] + short: Name of the directory the group is a member of. + type: keyword +host.geo.city_name: + dashed_name: host-geo-city-name + description: City name. + example: Montreal + flat_name: host.geo.city_name + ignore_above: 1024 + level: core + name: city_name + normalize: [] + original_fieldset: geo + short: City name. + type: keyword +host.geo.continent_code: + dashed_name: host-geo-continent-code + description: Two-letter code representing continent's name. + example: NA + flat_name: host.geo.continent_code + ignore_above: 1024 + level: core + name: continent_code + normalize: [] + original_fieldset: geo + short: Continent code. + type: keyword +host.geo.continent_name: + dashed_name: host-geo-continent-name + description: Name of the continent. + example: North America + flat_name: host.geo.continent_name + ignore_above: 1024 + level: core + name: continent_name + normalize: [] + original_fieldset: geo + short: Name of the continent. + type: keyword +host.geo.country_iso_code: + dashed_name: host-geo-country-iso-code + description: Country ISO code. + example: CA + flat_name: host.geo.country_iso_code + ignore_above: 1024 + level: core + name: country_iso_code + normalize: [] + original_fieldset: geo + short: Country ISO code. + type: keyword +host.geo.country_name: + dashed_name: host-geo-country-name + description: Country name. + example: Canada + flat_name: host.geo.country_name + ignore_above: 1024 + level: core + name: country_name + normalize: [] + original_fieldset: geo + short: Country name. + type: keyword +host.geo.location: + dashed_name: host-geo-location + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + flat_name: host.geo.location + level: core + name: location + normalize: [] + original_fieldset: geo + short: Longitude and latitude. + type: geo_point +host.geo.name: + dashed_name: host-geo-name + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes a + local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + flat_name: host.geo.name + ignore_above: 1024 + level: extended + name: name + normalize: [] + original_fieldset: geo + short: User-defined description of a location. + type: keyword +host.geo.postal_code: + dashed_name: host-geo-postal-code + description: 'Postal code associated with the location. + + Values appropriate for this field may also be known as a postcode or ZIP code + and will vary widely from country to country.' + example: 94040 + flat_name: host.geo.postal_code + ignore_above: 1024 + level: core + name: postal_code + normalize: [] + original_fieldset: geo + short: Postal code. + type: keyword +host.geo.region_iso_code: + dashed_name: host-geo-region-iso-code + description: Region ISO code. + example: CA-QC + flat_name: host.geo.region_iso_code + ignore_above: 1024 + level: core + name: region_iso_code + normalize: [] + original_fieldset: geo + short: Region ISO code. + type: keyword +host.geo.region_name: + dashed_name: host-geo-region-name + description: Region name. + example: Quebec + flat_name: host.geo.region_name + ignore_above: 1024 + level: core + name: region_name + normalize: [] + original_fieldset: geo + short: Region name. + type: keyword +host.geo.timezone: + dashed_name: host-geo-timezone + description: The time zone of the location, such as IANA time zone name. + example: America/Argentina/Buenos_Aires + flat_name: host.geo.timezone + ignore_above: 1024 + level: core + name: timezone + normalize: [] + original_fieldset: geo + short: Time zone. + type: keyword +host.hostname: + dashed_name: host-hostname + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + flat_name: host.hostname + ignore_above: 1024 + level: core + name: hostname + normalize: [] + short: Hostname of the host. + type: keyword +host.id: + dashed_name: host-id + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + flat_name: host.id + ignore_above: 1024 + level: core + name: id + normalize: [] + short: Unique host id. + type: keyword +host.ip: + dashed_name: host-ip + description: Host ip addresses. + flat_name: host.ip + level: core + name: ip + normalize: + - array + short: Host ip addresses. + type: ip +host.mac: + dashed_name: host-mac + description: 'Host MAC addresses. + + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) + is represented by two [uppercase] hexadecimal digits giving the value of the octet + as an unsigned integer. Successive octets are separated by a hyphen.' + example: '["00-00-5E-00-53-23", "00-00-5E-00-53-24"]' + flat_name: host.mac + ignore_above: 1024 + level: core + name: mac + normalize: + - array + short: Host MAC addresses. + type: keyword +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +host.network.egress.bytes: + dashed_name: host-network-egress-bytes + description: The number of bytes (gauge) sent out on all network interfaces by the + host since the last metric collection. + flat_name: host.network.egress.bytes + level: extended + name: network.egress.bytes + normalize: [] + short: The number of bytes sent on all network interfaces. + type: long +host.network.egress.packets: + dashed_name: host-network-egress-packets + description: The number of packets (gauge) sent out on all network interfaces by + the host since the last metric collection. + flat_name: host.network.egress.packets + level: extended + name: network.egress.packets + normalize: [] + short: The number of packets sent on all network interfaces. + type: long +host.network.ingress.bytes: + dashed_name: host-network-ingress-bytes + description: The number of bytes received (gauge) on all network interfaces by the + host since the last metric collection. + flat_name: host.network.ingress.bytes + level: extended + name: network.ingress.bytes + normalize: [] + short: The number of bytes received on all network interfaces. + type: long +host.network.ingress.packets: + dashed_name: host-network-ingress-packets + description: The number of packets (gauge) received on all network interfaces by + the host since the last metric collection. + flat_name: host.network.ingress.packets + level: extended + name: network.ingress.packets + normalize: [] + short: The number of packets received on all network interfaces. + type: long +host.os.family: + dashed_name: host-os-family + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + flat_name: host.os.family + ignore_above: 1024 + level: extended + name: family + normalize: [] + original_fieldset: os + short: OS family (such as redhat, debian, freebsd, windows). + type: keyword +host.os.full: + dashed_name: host-os-full + description: Operating system name, including the version or code name. + example: Mac OS Mojave + flat_name: host.os.full + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: host.os.full.text + name: text + type: match_only_text + name: full + normalize: [] + original_fieldset: os + short: Operating system name, including the version or code name. + type: keyword +host.os.kernel: + dashed_name: host-os-kernel + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + flat_name: host.os.kernel + ignore_above: 1024 + level: extended + name: kernel + normalize: [] + original_fieldset: os + short: Operating system kernel version as a raw string. + type: keyword +host.os.name: + dashed_name: host-os-name + description: Operating system name, without the version. + example: Mac OS X + flat_name: host.os.name + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: host.os.name.text + name: text + type: match_only_text + name: name + normalize: [] + original_fieldset: os + short: Operating system name, without the version. + type: keyword +host.os.platform: + dashed_name: host-os-platform + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + flat_name: host.os.platform + ignore_above: 1024 + level: extended + name: platform + normalize: [] + original_fieldset: os + short: Operating system platform (such centos, ubuntu, windows). + type: keyword +host.os.type: + dashed_name: host-os-type + description: 'Use the `os.type` field to categorize the operating system into one + of the broad commercial families. + + One of these following values should be used (lowercase): linux, macos, unix, + windows. + + If the OS you''re dealing with is not in the list, the field should not be populated. + Please let us know by opening an issue with ECS, to propose its addition.' + example: macos + flat_name: host.os.type + ignore_above: 1024 + level: extended + name: type + normalize: [] + original_fieldset: os + short: 'Which commercial OS family (one of: linux, macos, unix or windows).' + type: keyword +host.os.version: + dashed_name: host-os-version + description: Operating system version as a raw string. + example: 10.14.1 + flat_name: host.os.version + ignore_above: 1024 + level: extended + name: version + normalize: [] + original_fieldset: os + short: Operating system version as a raw string. + type: keyword +host.type: + dashed_name: host-type + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this + could be the container, for example, or other information meaningful in your environment.' + flat_name: host.type + ignore_above: 1024 + level: core + name: type + normalize: [] + short: Type of host. + type: keyword +host.uptime: + dashed_name: host-uptime + description: Seconds the host has been up. + example: 1325 + flat_name: host.uptime + level: extended + name: uptime + normalize: [] + short: Seconds the host has been up. + type: long +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +metricset.interval: + dashed_name: metricset-interval + description: The interval of the data + flat_name: metricset.interval + level: custom + name: interval + normalize: [] + short: The interval of the data + type: long +system.cpu.cores: + dashed_name: system-cpu-cores + description: Number of CPU cores + flat_name: system.cpu.cores + level: custom + name: cpu.cores + normalize: [] + short: Number of CPU cores + type: integer +system.cpu.system.pct: + dashed_name: system-cpu-system-pct + description: Percentage of CPU usage by system processes + flat_name: system.cpu.system.pct + level: custom + name: cpu.system.pct + normalize: [] + short: Percentage of CPU usage by system processes + type: float +system.cpu.total.norm.pct: + dashed_name: system-cpu-total-norm-pct + description: Percentage of CPU usage + flat_name: system.cpu.total.norm.pct + level: custom + name: cpu.total.norm.pct + normalize: [] + short: Percentage of CPU usage + type: float +system.cpu.user.pct: + dashed_name: system-cpu-user-pct + description: Percentage of CPU usage by user processes + flat_name: system.cpu.user.pct + level: custom + name: cpu.user.pct + normalize: [] + short: Percentage of CPU usage by user processes + type: float +system.network.in.bytes: + dashed_name: system-network-in-bytes + description: Number of incoming bytes + flat_name: system.network.in.bytes + level: custom + name: network.in.bytes + normalize: [] + short: Number of incoming bytes + type: long +system.network.name: + dashed_name: system-network-name + description: Name of the network interface + flat_name: system.network.name + ignore_above: 1024 + level: custom + name: network.name + normalize: [] + short: Name of the network interface + type: keyword +system.network.out.bytes: + dashed_name: system-network-out-bytes + description: Number of outgoing bytes + flat_name: system.network.out.bytes + level: custom + name: network.out.bytes + normalize: [] + short: Number of outgoing bytes + type: long +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/subset/fake_hosts/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/subset/fake_hosts/ecs_nested.yml new file mode 100644 index 0000000000000..778fef1eac743 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/ecs/subset/fake_hosts/ecs_nested.yml @@ -0,0 +1,675 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +event: + description: 'The event fields are used for context information about the log or + metric event itself. + + A log is defined as an event containing details of something that happened. Log + events must include the time at which the thing happened. Examples of log events + include a process starting on a host, a network packet being sent from a source + to a destination, or a network connection between a client and a server being + initiated or closed. A metric is defined as an event containing one or more numerical + measurements and the time at which the measurement was taken. Examples of metric + events include memory pressure measured on a host and device temperature. See + the `event.kind` definition in this section for additional details about metric + and state events.' + fields: + event.dataset: + dashed_name: event-dataset + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes + from. + + It''s recommended but not required to start the dataset name with the module + name, followed by a dot, then the dataset name.' + example: apache.access + flat_name: event.dataset + ignore_above: 1024 + level: core + name: dataset + normalize: [] + short: Name of the dataset. + type: keyword + event.module: + dashed_name: event-module + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain + the name of this module.' + example: apache + flat_name: event.module + ignore_above: 1024 + level: core + name: module + normalize: [] + short: Name of the module this data is coming from. + type: keyword + group: 2 + name: event + prefix: event. + short: Fields breaking down the event details. + title: Event + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.architecture: + dashed_name: host-architecture + description: Operating system architecture. + example: x86_64 + flat_name: host.architecture + ignore_above: 1024 + level: core + name: architecture + normalize: [] + short: Operating system architecture. + type: keyword + host.cpu.usage: + dashed_name: host-cpu-usage + description: 'Percent CPU used which is normalized by the number of CPU cores + and it ranges from 0 to 1. + + Scaling factor: 1000. + + For example: For a two core host, this value should be the average of the + two cores, between 0 and 1.' + flat_name: host.cpu.usage + level: extended + name: cpu.usage + normalize: [] + scaling_factor: 1000 + short: Percent CPU used, between 0 and 1. + type: scaled_float + host.disk.read.bytes: + dashed_name: host-disk-read-bytes + description: The total number of bytes (gauge) read successfully (aggregated + from all disks) since the last metric collection. + flat_name: host.disk.read.bytes + level: extended + name: disk.read.bytes + normalize: [] + short: The number of bytes read by all disks. + type: long + host.disk.write.bytes: + dashed_name: host-disk-write-bytes + description: The total number of bytes (gauge) written successfully (aggregated + from all disks) since the last metric collection. + flat_name: host.disk.write.bytes + level: extended + name: disk.write.bytes + normalize: [] + short: The number of bytes written on all disks. + type: long + host.domain: + dashed_name: host-domain + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain + or NetBIOS domain name. For Linux this could be the domain of the host''s + LDAP provider.' + example: CONTOSO + flat_name: host.domain + ignore_above: 1024 + level: extended + name: domain + normalize: [] + short: Name of the directory the group is a member of. + type: keyword + host.geo.city_name: + dashed_name: host-geo-city-name + description: City name. + example: Montreal + flat_name: host.geo.city_name + ignore_above: 1024 + level: core + name: city_name + normalize: [] + original_fieldset: geo + short: City name. + type: keyword + host.geo.continent_code: + dashed_name: host-geo-continent-code + description: Two-letter code representing continent's name. + example: NA + flat_name: host.geo.continent_code + ignore_above: 1024 + level: core + name: continent_code + normalize: [] + original_fieldset: geo + short: Continent code. + type: keyword + host.geo.continent_name: + dashed_name: host-geo-continent-name + description: Name of the continent. + example: North America + flat_name: host.geo.continent_name + ignore_above: 1024 + level: core + name: continent_name + normalize: [] + original_fieldset: geo + short: Name of the continent. + type: keyword + host.geo.country_iso_code: + dashed_name: host-geo-country-iso-code + description: Country ISO code. + example: CA + flat_name: host.geo.country_iso_code + ignore_above: 1024 + level: core + name: country_iso_code + normalize: [] + original_fieldset: geo + short: Country ISO code. + type: keyword + host.geo.country_name: + dashed_name: host-geo-country-name + description: Country name. + example: Canada + flat_name: host.geo.country_name + ignore_above: 1024 + level: core + name: country_name + normalize: [] + original_fieldset: geo + short: Country name. + type: keyword + host.geo.location: + dashed_name: host-geo-location + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + flat_name: host.geo.location + level: core + name: location + normalize: [] + original_fieldset: geo + short: Longitude and latitude. + type: geo_point + host.geo.name: + dashed_name: host-geo-name + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + flat_name: host.geo.name + ignore_above: 1024 + level: extended + name: name + normalize: [] + original_fieldset: geo + short: User-defined description of a location. + type: keyword + host.geo.postal_code: + dashed_name: host-geo-postal-code + description: 'Postal code associated with the location. + + Values appropriate for this field may also be known as a postcode or ZIP code + and will vary widely from country to country.' + example: 94040 + flat_name: host.geo.postal_code + ignore_above: 1024 + level: core + name: postal_code + normalize: [] + original_fieldset: geo + short: Postal code. + type: keyword + host.geo.region_iso_code: + dashed_name: host-geo-region-iso-code + description: Region ISO code. + example: CA-QC + flat_name: host.geo.region_iso_code + ignore_above: 1024 + level: core + name: region_iso_code + normalize: [] + original_fieldset: geo + short: Region ISO code. + type: keyword + host.geo.region_name: + dashed_name: host-geo-region-name + description: Region name. + example: Quebec + flat_name: host.geo.region_name + ignore_above: 1024 + level: core + name: region_name + normalize: [] + original_fieldset: geo + short: Region name. + type: keyword + host.geo.timezone: + dashed_name: host-geo-timezone + description: The time zone of the location, such as IANA time zone name. + example: America/Argentina/Buenos_Aires + flat_name: host.geo.timezone + ignore_above: 1024 + level: core + name: timezone + normalize: [] + original_fieldset: geo + short: Time zone. + type: keyword + host.hostname: + dashed_name: host-hostname + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + flat_name: host.hostname + ignore_above: 1024 + level: core + name: hostname + normalize: [] + short: Hostname of the host. + type: keyword + host.id: + dashed_name: host-id + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + flat_name: host.id + ignore_above: 1024 + level: core + name: id + normalize: [] + short: Unique host id. + type: keyword + host.ip: + dashed_name: host-ip + description: Host ip addresses. + flat_name: host.ip + level: core + name: ip + normalize: + - array + short: Host ip addresses. + type: ip + host.mac: + dashed_name: host-mac + description: 'Host MAC addresses. + + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit + byte) is represented by two [uppercase] hexadecimal digits giving the value + of the octet as an unsigned integer. Successive octets are separated by a + hyphen.' + example: '["00-00-5E-00-53-23", "00-00-5E-00-53-24"]' + flat_name: host.mac + ignore_above: 1024 + level: core + name: mac + normalize: + - array + short: Host MAC addresses. + type: keyword + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + host.network.egress.bytes: + dashed_name: host-network-egress-bytes + description: The number of bytes (gauge) sent out on all network interfaces + by the host since the last metric collection. + flat_name: host.network.egress.bytes + level: extended + name: network.egress.bytes + normalize: [] + short: The number of bytes sent on all network interfaces. + type: long + host.network.egress.packets: + dashed_name: host-network-egress-packets + description: The number of packets (gauge) sent out on all network interfaces + by the host since the last metric collection. + flat_name: host.network.egress.packets + level: extended + name: network.egress.packets + normalize: [] + short: The number of packets sent on all network interfaces. + type: long + host.network.ingress.bytes: + dashed_name: host-network-ingress-bytes + description: The number of bytes received (gauge) on all network interfaces + by the host since the last metric collection. + flat_name: host.network.ingress.bytes + level: extended + name: network.ingress.bytes + normalize: [] + short: The number of bytes received on all network interfaces. + type: long + host.network.ingress.packets: + dashed_name: host-network-ingress-packets + description: The number of packets (gauge) received on all network interfaces + by the host since the last metric collection. + flat_name: host.network.ingress.packets + level: extended + name: network.ingress.packets + normalize: [] + short: The number of packets received on all network interfaces. + type: long + host.os.family: + dashed_name: host-os-family + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + flat_name: host.os.family + ignore_above: 1024 + level: extended + name: family + normalize: [] + original_fieldset: os + short: OS family (such as redhat, debian, freebsd, windows). + type: keyword + host.os.full: + dashed_name: host-os-full + description: Operating system name, including the version or code name. + example: Mac OS Mojave + flat_name: host.os.full + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: host.os.full.text + name: text + type: match_only_text + name: full + normalize: [] + original_fieldset: os + short: Operating system name, including the version or code name. + type: keyword + host.os.kernel: + dashed_name: host-os-kernel + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + flat_name: host.os.kernel + ignore_above: 1024 + level: extended + name: kernel + normalize: [] + original_fieldset: os + short: Operating system kernel version as a raw string. + type: keyword + host.os.name: + dashed_name: host-os-name + description: Operating system name, without the version. + example: Mac OS X + flat_name: host.os.name + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: host.os.name.text + name: text + type: match_only_text + name: name + normalize: [] + original_fieldset: os + short: Operating system name, without the version. + type: keyword + host.os.platform: + dashed_name: host-os-platform + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + flat_name: host.os.platform + ignore_above: 1024 + level: extended + name: platform + normalize: [] + original_fieldset: os + short: Operating system platform (such centos, ubuntu, windows). + type: keyword + host.os.type: + dashed_name: host-os-type + description: 'Use the `os.type` field to categorize the operating system into + one of the broad commercial families. + + One of these following values should be used (lowercase): linux, macos, unix, + windows. + + If the OS you''re dealing with is not in the list, the field should not be + populated. Please let us know by opening an issue with ECS, to propose its + addition.' + example: macos + flat_name: host.os.type + ignore_above: 1024 + level: extended + name: type + normalize: [] + original_fieldset: os + short: 'Which commercial OS family (one of: linux, macos, unix or windows).' + type: keyword + host.os.version: + dashed_name: host-os-version + description: Operating system version as a raw string. + example: 10.14.1 + flat_name: host.os.version + ignore_above: 1024 + level: extended + name: version + normalize: [] + original_fieldset: os + short: Operating system version as a raw string. + type: keyword + host.type: + dashed_name: host-type + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, + this could be the container, for example, or other information meaningful + in your environment.' + flat_name: host.type + ignore_above: 1024 + level: core + name: type + normalize: [] + short: Type of host. + type: keyword + host.uptime: + dashed_name: host-uptime + description: Seconds the host has been up. + example: 1325 + flat_name: host.uptime + level: extended + name: uptime + normalize: [] + short: Seconds the host has been up. + type: long + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +metricset: + description: Metricset data + fields: + metricset.interval: + dashed_name: metricset-interval + description: The interval of the data + flat_name: metricset.interval + level: custom + name: interval + normalize: [] + short: The interval of the data + type: long + group: 2 + name: metricset + prefix: metricset. + short: Metricset data + title: Metricset + type: group +system: + description: System-related information + fields: + system.cpu.cores: + dashed_name: system-cpu-cores + description: Number of CPU cores + flat_name: system.cpu.cores + level: custom + name: cpu.cores + normalize: [] + short: Number of CPU cores + type: integer + system.cpu.system.pct: + dashed_name: system-cpu-system-pct + description: Percentage of CPU usage by system processes + flat_name: system.cpu.system.pct + level: custom + name: cpu.system.pct + normalize: [] + short: Percentage of CPU usage by system processes + type: float + system.cpu.total.norm.pct: + dashed_name: system-cpu-total-norm-pct + description: Percentage of CPU usage + flat_name: system.cpu.total.norm.pct + level: custom + name: cpu.total.norm.pct + normalize: [] + short: Percentage of CPU usage + type: float + system.cpu.user.pct: + dashed_name: system-cpu-user-pct + description: Percentage of CPU usage by user processes + flat_name: system.cpu.user.pct + level: custom + name: cpu.user.pct + normalize: [] + short: Percentage of CPU usage by user processes + type: float + system.network.in.bytes: + dashed_name: system-network-in-bytes + description: Number of incoming bytes + flat_name: system.network.in.bytes + level: custom + name: network.in.bytes + normalize: [] + short: Number of incoming bytes + type: long + system.network.name: + dashed_name: system-network-name + description: Name of the network interface + flat_name: system.network.name + ignore_above: 1024 + level: custom + name: network.name + normalize: [] + short: Name of the network interface + type: keyword + system.network.out.bytes: + dashed_name: system-network-out-bytes + description: Number of outgoing bytes + flat_name: system.network.out.bytes + level: custom + name: network.out.bytes + normalize: [] + short: Number of outgoing bytes + type: long + group: 2 + level: custom + name: system + prefix: system. + short: System-related information + title: System + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/base.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/base.json new file mode 100644 index 0000000000000..cebc9c2971745 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/base.json @@ -0,0 +1,25 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-base.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "@timestamp": { + "type": "date" + }, + "labels": { + "type": "object" + }, + "message": { + "type": "match_only_text" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/event.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/event.json new file mode 100644 index 0000000000000..f235248f3ee83 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/event.json @@ -0,0 +1,24 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-event.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "event": { + "properties": { + "dataset": { + "ignore_above": 1024, + "type": "keyword" + }, + "module": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/host.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/host.json new file mode 100644 index 0000000000000..cc370a5270eba --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/host.json @@ -0,0 +1,189 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-host.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "host": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu": { + "properties": { + "usage": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "disk": { + "properties": { + "read": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "write": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "network": { + "properties": { + "egress": { + "properties": { + "bytes": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + }, + "ingress": { + "properties": { + "bytes": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + } + } + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "type": "long" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/metricset.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/metricset.json new file mode 100644 index 0000000000000..06ef8b57bf4b3 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/metricset.json @@ -0,0 +1,18 @@ +{ + "_meta": { + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "metricset": { + "properties": { + "interval": { + "type": "long" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/system.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/system.json new file mode 100644 index 0000000000000..46335a6da442c --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/component/system.json @@ -0,0 +1,69 @@ +{ + "_meta": { + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "system": { + "properties": { + "cpu": { + "properties": { + "cores": { + "type": "integer" + }, + "system": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "properties": { + "norm": { + "properties": { + "pct": { + "type": "float" + } + } + } + } + }, + "user": { + "properties": { + "pct": { + "type": "float" + } + } + } + } + }, + "network": { + "properties": { + "in": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "out": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/template.json new file mode 100644 index 0000000000000..2088628dc39d2 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/composable/template.json @@ -0,0 +1,52 @@ +{ + "_meta": { + "description": "Sample composable template that includes all ECS fields", + "ecs_version": "8.0.0" + }, + "composed_of": [ + "ecs_8.0.0_base", + "ecs_8.0.0_event", + "ecs_8.0.0_host", + "ecs_8.0.0_metricset", + "ecs_8.0.0_system" + ], + "index_patterns": [ + "kbn-data-forge-fake_hosts.fake_hosts-*" + ], + "priority": 1, + "template": { + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ] + }, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/legacy/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/legacy/template.json new file mode 100644 index 0000000000000..44f07e8f7c941 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/generated/elasticsearch/legacy/template.json @@ -0,0 +1,309 @@ +{ + "index_patterns": [ + "kbn-data-forge-fake_hosts.fake_hosts-*" + ], + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "event": { + "properties": { + "dataset": { + "ignore_above": 1024, + "type": "keyword" + }, + "module": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "host": { + "properties": { + "architecture": { + "ignore_above": 1024, + "type": "keyword" + }, + "cpu": { + "properties": { + "usage": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "disk": { + "properties": { + "read": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "write": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "geo": { + "properties": { + "city_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "continent_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "country_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "location": { + "type": "geo_point" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "postal_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_iso_code": { + "ignore_above": 1024, + "type": "keyword" + }, + "region_name": { + "ignore_above": 1024, + "type": "keyword" + }, + "timezone": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "hostname": { + "ignore_above": 1024, + "type": "keyword" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "ip": { + "type": "ip" + }, + "mac": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "network": { + "properties": { + "egress": { + "properties": { + "bytes": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + }, + "ingress": { + "properties": { + "bytes": { + "type": "long" + }, + "packets": { + "type": "long" + } + } + } + } + }, + "os": { + "properties": { + "family": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "kernel": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "platform": { + "ignore_above": 1024, + "type": "keyword" + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "type": { + "ignore_above": 1024, + "type": "keyword" + }, + "uptime": { + "type": "long" + } + } + }, + "labels": { + "type": "object" + }, + "message": { + "type": "match_only_text" + }, + "metricset": { + "properties": { + "interval": { + "type": "long" + } + } + }, + "system": { + "properties": { + "cpu": { + "properties": { + "cores": { + "type": "integer" + }, + "system": { + "properties": { + "pct": { + "type": "float" + } + } + }, + "total": { + "properties": { + "norm": { + "properties": { + "pct": { + "type": "float" + } + } + } + } + }, + "user": { + "properties": { + "pct": { + "type": "float" + } + } + } + } + }, + "network": { + "properties": { + "in": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "name": { + "ignore_above": 1024, + "type": "keyword" + }, + "out": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "order": 1, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/index.ts new file mode 100644 index 0000000000000..66f41b4673169 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/ecs/index.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import base from './generated/elasticsearch/composable/component/base.json'; +import event from './generated/elasticsearch/composable/component/event.json'; +import host from './generated/elasticsearch/composable/component/host.json'; +import metricset from './generated/elasticsearch/composable/component/metricset.json'; +import system from './generated/elasticsearch/composable/component/system.json'; + +import template from './generated/elasticsearch/composable/template.json'; +import { IndexTemplateDef } from '../../../types'; + +const ECS_VERSION = template._meta.ecs_version; + +const components = [ + { name: `fake_hosts_${ECS_VERSION}_base`, template: base }, + { name: `fake_hosts_${ECS_VERSION}_event`, template: event }, + { name: `fake_hosts_${ECS_VERSION}_host`, template: host }, + { name: `fake_hosts_${ECS_VERSION}_metricset`, template: metricset }, + { name: `fake_hosts_${ECS_VERSION}_system`, template: system }, +]; + +export const indexTemplate: IndexTemplateDef = { + namespace: 'fake_hosts', + template: { ...template, composed_of: components.map(({ name }) => name) }, + components, +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/index.ts new file mode 100644 index 0000000000000..f626ebdd8c425 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/index.ts @@ -0,0 +1,171 @@ +/* + * Copyright 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 { faker } from '@faker-js/faker'; +import { sample, range, memoize } from 'lodash'; +import { GeneratorFunction } from '../../types'; +import { replaceMetricsWithShapes } from '../../lib/replace_metrics_with_shapes'; + +export { indexTemplate } from './ecs'; + +const createGroupIndex = (index: number) => Math.floor(index / 1000) * 1000; + +const randomBetween = (start = 0, end = 1, step = 0.1) => sample(range(start, end, step)); + +let networkDataCount = 0; +const generateNetworkData = memoize((_timestamp: string) => { + networkDataCount += Math.floor(10000 * Math.random()); + return networkDataCount; +}); + +export const generateEvent: GeneratorFunction = (config, schedule, index, timestamp) => { + const groupIndex = createGroupIndex(index); + const interval = schedule.interval ?? config.indexing.interval; + const scenario = config.indexing.scenario || 'fake_hosts'; + const docs = [ + { + namespace: 'fake_hosts', + '@timestamp': timestamp.toISOString(), + tags: [`group-${groupIndex}`, `event-${index}`], + host: { + name: `host-${index}`, + mac: ['00-00-5E-00-53-23', '00-00-5E-00-53-24'], + network: { + name: `network-${index}`, + }, + }, + event: { + module: 'system', + dataset: 'system.cpu', + }, + labels: { + groupId: `group-${groupIndex}`, + eventId: `event-${index}`, + scenario, + }, + system: { + cpu: { + cores: 4, + total: { + norm: { + pct: randomBetween(), + }, + }, + user: { + pct: randomBetween(1, 4), + }, + system: { + pct: randomBetween(1, 4), + }, + }, + load: { + 1: randomBetween(1, 4), + }, + memory: { + actual: { + used: { + pct: randomBetween(1, 4), + }, + }, + }, + filesystem: { + used: { + pct: randomBetween(1, 4), + }, + }, + }, + metricset: { + period: interval, + }, + container: { + id: `container-${index}`, + name: 'container-name', + }, + }, + { + namespace: 'fake_hosts', + '@timestamp': timestamp.toISOString(), + host: { + name: `host-${index}`, + network: { + name: `network-${index}`, + ingress: { + bytes: parseInt(faker.string.numeric(3), 10), + }, + egress: { + bytes: parseInt(faker.string.numeric(3), 10), + }, + }, + }, + event: { + module: 'system', + dataset: 'system.network', + }, + labels: { + groupId: `group-${groupIndex}`, + eventId: `event-${index}`, + scenario, + }, + system: { + network: { + name: 'eth0', + in: { + bytes: generateNetworkData(timestamp.toISOString()), + }, + out: { + bytes: generateNetworkData(timestamp.toISOString()), + }, + }, + }, + metricset: { + period: interval, + }, + container: { + id: `container-${index}`, + name: 'container-name', + }, + }, + { + namespace: 'fake_hosts', + '@timestamp': timestamp.toISOString(), + host: { + name: `host-${index}`, + network: { + name: `network-${index}`, + }, + }, + event: { + module: 'system', + dataset: 'system.network', + }, + labels: { + groupId: `group-${groupIndex}`, + eventId: `event-${index}`, + scenario, + }, + system: { + network: { + name: 'eth1', + in: { + bytes: generateNetworkData(timestamp.toISOString()), + }, + out: { + bytes: generateNetworkData(timestamp.toISOString()), + }, + }, + }, + metricset: { + period: interval, + }, + container: { + id: `container-${index}`, + name: 'container-name', + }, + }, + ]; + return replaceMetricsWithShapes(timestamp, schedule, docs); +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/template.json new file mode 100644 index 0000000000000..c3828036f1f04 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_hosts/template.json @@ -0,0 +1,224 @@ +{ + "order": 1, + "index_patterns": [ + "kbn-data-forge-fake_hosts.fake_hosts-*" + ], + "settings": { + "index": { + "mapping": { + "total_fields": { + "limit": "10000" + } + }, + "number_of_shards": "1", + "number_of_replicas": "0", + "query": { + "default_field": [ + "message", + "labels.*", + "event.*" + ] + } + } + }, + "mappings": { + "dynamic_templates": [ + { + "labels": { + "path_match": "labels.*", + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string" + } + }, + { + "strings_as_keyword": { + "mapping": { + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "date_detection": false, + "properties": { + "@timestamp": { + "type": "date" + }, + "tags": { + "type": "keyword" + }, + "metricset": { + "properties": { + "period": { + "type": "long" + } + } + }, + "host": { + "properties": { + "name": { + "type": "keyword", + "ignore_above": 256 + }, + "network": { + "properties": { + "name": { + "type": "keyword", + "ignore_above": 256 + }, + "ingress": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "egress": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + } + } + }, + "event": { + "properties": { + "dataset": { + "type": "keyword", + "ignore_above": 256 + }, + "module": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "system": { + "properties": { + "cpu": { + "properties": { + "cores": { + "type": "long" + }, + "total": { + "properties": { + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "user": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + }, + "norm": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "system": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + }, + "network": { + "properties": { + "name": { + "type": "keyword", + "ignore_above": 256 + }, + "in": { + "properties": { + "bytes": { + "type": "long" + } + } + }, + "out": { + "properties": { + "bytes": { + "type": "long" + } + } + } + } + }, + "load": { + "properties": { + "1": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + }, + "memory": { + "properties": { + "actual": { + "properties": { + "used": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + } + } + }, + "filesystem": { + "properties": { + "used": { + "properties": { + "pct": { + "scaling_factor": 1000, + "type": "scaled_float" + } + } + } + } + } + } + }, + "container": { + "properties": { + "id": { + "type": "keyword", + "ignore_above": 256 + }, + "name": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } + }, + "aliases": { + "metrics-fake_hosts": {} + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/custom/metricset.yaml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/custom/metricset.yaml new file mode 100644 index 0000000000000..87a8856f0e637 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/custom/metricset.yaml @@ -0,0 +1,11 @@ +- name: metricset + title: Metricset + description: > + Metricset data + type: group + fields: + - name: interval + type: long + level: custom + description: > + The interval of the data diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/mapping-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/mapping-settings.json new file mode 100644 index 0000000000000..213c50bcc0851 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/mapping-settings.json @@ -0,0 +1,20 @@ +{ + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "type": "keyword", + "ignore_above": 1024, + "fields": { + "text": { "type": "text", "norms" : false } + } + }, + "match_mapping_type": "string" + } + } + ] +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/subset.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/subset.yml new file mode 100644 index 0000000000000..1de76aa78a23e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/subset.yml @@ -0,0 +1,21 @@ +--- +name: admin_console +fields: + base: + fields: "*" + event: + fields: + module: {} + dataset: {} + duration: {} + code: {} + log: + fields: + level: {} + logger: {} + host: + fields: + name: {} + metricset: + fields: '*' + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/template-settings-legacy.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/template-settings-legacy.json new file mode 100644 index 0000000000000..6abe5719c9f45 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/template-settings-legacy.json @@ -0,0 +1,17 @@ +{ + "index_patterns": ["kbn-data-forge-fake_logs.fake_logs-*"], + "order": 1, + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} + + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/template-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/template-settings.json new file mode 100644 index 0000000000000..0cc42f219b9ec --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/fields/template-settings.json @@ -0,0 +1,16 @@ +{ + "index_patterns": ["kbn-data-forge-fake_logs.fake_logs-*"], + "priority": 1, + "template": { + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generate.sh b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generate.sh new file mode 100755 index 0000000000000..da992a32c79d6 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generate.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +cd ../../../../../../../../ecs + +BASE=../kibana/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs +ECS=$BASE/ecs + +python3 ./scripts/generator.py --ref v8.0.0 \ + --subset $ECS/fields/subset.yml \ + --include $ECS/fields/custom \ + --out $ECS/ \ + --template-settings-legacy $ECS/fields/template-settings-legacy.json \ + --template-settings $ECS/fields/template-settings.json \ + --mapping-settings $ECS/fields/mapping-settings.json diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/beats/fields.ecs.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/beats/fields.ecs.yml new file mode 100644 index 0000000000000..1bc2ab6b8d157 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/beats/fields.ecs.yml @@ -0,0 +1,181 @@ +# WARNING! Do not edit this file directly, it was generated by the ECS project, +# based on ECS version 8.0.0. +# Please visit https://github.com/elastic/ecs to suggest changes to ECS fields. + +- key: ecs + title: ECS + description: ECS Fields. + fields: + - name: '@timestamp' + level: core + required: true + type: date + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + default_field: true + - name: labels + level: core + type: object + object_type: keyword + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + default_field: true + - name: message + level: core + type: match_only_text + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + default_field: true + - name: tags + level: core + type: keyword + ignore_above: 1024 + description: List of keywords used to tag each event. + example: '["production", "env2"]' + default_field: true + - name: event + title: Event + group: 2 + description: 'The event fields are used for context information about the log + or metric event itself. + + A log is defined as an event containing details of something that happened. + Log events must include the time at which the thing happened. Examples of log + events include a process starting on a host, a network packet being sent from + a source to a destination, or a network connection between a client and a server + being initiated or closed. A metric is defined as an event containing one or + more numerical measurements and the time at which the measurement was taken. + Examples of metric events include memory pressure measured on a host and device + temperature. See the `event.kind` definition in this section for additional + details about metric and state events.' + type: group + default_field: true + fields: + - name: code + level: extended + type: keyword + ignore_above: 1024 + description: 'Identification code for this event, if one exists. + + Some event sources use event codes to identify messages unambiguously, regardless + of message language or wording adjustments over time. An example of this is + the Windows Event ID.' + example: 4648 + - name: dataset + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes + from. + + It''s recommended but not required to start the dataset name with the module + name, followed by a dot, then the dataset name.' + example: apache.access + - name: duration + level: core + type: long + format: duration + input_format: nanoseconds + output_format: asMilliseconds + output_precision: 1 + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference + between the end and start time.' + - name: module + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain + the name of this module.' + example: apache + - name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include + hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + default_field: true + fields: + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + - name: log + title: Log + group: 2 + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + type: group + default_field: true + fields: + - name: level + level: core + type: keyword + ignore_above: 1024 + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + - name: logger + level: core + type: keyword + ignore_above: 1024 + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + - name: metricset + title: Metricset + group: 2 + description: Metricset data + type: group + default_field: true + fields: + - name: interval + level: custom + type: long + description: The interval of the data + default_field: false diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/csv/fields.csv b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/csv/fields.csv new file mode 100644 index 0000000000000..184ab8a07cb79 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/csv/fields.csv @@ -0,0 +1,13 @@ +ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description +8.0.0,true,base,@timestamp,date,core,,2016-05-23T08:05:34.853Z,Date/time when the event originated. +8.0.0,true,base,labels,object,core,,"{""application"": ""foo-bar"", ""env"": ""production""}",Custom key/value pairs. +8.0.0,true,base,message,match_only_text,core,,Hello World,Log message optimized for viewing in a log viewer. +8.0.0,true,base,tags,keyword,core,array,"[""production"", ""env2""]",List of keywords used to tag each event. +8.0.0,true,event,event.code,keyword,extended,,4648,Identification code for this event. +8.0.0,true,event,event.dataset,keyword,core,,apache.access,Name of the dataset. +8.0.0,true,event,event.duration,long,core,,,Duration of the event in nanoseconds. +8.0.0,true,event,event.module,keyword,core,,apache,Name of the module this data is coming from. +8.0.0,true,host,host.name,keyword,core,,,Name of the host. +8.0.0,true,log,log.level,keyword,core,,error,Log level of the log event. +8.0.0,true,log,log.logger,keyword,core,,org.elasticsearch.bootstrap.Bootstrap,Name of the logger. +8.0.0,true,metricset,metricset.interval,long,custom,,,The interval of the data diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/ecs_flat.yml new file mode 100644 index 0000000000000..577999e6ac433 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/ecs_flat.yml @@ -0,0 +1,177 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +event.code: + dashed_name: event-code + description: 'Identification code for this event, if one exists. + + Some event sources use event codes to identify messages unambiguously, regardless + of message language or wording adjustments over time. An example of this is the + Windows Event ID.' + example: 4648 + flat_name: event.code + ignore_above: 1024 + level: extended + name: code + normalize: [] + short: Identification code for this event. + type: keyword +event.dataset: + dashed_name: event-dataset + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes from. + + It''s recommended but not required to start the dataset name with the module name, + followed by a dot, then the dataset name.' + example: apache.access + flat_name: event.dataset + ignore_above: 1024 + level: core + name: dataset + normalize: [] + short: Name of the dataset. + type: keyword +event.duration: + dashed_name: event-duration + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference between + the end and start time.' + flat_name: event.duration + format: duration + input_format: nanoseconds + level: core + name: duration + normalize: [] + output_format: asMilliseconds + output_precision: 1 + short: Duration of the event in nanoseconds. + type: long +event.module: + dashed_name: event-module + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain the + name of this module.' + example: apache + flat_name: event.module + ignore_above: 1024 + level: core + name: module + normalize: [] + short: Name of the module this data is coming from. + type: keyword +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +metricset.interval: + dashed_name: metricset-interval + description: The interval of the data + flat_name: metricset.interval + level: custom + name: interval + normalize: [] + short: The interval of the data + type: long +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/ecs_nested.yml new file mode 100644 index 0000000000000..b70e24282fa0f --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/ecs_nested.yml @@ -0,0 +1,258 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +event: + description: 'The event fields are used for context information about the log or + metric event itself. + + A log is defined as an event containing details of something that happened. Log + events must include the time at which the thing happened. Examples of log events + include a process starting on a host, a network packet being sent from a source + to a destination, or a network connection between a client and a server being + initiated or closed. A metric is defined as an event containing one or more numerical + measurements and the time at which the measurement was taken. Examples of metric + events include memory pressure measured on a host and device temperature. See + the `event.kind` definition in this section for additional details about metric + and state events.' + fields: + event.code: + dashed_name: event-code + description: 'Identification code for this event, if one exists. + + Some event sources use event codes to identify messages unambiguously, regardless + of message language or wording adjustments over time. An example of this is + the Windows Event ID.' + example: 4648 + flat_name: event.code + ignore_above: 1024 + level: extended + name: code + normalize: [] + short: Identification code for this event. + type: keyword + event.dataset: + dashed_name: event-dataset + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes + from. + + It''s recommended but not required to start the dataset name with the module + name, followed by a dot, then the dataset name.' + example: apache.access + flat_name: event.dataset + ignore_above: 1024 + level: core + name: dataset + normalize: [] + short: Name of the dataset. + type: keyword + event.duration: + dashed_name: event-duration + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference + between the end and start time.' + flat_name: event.duration + format: duration + input_format: nanoseconds + level: core + name: duration + normalize: [] + output_format: asMilliseconds + output_precision: 1 + short: Duration of the event in nanoseconds. + type: long + event.module: + dashed_name: event-module + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain + the name of this module.' + example: apache + flat_name: event.module + ignore_above: 1024 + level: core + name: module + normalize: [] + short: Name of the module this data is coming from. + type: keyword + group: 2 + name: event + prefix: event. + short: Fields breaking down the event details. + title: Event + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group +metricset: + description: Metricset data + fields: + metricset.interval: + dashed_name: metricset-interval + description: The interval of the data + flat_name: metricset.interval + level: custom + name: interval + normalize: [] + short: The interval of the data + type: long + group: 2 + name: metricset + prefix: metricset. + short: Metricset data + title: Metricset + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/subset/admin_console/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/subset/admin_console/ecs_flat.yml new file mode 100644 index 0000000000000..577999e6ac433 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/subset/admin_console/ecs_flat.yml @@ -0,0 +1,177 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +event.code: + dashed_name: event-code + description: 'Identification code for this event, if one exists. + + Some event sources use event codes to identify messages unambiguously, regardless + of message language or wording adjustments over time. An example of this is the + Windows Event ID.' + example: 4648 + flat_name: event.code + ignore_above: 1024 + level: extended + name: code + normalize: [] + short: Identification code for this event. + type: keyword +event.dataset: + dashed_name: event-dataset + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes from. + + It''s recommended but not required to start the dataset name with the module name, + followed by a dot, then the dataset name.' + example: apache.access + flat_name: event.dataset + ignore_above: 1024 + level: core + name: dataset + normalize: [] + short: Name of the dataset. + type: keyword +event.duration: + dashed_name: event-duration + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference between + the end and start time.' + flat_name: event.duration + format: duration + input_format: nanoseconds + level: core + name: duration + normalize: [] + output_format: asMilliseconds + output_precision: 1 + short: Duration of the event in nanoseconds. + type: long +event.module: + dashed_name: event-module + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain the + name of this module.' + example: apache + flat_name: event.module + ignore_above: 1024 + level: core + name: module + normalize: [] + short: Name of the module this data is coming from. + type: keyword +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +metricset.interval: + dashed_name: metricset-interval + description: The interval of the data + flat_name: metricset.interval + level: custom + name: interval + normalize: [] + short: The interval of the data + type: long +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/subset/admin_console/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/subset/admin_console/ecs_nested.yml new file mode 100644 index 0000000000000..b70e24282fa0f --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/ecs/subset/admin_console/ecs_nested.yml @@ -0,0 +1,258 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +event: + description: 'The event fields are used for context information about the log or + metric event itself. + + A log is defined as an event containing details of something that happened. Log + events must include the time at which the thing happened. Examples of log events + include a process starting on a host, a network packet being sent from a source + to a destination, or a network connection between a client and a server being + initiated or closed. A metric is defined as an event containing one or more numerical + measurements and the time at which the measurement was taken. Examples of metric + events include memory pressure measured on a host and device temperature. See + the `event.kind` definition in this section for additional details about metric + and state events.' + fields: + event.code: + dashed_name: event-code + description: 'Identification code for this event, if one exists. + + Some event sources use event codes to identify messages unambiguously, regardless + of message language or wording adjustments over time. An example of this is + the Windows Event ID.' + example: 4648 + flat_name: event.code + ignore_above: 1024 + level: extended + name: code + normalize: [] + short: Identification code for this event. + type: keyword + event.dataset: + dashed_name: event-dataset + description: 'Name of the dataset. + + If an event source publishes more than one type of log or events (e.g. access + log, error log), the dataset is used to specify which one the event comes + from. + + It''s recommended but not required to start the dataset name with the module + name, followed by a dot, then the dataset name.' + example: apache.access + flat_name: event.dataset + ignore_above: 1024 + level: core + name: dataset + normalize: [] + short: Name of the dataset. + type: keyword + event.duration: + dashed_name: event-duration + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference + between the end and start time.' + flat_name: event.duration + format: duration + input_format: nanoseconds + level: core + name: duration + normalize: [] + output_format: asMilliseconds + output_precision: 1 + short: Duration of the event in nanoseconds. + type: long + event.module: + dashed_name: event-module + description: 'Name of the module this data is coming from. + + If your monitoring agent supports the concept of modules or plugins to process + events of a given source (e.g. Apache logs), `event.module` should contain + the name of this module.' + example: apache + flat_name: event.module + ignore_above: 1024 + level: core + name: module + normalize: [] + short: Name of the module this data is coming from. + type: keyword + group: 2 + name: event + prefix: event. + short: Fields breaking down the event details. + title: Event + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group +metricset: + description: Metricset data + fields: + metricset.interval: + dashed_name: metricset-interval + description: The interval of the data + flat_name: metricset.interval + level: custom + name: interval + normalize: [] + short: The interval of the data + type: long + group: 2 + name: metricset + prefix: metricset. + short: Metricset data + title: Metricset + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/base.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/base.json new file mode 100644 index 0000000000000..cebc9c2971745 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/base.json @@ -0,0 +1,25 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-base.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "@timestamp": { + "type": "date" + }, + "labels": { + "type": "object" + }, + "message": { + "type": "match_only_text" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/event.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/event.json new file mode 100644 index 0000000000000..7b62b9ac8bab1 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/event.json @@ -0,0 +1,31 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-event.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "event": { + "properties": { + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "dataset": { + "ignore_above": 1024, + "type": "keyword" + }, + "duration": { + "type": "long" + }, + "module": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/host.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/host.json new file mode 100644 index 0000000000000..3f9c7ae730291 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/host.json @@ -0,0 +1,20 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-host.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/log.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/log.json new file mode 100644 index 0000000000000..e43ca609d387e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/log.json @@ -0,0 +1,24 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-log.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/metricset.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/metricset.json new file mode 100644 index 0000000000000..06ef8b57bf4b3 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/component/metricset.json @@ -0,0 +1,18 @@ +{ + "_meta": { + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "metricset": { + "properties": { + "interval": { + "type": "long" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/template.json new file mode 100644 index 0000000000000..80f2ba5ff214e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/composable/template.json @@ -0,0 +1,52 @@ +{ + "_meta": { + "description": "Sample composable template that includes all ECS fields", + "ecs_version": "8.0.0" + }, + "composed_of": [ + "ecs_8.0.0_base", + "ecs_8.0.0_event", + "ecs_8.0.0_log", + "ecs_8.0.0_host", + "ecs_8.0.0_metricset" + ], + "index_patterns": [ + "kbn-data-forge-fake_logs.fake_logs-*" + ], + "priority": 1, + "template": { + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ] + }, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/legacy/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/legacy/template.json new file mode 100644 index 0000000000000..d0ee22b1b07d5 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/generated/elasticsearch/legacy/template.json @@ -0,0 +1,101 @@ +{ + "index_patterns": [ + "kbn-data-forge-fake_logs.fake_logs-*" + ], + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "event": { + "properties": { + "code": { + "ignore_above": 1024, + "type": "keyword" + }, + "dataset": { + "ignore_above": 1024, + "type": "keyword" + }, + "duration": { + "type": "long" + }, + "module": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "message": { + "type": "match_only_text" + }, + "metricset": { + "properties": { + "interval": { + "type": "long" + } + } + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "order": 1, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/index.ts new file mode 100644 index 0000000000000..d5a03e01acfdd --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/ecs/index.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import base from './generated/elasticsearch/composable/component/base.json'; +import event from './generated/elasticsearch/composable/component/event.json'; +import host from './generated/elasticsearch/composable/component/host.json'; +import log from './generated/elasticsearch/composable/component/log.json'; +import metricset from './generated/elasticsearch/composable/component/metricset.json'; + +import template from './generated/elasticsearch/composable/template.json'; +import { IndexTemplateDef } from '../../../types'; + +const ECS_VERSION = template._meta.ecs_version; + +const components = [ + { name: `fake_logs_${ECS_VERSION}_base`, template: base }, + { name: `fake_logs_${ECS_VERSION}_event`, template: event }, + { name: `fake_logs_${ECS_VERSION}_log`, template: log }, + { name: `fake_logs_${ECS_VERSION}_host`, template: host }, + { name: `fake_logs_${ECS_VERSION}_metricset`, template: metricset }, +]; + +export const indexTemplate: IndexTemplateDef = { + namespace: 'fake_logs', + template: { ...template, composed_of: components.map(({ name }) => name) }, + components, +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/index.ts new file mode 100644 index 0000000000000..37cf52fc7aba8 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/index.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 { random, sample } from 'lodash'; +import { GeneratorFunction } from '../../types'; +export { indexTemplate } from './ecs'; + +const createGroupIndex = (index: number) => Math.floor(index / 1000) * 1000; +export const generateEvent: GeneratorFunction = (config, schedule, index, timestamp) => { + const groupIndex = createGroupIndex(index); + const latency = random(150, 500); + const statusCode = sample([200, 500]); + const interval = schedule.interval ?? config.indexing.interval; + const scenario = config.indexing.scenario || 'fake_logs'; + return [ + { + namespace: 'fake_logs', + '@timestamp': timestamp.toISOString(), + event: { + module: 'high_cardinality', + dataset: 'high_cardinality.event', + duration: latency, + code: statusCode, + }, + log: { + level: 'info', + logger: 'fake_logs', + }, + host: { + name: `host-${random(1, 10)}`, + }, + labels: { + groupId: `group-${groupIndex}`, + eventId: `event-${index}`, + scenario, + }, + metricset: { + period: interval, + }, + message: `[${timestamp.toISOString()}] Event ${index} was executed for group ${groupIndex}`, + }, + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/template.json new file mode 100644 index 0000000000000..bdd2782cd5c97 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_logs/template.json @@ -0,0 +1,92 @@ +{ + "order": 1, + "index_patterns": [ + "kbn-data-forge-fake_logs.fake_logs-*" + ], + "settings": { + "index": { + "mapping": { + "total_fields": { + "limit": "10000" + } + }, + "number_of_shards": "1", + "number_of_replicas": "0", + "query": { + "default_field": [ + "message", + "labels.*", + "event.*" + ] + } + } + }, + "mappings": { + "dynamic_templates": [ + { + "labels": { + "path_match": "labels.*", + "mapping": { + "type": "keyword" + }, + "match_mapping_type": "string" + } + }, + { + "strings_as_keyword": { + "mapping": { + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "date_detection": false, + "properties": { + "@timestamp": { + "type": "date" + }, + "metricset": { + "properties": { + "period": { + "type": "long" + } + } + }, + "host": { + "properties": { + "name": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "event": { + "properties": { + "dataset": { + "type": "keyword", + "ignore_above": 256 + }, + "module": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "message": { + "type": "keyword", + "ignore_above": 256 + }, + "latency": { + "type": "long" + }, + "status_code": { + "type": "long" + } + } + }, + "aliases": { + "logs-fake_logs": {} + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/assets/admin_console.ndjson b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/assets/admin_console.ndjson new file mode 100644 index 0000000000000..e4bb6b77bcd54 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/assets/admin_console.ndjson @@ -0,0 +1,9 @@ +{"attributes":{"fieldAttrs":"{\"http.response.status_code\":{\"customLabel\":\"Status Code\",\"count\":1},\"log.level\":{\"customLabel\":\"Level\",\"count\":1},\"url.path\":{\"customLabel\":\"Path\",\"count\":1},\"message\":{\"customLabel\":\"Message\",\"count\":1},\"user.id\":{\"count\":2},\"user.name\":{\"count\":2}}","fieldFormatMap":"{\"log.level\":{\"id\":\"color\",\"params\":{\"parsedUrl\":{\"origin\":\"http://localhost:5601\",\"pathname\":\"/vfh/app/home\",\"basePath\":\"/vfh\"},\"fieldType\":\"string\",\"colors\":[{\"range\":\"-Infinity:Infinity\",\"regex\":\"ERROR\",\"text\":\"#c1371c\",\"background\":\"#ffffff\"}]}}}","fields":"[]","name":"Admin Console","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"kbn-data-forge-fake_stack.admin-console-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-06-02T21:29:06.535Z","id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-06-02T21:29:06.535Z","version":"WzE3LDFd"} +{"attributes":{"fieldAttrs":"{\"kibana.alert.reason\":{\"count\":2},\"kibana.alert.rule.category\":{\"count\":1},\"kibana.alert.status\":{\"count\":2},\"kibana.alert.rule.name\":{\"count\":1}}","fieldFormatMap":"{}","fields":"[]","name":"Alerts as Data for SLO","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":".alerts-observability.slo.alerts-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-06-02T21:29:06.519Z","id":"54a5a414-f8ce-4f5c-ac15-a3554693b51f","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-06-02T21:29:06.519Z","version":"WzgsMV0="} +{"attributes":{"columns":["kibana.alert.rule.name","kibana.alert.status","kibana.alert.reason"],"description":"","grid":{"columns":{"kibana.alert.rule.name":{"width":220},"kibana.alert.status":{"width":59}}},"hideChart":false,"isTextBasedQuery":false,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[["@timestamp","desc"]],"timeRestore":false,"title":"Alerts As Data","usesAdHocDataView":false},"coreMigrationVersion":"8.8.0","created_at":"2023-06-02T21:29:06.519Z","id":"da1bd030-0163-11ee-b87b-0b224545e697","managed":false,"references":[{"id":"54a5a414-f8ce-4f5c-ac15-a3554693b51f","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"search","typeMigrationVersion":"8.0.0","updated_at":"2023-06-02T21:29:06.519Z","version":"WzksMV0="} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"optionsJSON":"{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}","panelsJSON":"[{\"version\":\"8.9.0\",\"type\":\"lens\",\"gridData\":{\"x\":0,\"y\":12,\"w\":48,\"h\":11,\"i\":\"be43a6f5-4438-4699-b497-7ac362d8f989\"},\"panelIndex\":\"be43a6f5-4438-4699-b497-7ac362d8f989\",\"embeddableConfig\":{\"attributes\":{\"title\":\"\",\"description\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"id\":\"e7744dbe-a7a4-457b-83aa-539e9c88764c\",\"name\":\"indexpattern-datasource-layer-574e719b-bb48-42e3-9dca-b05331790843\",\"type\":\"index-pattern\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"bottom\"},\"valueLabels\":\"hide\",\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"574e719b-bb48-42e3-9dca-b05331790843\",\"accessors\":[\"5b021746-2d36-48a6-8a3c-21f88362e0f7\",\"c775f615-cfa4-431c-9855-23babf1653b9\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"xAccessor\":\"d9b27856-dd00-47b5-84f0-20244e1ea0cf\",\"yConfig\":[{\"forAccessor\":\"5b021746-2d36-48a6-8a3c-21f88362e0f7\",\"color\":\"#54b399\"},{\"forAccessor\":\"c775f615-cfa4-431c-9855-23babf1653b9\",\"color\":\"#e7664c\"}]}],\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":false,\"yRight\":true}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"574e719b-bb48-42e3-9dca-b05331790843\":{\"columns\":{\"d9b27856-dd00-47b5-84f0-20244e1ea0cf\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"5b021746-2d36-48a6-8a3c-21f88362e0f7X0\":{\"label\":\"Part of count(kql='http.response.status_code < 500')\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"http.response.status_code < 500\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"5b021746-2d36-48a6-8a3c-21f88362e0f7\":{\"label\":\"Good Events\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='http.response.status_code < 500')\",\"isFormulaBroken\":false},\"references\":[\"5b021746-2d36-48a6-8a3c-21f88362e0f7X0\"],\"customLabel\":true},\"c775f615-cfa4-431c-9855-23babf1653b9X0\":{\"label\":\"Part of count(kql='http.response.status_code >= 500')\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"http.response.status_code >= 500\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"c775f615-cfa4-431c-9855-23babf1653b9\":{\"label\":\"Bad\",\"dataType\":\"number\",\"operationType\":\"formula\",\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"formula\":\"count(kql='http.response.status_code >= 500')\",\"isFormulaBroken\":false},\"references\":[\"c775f615-cfa4-431c-9855-23babf1653b9X0\"],\"customLabel\":true}},\"columnOrder\":[\"d9b27856-dd00-47b5-84f0-20244e1ea0cf\",\"5b021746-2d36-48a6-8a3c-21f88362e0f7\",\"5b021746-2d36-48a6-8a3c-21f88362e0f7X0\",\"c775f615-cfa4-431c-9855-23babf1653b9\",\"c775f615-cfa4-431c-9855-23babf1653b9X0\"],\"sampling\":1,\"incompleteColumns\":{}}}},\"textBased\":{\"layers\":{}}},\"internalReferences\":[],\"adHocDataViews\":{}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Good vs Bad Events over Time\"},{\"version\":\"8.9.0\",\"type\":\"search\",\"gridData\":{\"x\":0,\"y\":23,\"w\":48,\"h\":22,\"i\":\"a133e6ca-b6d3-405a-bd15-88f7cd9a66fa\"},\"panelIndex\":\"a133e6ca-b6d3-405a-bd15-88f7cd9a66fa\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_a133e6ca-b6d3-405a-bd15-88f7cd9a66fa\"},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":37,\"y\":0,\"w\":11,\"h\":6,\"i\":\"37a95bea-b571-42bd-a02b-68031bf91d38\"},\"panelIndex\":\"37a95bea-b571-42bd-a02b-68031bf91d38\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":1,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gt\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":1,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lte\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_37a95bea-b571-42bd-a02b-68031bf91d38_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-360m\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":37,\"y\":6,\"w\":11,\"h\":6,\"i\":\"ca563a0f-a89f-45bd-adc2-84b67e01aa88\"},\"panelIndex\":\"ca563a0f-a89f-45bd-adc2-84b67e01aa88\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":1,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gt\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":1,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lte\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_ca563a0f-a89f-45bd-adc2-84b67e01aa88_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-3d\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":25,\"y\":0,\"w\":12,\"h\":6,\"i\":\"2d4f4207-220c-465e-8965-95a78b1a1dae\"},\"panelIndex\":\"2d4f4207-220c-465e-8965-95a78b1a1dae\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":3,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gte\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":3,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lt\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_2d4f4207-220c-465e-8965-95a78b1a1dae_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-120m\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":25,\"y\":6,\"w\":12,\"h\":6,\"i\":\"f7d17f5d-fc86-498c-9c1b-0b679ba75aa8\"},\"panelIndex\":\"f7d17f5d-fc86-498c-9c1b-0b679ba75aa8\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":3,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gte\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":3,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lt\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_f7d17f5d-fc86-498c-9c1b-0b679ba75aa8_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-1d\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":13,\"y\":0,\"w\":12,\"h\":6,\"i\":\"2f0bec4a-e528-44d5-b988-b470b7d4ad07\"},\"panelIndex\":\"2f0bec4a-e528-44d5-b988-b470b7d4ad07\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":6,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gte\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":6,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lt\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_2f0bec4a-e528-44d5-b988-b470b7d4ad07_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-30m\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":13,\"y\":6,\"w\":12,\"h\":6,\"i\":\"4cce8769-1da8-4638-bea3-c6be98d8600b\"},\"panelIndex\":\"4cce8769-1da8-4638-bea3-c6be98d8600b\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":6,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gte\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":6,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lt\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_4cce8769-1da8-4638-bea3-c6be98d8600b_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-6h\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":13,\"h\":6,\"i\":\"b7996a74-f86b-4006-847c-1fb482ccda64\"},\"panelIndex\":\"b7996a74-f86b-4006-847c-1fb482ccda64\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":14.4,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gte\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":14.4,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lt\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_b7996a74-f86b-4006-847c-1fb482ccda64_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-5m\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":6,\"w\":13,\"h\":6,\"i\":\"e15a9cb8-54d0-4be9-93e6-92f054b14160\"},\"panelIndex\":\"e15a9cb8-54d0-4be9-93e6-92f054b14160\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":14.4,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gte\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":14.4,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lt\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_e15a9cb8-54d0-4be9-93e6-92f054b14160_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-1h\",\"to\":\"now\"},\"enhancements\":{}}}]","timeRestore":false,"title":"Admin Console: Burn Rates","version":1},"coreMigrationVersion":"8.8.0","created_at":"2023-06-02T22:06:42.619Z","id":"52de57b0-0162-11ee-b87b-0b224545e697","managed":false,"references":[{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"be43a6f5-4438-4699-b497-7ac362d8f989:indexpattern-datasource-layer-574e719b-bb48-42e3-9dca-b05331790843","type":"index-pattern"},{"id":"da1bd030-0163-11ee-b87b-0b224545e697","name":"a133e6ca-b6d3-405a-bd15-88f7cd9a66fa:panel_a133e6ca-b6d3-405a-bd15-88f7cd9a66fa","type":"search"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"37a95bea-b571-42bd-a02b-68031bf91d38:metrics_37a95bea-b571-42bd-a02b-68031bf91d38_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"ca563a0f-a89f-45bd-adc2-84b67e01aa88:metrics_ca563a0f-a89f-45bd-adc2-84b67e01aa88_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"2d4f4207-220c-465e-8965-95a78b1a1dae:metrics_2d4f4207-220c-465e-8965-95a78b1a1dae_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"f7d17f5d-fc86-498c-9c1b-0b679ba75aa8:metrics_f7d17f5d-fc86-498c-9c1b-0b679ba75aa8_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"2f0bec4a-e528-44d5-b988-b470b7d4ad07:metrics_2f0bec4a-e528-44d5-b988-b470b7d4ad07_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"4cce8769-1da8-4638-bea3-c6be98d8600b:metrics_4cce8769-1da8-4638-bea3-c6be98d8600b_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"b7996a74-f86b-4006-847c-1fb482ccda64:metrics_b7996a74-f86b-4006-847c-1fb482ccda64_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"e15a9cb8-54d0-4be9-93e6-92f054b14160:metrics_e15a9cb8-54d0-4be9-93e6-92f054b14160_0_index_pattern","type":"index-pattern"}],"type":"dashboard","typeMigrationVersion":"8.7.0","updated_at":"2023-06-02T22:06:42.619Z","version":"WzQ1LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"title":"Good vs Bad","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Good vs Bad\",\"type\":\"metrics\",\"aggs\":[],\"params\":{\"time_range_mode\":\"entire_time_range\",\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"drop_last_bucket\":0,\"id\":\"b4683a55-1bfb-44d9-9cfa-e71994cef82d\",\"interval\":\">=1m\",\"isModelInvalid\":false,\"max_lines_legend\":1,\"series\":[{\"time_range_mode\":\"entire_time_range\",\"axis_position\":\"right\",\"chart_type\":\"bar\",\"color\":\"#68BC00\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"bb3fce02-bab6-45ae-b278-bd4e566f5817\",\"label\":\"Total Docs\",\"line_width\":1,\"metrics\":[{\"id\":\"1b8a2247-92f3-4408-a7e6-49deef54dec5\",\"type\":\"count\"}],\"override_index_pattern\":0,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"point_size\":1,\"separate_axis\":0,\"series_drop_last_bucket\":0,\"split_mode\":\"filters\",\"stacked\":\"percent\",\"split_filters\":[{\"filter\":{\"query\":\"http.response.status_code < 500\",\"language\":\"kuery\"},\"label\":\"Good\",\"color\":\"#68BC00\",\"id\":\"a7ecec50-d8ac-11ed-9125-3dbd53b6d6b6\"},{\"filter\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"label\":\"Bad\",\"color\":\"rgba(231,102,76,1)\",\"id\":\"ae1946a0-d8ac-11ed-9125-3dbd53b6d6b6\"}]}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"\",\"tooltip_mode\":\"show_all\",\"truncate_legend\":1,\"type\":\"timeseries\",\"use_kibana_indexes\":true,\"index_pattern_ref_name\":\"metrics_0_index_pattern\"}}"},"coreMigrationVersion":"8.8.0","created_at":"2023-06-02T21:29:06.519Z","id":"18b3ece0-d8ad-11ed-ab9f-e9e3125870b6","managed":false,"references":[{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"metrics_0_index_pattern","type":"index-pattern"}],"type":"visualization","typeMigrationVersion":"8.5.0","updated_at":"2023-06-02T21:29:06.519Z","version":"WzExLDFd"} +{"attributes":{"columns":["log.level","url.path","http.response.status_code","message"],"description":"","grid":{"columns":{"http.response.status_code":{"width":105},"log.level":{"width":73},"url.path":{"width":158}}},"hideChart":false,"isTextBasedQuery":false,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[["@timestamp","desc"]],"timeRestore":false,"title":"Admin Console - Bad Events","usesAdHocDataView":false},"coreMigrationVersion":"8.8.0","created_at":"2023-06-02T21:29:06.519Z","id":"b5653a60-d8af-11ed-ab9f-e9e3125870b6","managed":false,"references":[{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"search","typeMigrationVersion":"8.0.0","updated_at":"2023-06-02T21:29:06.519Z","version":"WzEyLDFd"} +{"attributes":{"color":"#9cb3ef","description":"","name":"admin-console"},"coreMigrationVersion":"8.8.0","created_at":"2023-06-02T21:29:06.519Z","id":"2caefa00-d8ad-11ed-ab9f-e9e3125870b6","managed":false,"references":[],"type":"tag","typeMigrationVersion":"8.0.0","updated_at":"2023-06-02T21:29:06.519Z","version":"WzMwLDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"optionsJSON":"{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":true,\"hidePanelTitles\":false}","panelsJSON":"[{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":9,\"h\":10,\"i\":\"a97a85b0-b83a-4d28-a3ca-d82e1d1add0f\"},\"panelIndex\":\"a97a85b0-b83a-4d28-a3ca-d82e1d1add0f\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"85f614fc-7263-4080-bbf5-85ca83a0fb1d\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"cde9ac28-cda5-4335-92aa-c13d59712cb4\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"971753f5-76d8-4203-97cb-39cca2a83427\",\"type\":\"count\"},{\"id\":\"4149f0a0-d8ad-11ed-9125-3dbd53b6d6b6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"44332de0-d8ad-11ed-9125-3dbd53b6d6b6\",\"name\":\"count\",\"field\":\"971753f5-76d8-4203-97cb-39cca2a83427\"}],\"script\":\"(params.count / (params._interval / 1000) * 60)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"0,0[.0]\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Events Per Minute (5m)\",\"value_template\":\"{{value}}\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"7fb96600-d8cf-11ed-a45b-63b4c7e0f089\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"7fb96601-d8cf-11ed-a45b-63b4c7e0f089\",\"type\":\"count\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Total Events:\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"background_color_rules\":[{\"id\":\"3e8e7a20-d8ad-11ed-9125-3dbd53b6d6b6\"}],\"isModelInvalid\":false,\"index_pattern_ref_name\":\"metrics_a97a85b0-b83a-4d28-a3ca-d82e1d1add0f_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{},\"timeRange\":{\"from\":\"now-5m\",\"to\":\"now\"}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":9,\"y\":0,\"w\":9,\"h\":5,\"i\":\"c67c9c1f-719a-44b8-bfeb-fafc5243ae1c\"},\"panelIndex\":\"c67c9c1f-719a-44b8-bfeb-fafc5243ae1c\",\"embeddableConfig\":{\"savedVis\":{\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate (5m)\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9f8b0f0-d93f-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9f8b0f1-d93f-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":1,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gt\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":1,\"id\":\"9e5ed4a0-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(109,179,84,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lte\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_c67c9c1f-719a-44b8-bfeb-fafc5243ae1c_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-5m\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":18,\"y\":0,\"w\":30,\"h\":10,\"i\":\"f839754d-d5aa-40be-93bb-abda520aaa29\"},\"panelIndex\":\"f839754d-d5aa-40be-93bb-abda520aaa29\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_f839754d-d5aa-40be-93bb-abda520aaa29\"},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":9,\"y\":5,\"w\":9,\"h\":5,\"i\":\"359d89d1-aac0-4320-98fc-983b10831ec1\"},\"panelIndex\":\"359d89d1-aac0-4320-98fc-983b10831ec1\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"Burn Rate\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"ff7b9f58-19cd-4700-8bb6-0655089ed462\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"4863ef5f-2d5c-41a7-9507-7d42bebbd037\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"4b04e408-7543-4771-8c36-e6c1feb89477\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}},{\"id\":\"8a8f4130-d93d-11ed-bdca-eb80b799acd6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"aa4144b0-d93d-11ed-bdca-eb80b799acd6\",\"name\":\"bad\",\"field\":\"4b04e408-7543-4771-8c36-e6c1feb89477\"}],\"script\":\"params.bad / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Burn Rate (1h)\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"14da2b50-d940-11ed-bdca-eb80b799acd6\",\"color\":\"#68BC00\",\"split_mode\":\"filter\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"14da2b51-d940-11ed-bdca-eb80b799acd6\",\"type\":\"filter_ratio\",\"numerator\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"denominator\":{\"query\":\"http.response.status_code : * \",\"language\":\"kuery\"}}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio:\",\"value_template\":\"{{value}}\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"background_color_rules\":[{\"value\":1,\"id\":\"3327b9a0-d93c-11ed-bdca-eb80b799acd6\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gt\",\"background_color\":\"rgba(231,102,76,1)\"},{\"value\":1,\"id\":\"bf283b90-da05-11ed-8012-4b83da923c92\",\"background_color\":\"rgba(109,179,84,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lte\"}],\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_359d89d1-aac0-4320-98fc-983b10831ec1_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-1h\",\"to\":\"now\"},\"enhancements\":{}}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":10,\"w\":48,\"h\":7,\"i\":\"91c24a19-7f44-449f-a1bc-298556562140\"},\"panelIndex\":\"91c24a19-7f44-449f-a1bc-298556562140\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"73fba04a-4060-41d9-a9f0-ca7caeafe812\",\"type\":\"timeseries\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"1f35b985-f6c6-4d8a-bc2b-d706b97d3d64\",\"color\":\"#68BC00\",\"split_mode\":\"filters\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"2dfbd2e2-11b0-4393-9b33-5270fd64906d\",\"type\":\"count\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":\"1\",\"stacked\":\"stacked\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"split_filters\":[{\"filter\":{\"query\":\"http.response.status_code < 500\",\"language\":\"kuery\"},\"label\":\"Good\",\"color\":\"#68BC00\",\"id\":\"868ca080-d944-11ed-9afd-11cb5b035fae\"},{\"filter\":{\"query\":\"not (http.response.status_code < 500)\",\"language\":\"kuery\"},\"label\":\"Bad\",\"color\":\"rgba(231,102,76,1)\",\"id\":\"91e8a5a0-d944-11ed-9afd-11cb5b035fae\"}],\"label\":\"\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":0,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"legend_position\":\"bottom\",\"annotations\":[{\"id\":\"bc850aa0-eab1-11ed-b121-11fb7ba70a20\",\"color\":\"#F00\",\"time_field\":\"kibana.alert.start\",\"icon\":\"fa-exclamation-triangle\",\"ignore_global_filters\":1,\"ignore_panel_filters\":1,\"fields\":\"kibana.alert.reason\",\"template\":\"{{kibana.alert.reason}}\",\"index_pattern_ref_name\":\"metrics_91c24a19-7f44-449f-a1bc-298556562140_1_index_pattern\"}],\"index_pattern_ref_name\":\"metrics_91c24a19-7f44-449f-a1bc-298556562140_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{},\"timeRange\":{\"from\":\"now-24h/h\",\"to\":\"now\"}}},{\"version\":\"8.9.0\",\"type\":\"search\",\"gridData\":{\"x\":0,\"y\":17,\"w\":48,\"h\":28,\"i\":\"c0701f1b-377b-4950-a3f9-cacfd232300a\"},\"panelIndex\":\"c0701f1b-377b-4950-a3f9-cacfd232300a\",\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"timeRange\":{\"from\":\"now-24h/h\",\"to\":\"now\"}},\"panelRefName\":\"panel_c0701f1b-377b-4950-a3f9-cacfd232300a\"}]","refreshInterval":{"pause":false,"value":60000},"timeFrom":"now-7d","timeRestore":true,"timeTo":"now","title":"Admin Console – Good vs Bad","version":1},"coreMigrationVersion":"8.8.0","created_at":"2023-06-02T21:29:06.519Z","id":"2db9b340-d8ad-11ed-ab9f-e9e3125870b6","managed":false,"references":[{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"a97a85b0-b83a-4d28-a3ca-d82e1d1add0f:metrics_a97a85b0-b83a-4d28-a3ca-d82e1d1add0f_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"c67c9c1f-719a-44b8-bfeb-fafc5243ae1c:metrics_c67c9c1f-719a-44b8-bfeb-fafc5243ae1c_0_index_pattern","type":"index-pattern"},{"id":"18b3ece0-d8ad-11ed-ab9f-e9e3125870b6","name":"f839754d-d5aa-40be-93bb-abda520aaa29:panel_f839754d-d5aa-40be-93bb-abda520aaa29","type":"visualization"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"359d89d1-aac0-4320-98fc-983b10831ec1:metrics_359d89d1-aac0-4320-98fc-983b10831ec1_0_index_pattern","type":"index-pattern"},{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"91c24a19-7f44-449f-a1bc-298556562140:metrics_91c24a19-7f44-449f-a1bc-298556562140_0_index_pattern","type":"index-pattern"},{"id":"54a5a414-f8ce-4f5c-ac15-a3554693b51f","name":"91c24a19-7f44-449f-a1bc-298556562140:metrics_91c24a19-7f44-449f-a1bc-298556562140_1_index_pattern","type":"index-pattern"},{"id":"b5653a60-d8af-11ed-ab9f-e9e3125870b6","name":"c0701f1b-377b-4950-a3f9-cacfd232300a:panel_c0701f1b-377b-4950-a3f9-cacfd232300a","type":"search"},{"id":"2caefa00-d8ad-11ed-ab9f-e9e3125870b6","name":"tag-ref-2caefa00-d8ad-11ed-ab9f-e9e3125870b6","type":"tag"}],"type":"dashboard","typeMigrationVersion":"8.7.0","updated_at":"2023-06-02T21:29:06.519Z","version":"WzEzLDFd"} +{"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":8,"missingRefCount":0,"missingReferences":[]} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/mapping-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/mapping-settings.json new file mode 100644 index 0000000000000..213c50bcc0851 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/mapping-settings.json @@ -0,0 +1,20 @@ +{ + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "type": "keyword", + "ignore_above": 1024, + "fields": { + "text": { "type": "text", "norms" : false } + } + }, + "match_mapping_type": "string" + } + } + ] +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/subset.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/subset.yml new file mode 100644 index 0000000000000..1ea27c5b200d3 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/subset.yml @@ -0,0 +1,30 @@ +--- +name: admin_console +fields: + base: + fields: "*" + event: + fields: + category: {} + action: {} + duration: {} + http: + fields: "*" + url: + fields: "*" + user: + fields: + name: {} + id: {} + roles: {} + user_agent: + fields: + original: {} + log: + fields: + level: {} + logger: {} + host: + fields: + name: {} + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/template-settings-legacy.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/template-settings-legacy.json new file mode 100644 index 0000000000000..aeb111ce818a0 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/template-settings-legacy.json @@ -0,0 +1,17 @@ +{ + "index_patterns": ["kbn-data-forge-fake_stack.admin-console-*"], + "order": 1, + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} + + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/template-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/template-settings.json new file mode 100644 index 0000000000000..8701589586d51 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/fields/template-settings.json @@ -0,0 +1,16 @@ +{ + "index_patterns": ["kbn-data-forge-fake_stack.admin-console-*"], + "priority": 1, + "template": { + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generate.sh b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generate.sh new file mode 100755 index 0000000000000..8cfa4b8956f2b --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generate.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +cd ../../../../../../../../../ecs +NAME=admin_console + +BASE=../kibana/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/$NAME +ECS=$BASE/ecs + +python3 ./scripts/generator.py --ref v8.0.0 \ + --subset $ECS/fields/subset.yml \ + --out $ECS/ \ + --template-settings-legacy $ECS/fields/template-settings-legacy.json \ + --template-settings $ECS/fields/template-settings.json \ + --mapping-settings $ECS/fields/mapping-settings.json diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/beats/fields.ecs.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/beats/fields.ecs.yml new file mode 100644 index 0000000000000..790b08aceb47d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/beats/fields.ecs.yml @@ -0,0 +1,471 @@ +# WARNING! Do not edit this file directly, it was generated by the ECS project, +# based on ECS version 8.0.0. +# Please visit https://github.com/elastic/ecs to suggest changes to ECS fields. + +- key: ecs + title: ECS + description: ECS Fields. + fields: + - name: '@timestamp' + level: core + required: true + type: date + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + default_field: true + - name: labels + level: core + type: object + object_type: keyword + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + default_field: true + - name: message + level: core + type: match_only_text + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + default_field: true + - name: tags + level: core + type: keyword + ignore_above: 1024 + description: List of keywords used to tag each event. + example: '["production", "env2"]' + default_field: true + - name: event + title: Event + group: 2 + description: 'The event fields are used for context information about the log + or metric event itself. + + A log is defined as an event containing details of something that happened. + Log events must include the time at which the thing happened. Examples of log + events include a process starting on a host, a network packet being sent from + a source to a destination, or a network connection between a client and a server + being initiated or closed. A metric is defined as an event containing one or + more numerical measurements and the time at which the measurement was taken. + Examples of metric events include memory pressure measured on a host and device + temperature. See the `event.kind` definition in this section for additional + details about metric and state events.' + type: group + default_field: true + fields: + - name: action + level: core + type: keyword + ignore_above: 1024 + description: 'The action captured by the event. + + This describes the information in the event. It is more specific than `event.category`. + Examples are `group-add`, `process-started`, `file-created`. The value is + normally defined by the implementer.' + example: user-password-change + - name: category + level: core + type: keyword + ignore_above: 1024 + description: 'This is one of four ECS Categorization Fields, and indicates the + second level in the ECS category hierarchy. + + `event.category` represents the "big buckets" of ECS categories. For example, + filtering on `event.category:process` yields all events relating to process + activity. This field is closely related to `event.type`, which is used as + a subcategory. + + This field is an array. This will allow proper categorization of some events + that fall in multiple categories.' + example: authentication + - name: duration + level: core + type: long + format: duration + input_format: nanoseconds + output_format: asMilliseconds + output_precision: 1 + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference + between the end and start time.' + - name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include + hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + default_field: true + fields: + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + - name: http + title: HTTP + group: 2 + description: Fields related to HTTP activity. Use the `url` field set to store + the url of the request. + type: group + default_field: true + fields: + - name: request.body.bytes + level: extended + type: long + format: bytes + description: Size in bytes of the request body. + example: 887 + - name: request.body.content + level: extended + type: wildcard + multi_fields: + - name: text + type: match_only_text + default_field: false + description: The full HTTP request body. + example: Hello world + - name: request.bytes + level: extended + type: long + format: bytes + description: Total size in bytes of the request (body and headers). + example: 1437 + - name: request.id + level: extended + type: keyword + ignore_above: 1024 + description: 'A unique identifier for each HTTP request to correlate logs between + clients and servers in transactions. + + The id may be contained in a non-standard HTTP header, such as `X-Request-ID` + or `X-Correlation-ID`.' + example: 123e4567-e89b-12d3-a456-426614174000 + default_field: false + - name: request.method + level: extended + type: keyword + ignore_above: 1024 + description: 'HTTP request method. + + The value should retain its casing from the original event. For example, `GET`, + `get`, and `GeT` are all considered valid values for this field.' + example: POST + - name: request.mime_type + level: extended + type: keyword + ignore_above: 1024 + description: 'Mime type of the body of the request. + + This value must only be populated based on the content of the request body, + not on the `Content-Type` header. Comparing the mime type of a request with + the request''s Content-Type header can be helpful in detecting threats or + misconfigured clients.' + example: image/gif + default_field: false + - name: request.referrer + level: extended + type: keyword + ignore_above: 1024 + description: Referrer for this HTTP request. + example: https://blog.example.com/ + - name: response.body.bytes + level: extended + type: long + format: bytes + description: Size in bytes of the response body. + example: 887 + - name: response.body.content + level: extended + type: wildcard + multi_fields: + - name: text + type: match_only_text + default_field: false + description: The full HTTP response body. + example: Hello world + - name: response.bytes + level: extended + type: long + format: bytes + description: Total size in bytes of the response (body and headers). + example: 1437 + - name: response.mime_type + level: extended + type: keyword + ignore_above: 1024 + description: 'Mime type of the body of the response. + + This value must only be populated based on the content of the response body, + not on the `Content-Type` header. Comparing the mime type of a response with + the response''s Content-Type header can be helpful in detecting misconfigured + servers.' + example: image/gif + default_field: false + - name: response.status_code + level: extended + type: long + format: string + description: HTTP response status code. + example: 404 + - name: version + level: extended + type: keyword + ignore_above: 1024 + description: HTTP version. + example: 1.1 + - name: log + title: Log + group: 2 + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + type: group + default_field: true + fields: + - name: level + level: core + type: keyword + ignore_above: 1024 + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + - name: logger + level: core + type: keyword + ignore_above: 1024 + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + - name: url + title: URL + group: 2 + description: URL fields provide support for complete or partial URLs, and supports + the breaking down into scheme, domain, path, and so on. + type: group + default_field: true + fields: + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Domain of the url, such as "www.elastic.co". + + In some cases a URL may refer to an IP and/or port directly, without a domain + name. In this case, the IP address would go to the `domain` field. + + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC + 2732), the `[` and `]` characters should also be captured in the `domain` + field.' + example: www.elastic.co + - name: extension + level: extended + type: keyword + ignore_above: 1024 + description: 'The field contains the file extension from the original request + url, excluding the leading dot. + + The file extension is only set if it exists, as not every url has a file extension. + + The leading period must not be included. For example, the value must be "png", + not ".png". + + Note that when the file name has multiple extensions (example.tar.gz), only + the last one should be captured ("gz", not "tar.gz").' + example: png + - name: fragment + level: extended + type: keyword + ignore_above: 1024 + description: 'Portion of the url after the `#`, such as "top". + + The `#` is not part of the fragment.' + - name: full + level: extended + type: wildcard + multi_fields: + - name: text + type: match_only_text + default_field: false + description: If full URLs are important to your use case, they should be stored + in `url.full`, whether this field is reconstructed or present in the event + source. + example: https://www.elastic.co:443/search?q=elasticsearch#top + - name: original + level: extended + type: wildcard + multi_fields: + - name: text + type: match_only_text + default_field: false + description: 'Unmodified original url as seen in the event source. + + Note that in network monitoring, the observed URL may be a full URL, whereas + in access logs, the URL is often just represented as a path. + + This field is meant to represent the URL as it was observed, complete or not.' + example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch + - name: password + level: extended + type: keyword + ignore_above: 1024 + description: Password of the request. + - name: path + level: extended + type: wildcard + description: Path of the request, such as "/search". + - name: port + level: extended + type: long + format: string + description: Port of the request, such as 443. + example: 443 + - name: query + level: extended + type: keyword + ignore_above: 1024 + description: 'The query field describes the query string of the request, such + as "q=elasticsearch". + + The `?` is excluded from the query string. If a URL contains no `?`, there + is no query field. If there is a `?` but no query, the query field exists + with an empty string. The `exists` query can be used to differentiate between + the two cases.' + - name: registered_domain + level: extended + type: keyword + ignore_above: 1024 + description: 'The highest registered url domain, stripped of the subdomain. + + For example, the registered domain for "foo.example.com" is "example.com". + + This value can be determined precisely with a list like the public suffix + list (http://publicsuffix.org). Trying to approximate this by simply taking + the last two labels will not work well for TLDs such as "co.uk".' + example: example.com + - name: scheme + level: extended + type: keyword + ignore_above: 1024 + description: 'Scheme of the request, such as "https". + + Note: The `:` is not part of the scheme.' + example: https + - name: subdomain + level: extended + type: keyword + ignore_above: 1024 + description: 'The subdomain portion of a fully qualified domain name includes + all of the names except the host name under the registered_domain. In a partially + qualified domain, or if the the qualification level of the full name cannot + be determined, subdomain contains all of the names below the registered domain. + + For example the subdomain portion of "www.east.mydomain.co.uk" is "east". + If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", + the subdomain field should contain "sub2.sub1", with no trailing period.' + example: east + default_field: false + - name: top_level_domain + level: extended + type: keyword + ignore_above: 1024 + description: 'The effective top level domain (eTLD), also known as the domain + suffix, is the last part of the domain name. For example, the top level domain + for example.com is "com". + + This value can be determined precisely with a list like the public suffix + list (http://publicsuffix.org). Trying to approximate this by simply taking + the last label will not work well for effective TLDs such as "co.uk".' + example: co.uk + - name: username + level: extended + type: keyword + ignore_above: 1024 + description: Username of the request. + - name: user + title: User + group: 2 + description: 'The user fields describe information about the user that is relevant + to the event. + + Fields can have one entry or multiple entries. If a user has more than one id, + provide an array that includes all of them.' + type: group + default_field: true + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique identifier of the user. + example: S-1-5-21-202424912787-2692429404-2351956786-1000 + - name: name + level: core + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: match_only_text + default_field: false + description: Short name or login of the user. + example: a.einstein + - name: roles + level: extended + type: keyword + ignore_above: 1024 + description: Array of user roles at the time of the event. + example: '["kibana_admin", "reporting_user"]' + default_field: false + - name: user_agent + title: User agent + group: 2 + description: 'The user_agent fields normally come from a browser request. + + They often show up in web service logs coming from the parsed user agent string.' + type: group + default_field: true + fields: + - name: original + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: match_only_text + description: Unparsed user_agent string. + example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 + (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/csv/fields.csv b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/csv/fields.csv new file mode 100644 index 0000000000000..f9b222f1eb349 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/csv/fields.csv @@ -0,0 +1,48 @@ +ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description +8.0.0,true,base,@timestamp,date,core,,2016-05-23T08:05:34.853Z,Date/time when the event originated. +8.0.0,true,base,labels,object,core,,"{""application"": ""foo-bar"", ""env"": ""production""}",Custom key/value pairs. +8.0.0,true,base,message,match_only_text,core,,Hello World,Log message optimized for viewing in a log viewer. +8.0.0,true,base,tags,keyword,core,array,"[""production"", ""env2""]",List of keywords used to tag each event. +8.0.0,true,event,event.action,keyword,core,,user-password-change,The action captured by the event. +8.0.0,true,event,event.category,keyword,core,array,authentication,Event category. The second categorization field in the hierarchy. +8.0.0,true,event,event.duration,long,core,,,Duration of the event in nanoseconds. +8.0.0,true,host,host.name,keyword,core,,,Name of the host. +8.0.0,true,http,http.request.body.bytes,long,extended,,887,Size in bytes of the request body. +8.0.0,true,http,http.request.body.content,wildcard,extended,,Hello world,The full HTTP request body. +8.0.0,true,http,http.request.body.content.text,match_only_text,extended,,Hello world,The full HTTP request body. +8.0.0,true,http,http.request.bytes,long,extended,,1437,Total size in bytes of the request (body and headers). +8.0.0,true,http,http.request.id,keyword,extended,,123e4567-e89b-12d3-a456-426614174000,HTTP request ID. +8.0.0,true,http,http.request.method,keyword,extended,,POST,HTTP request method. +8.0.0,true,http,http.request.mime_type,keyword,extended,,image/gif,Mime type of the body of the request. +8.0.0,true,http,http.request.referrer,keyword,extended,,https://blog.example.com/,Referrer for this HTTP request. +8.0.0,true,http,http.response.body.bytes,long,extended,,887,Size in bytes of the response body. +8.0.0,true,http,http.response.body.content,wildcard,extended,,Hello world,The full HTTP response body. +8.0.0,true,http,http.response.body.content.text,match_only_text,extended,,Hello world,The full HTTP response body. +8.0.0,true,http,http.response.bytes,long,extended,,1437,Total size in bytes of the response (body and headers). +8.0.0,true,http,http.response.mime_type,keyword,extended,,image/gif,Mime type of the body of the response. +8.0.0,true,http,http.response.status_code,long,extended,,404,HTTP response status code. +8.0.0,true,http,http.version,keyword,extended,,1.1,HTTP version. +8.0.0,true,log,log.level,keyword,core,,error,Log level of the log event. +8.0.0,true,log,log.logger,keyword,core,,org.elasticsearch.bootstrap.Bootstrap,Name of the logger. +8.0.0,true,url,url.domain,keyword,extended,,www.elastic.co,Domain of the url. +8.0.0,true,url,url.extension,keyword,extended,,png,"File extension from the request url, excluding the leading dot." +8.0.0,true,url,url.fragment,keyword,extended,,,Portion of the url after the `#`. +8.0.0,true,url,url.full,wildcard,extended,,https://www.elastic.co:443/search?q=elasticsearch#top,Full unparsed URL. +8.0.0,true,url,url.full.text,match_only_text,extended,,https://www.elastic.co:443/search?q=elasticsearch#top,Full unparsed URL. +8.0.0,true,url,url.original,wildcard,extended,,https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch,Unmodified original url as seen in the event source. +8.0.0,true,url,url.original.text,match_only_text,extended,,https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch,Unmodified original url as seen in the event source. +8.0.0,true,url,url.password,keyword,extended,,,Password of the request. +8.0.0,true,url,url.path,wildcard,extended,,,"Path of the request, such as ""/search""." +8.0.0,true,url,url.port,long,extended,,443,"Port of the request, such as 443." +8.0.0,true,url,url.query,keyword,extended,,,Query string of the request. +8.0.0,true,url,url.registered_domain,keyword,extended,,example.com,"The highest registered url domain, stripped of the subdomain." +8.0.0,true,url,url.scheme,keyword,extended,,https,Scheme of the url. +8.0.0,true,url,url.subdomain,keyword,extended,,east,The subdomain of the domain. +8.0.0,true,url,url.top_level_domain,keyword,extended,,co.uk,"The effective top level domain (com, org, net, co.uk)." +8.0.0,true,url,url.username,keyword,extended,,,Username of the request. +8.0.0,true,user,user.id,keyword,core,,S-1-5-21-202424912787-2692429404-2351956786-1000,Unique identifier of the user. +8.0.0,true,user,user.name,keyword,core,,a.einstein,Short name or login of the user. +8.0.0,true,user,user.name.text,match_only_text,core,,a.einstein,Short name or login of the user. +8.0.0,true,user,user.roles,keyword,extended,array,"[""kibana_admin"", ""reporting_user""]",Array of user roles at the time of the event. +8.0.0,true,user_agent,user_agent.original,keyword,extended,,"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",Unparsed user_agent string. +8.0.0,true,user_agent,user_agent.original.text,match_only_text,extended,,"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",Unparsed user_agent string. diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/ecs_flat.yml new file mode 100644 index 0000000000000..c6392b4765c38 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/ecs_flat.yml @@ -0,0 +1,749 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +event.action: + dashed_name: event-action + description: 'The action captured by the event. + + This describes the information in the event. It is more specific than `event.category`. + Examples are `group-add`, `process-started`, `file-created`. The value is normally + defined by the implementer.' + example: user-password-change + flat_name: event.action + ignore_above: 1024 + level: core + name: action + normalize: [] + short: The action captured by the event. + type: keyword +event.category: + allowed_values: + - description: Events in this category are related to the challenge and response + process in which credentials are supplied and verified to allow the creation + of a session. Common sources for these logs are Windows event logs and ssh logs. + Visualize and analyze events in this category to look for failed logins, and + other authentication-related activity. + expected_event_types: + - start + - end + - info + name: authentication + - description: 'Events in the configuration category have to deal with creating, + modifying, or deleting the settings or parameters of an application, process, + or system. + + Example sources include security policy change logs, configuration auditing + logging, and system integrity monitoring.' + expected_event_types: + - access + - change + - creation + - deletion + - info + name: configuration + - description: The database category denotes events and metrics relating to a data + storage and retrieval system. Note that use of this category is not limited + to relational database systems. Examples include event logs from MS SQL, MySQL, + Elasticsearch, MongoDB, etc. Use this category to visualize and analyze database + activity such as accesses and changes. + expected_event_types: + - access + - change + - info + - error + name: database + - description: 'Events in the driver category have to do with operating system device + drivers and similar software entities such as Windows drivers, kernel extensions, + kernel modules, etc. + + Use events and metrics in this category to visualize and analyze driver-related + activity and status on hosts.' + expected_event_types: + - change + - end + - info + - start + name: driver + - description: Relating to a set of information that has been created on, or has + existed on a filesystem. Use this category of events to visualize and analyze + the creation, access, and deletions of files. Events in this category can come + from both host-based and network-based sources. An example source of a network-based + detection of a file transfer would be the Zeek file.log. + expected_event_types: + - change + - creation + - deletion + - info + name: file + - description: 'Use this category to visualize and analyze information such as host + inventory or host lifecycle events. + + Most of the events in this category can usually be observed from the outside, + such as from a hypervisor or a control plane''s point of view. Some can also + be seen from within, such as "start" or "end". + + Note that this category is for information about hosts themselves; it is not + meant to capture activity "happening on a host".' + expected_event_types: + - access + - change + - end + - info + - start + name: host + - description: Identity and access management (IAM) events relating to users, groups, + and administration. Use this category to visualize and analyze IAM-related logs + and data from active directory, LDAP, Okta, Duo, and other IAM systems. + expected_event_types: + - admin + - change + - creation + - deletion + - group + - info + - user + name: iam + - description: Relating to intrusion detections from IDS/IPS systems and functions, + both network and host-based. Use this category to visualize and analyze intrusion + detection alerts from systems such as Snort, Suricata, and Palo Alto threat + detections. + expected_event_types: + - allowed + - denied + - info + name: intrusion_detection + - description: Malware detection events and alerts. Use this category to visualize + and analyze malware detections from EDR/EPP systems such as Elastic Endpoint + Security, Symantec Endpoint Protection, Crowdstrike, and network IDS/IPS systems + such as Suricata, or other sources of malware-related events such as Palo Alto + Networks threat logs and Wildfire logs. + expected_event_types: + - info + name: malware + - description: Relating to all network activity, including network connection lifecycle, + network traffic, and essentially any event that includes an IP address. Many + events containing decoded network protocol transactions fit into this category. + Use events in this category to visualize or analyze counts of network ports, + protocols, addresses, geolocation information, etc. + expected_event_types: + - access + - allowed + - connection + - denied + - end + - info + - protocol + - start + name: network + - description: Relating to software packages installed on hosts. Use this category + to visualize and analyze inventory of software installed on various hosts, or + to determine host vulnerability in the absence of vulnerability scan data. + expected_event_types: + - access + - change + - deletion + - info + - installation + - start + name: package + - description: Use this category of events to visualize and analyze process-specific + information such as lifecycle events or process ancestry. + expected_event_types: + - access + - change + - end + - info + - start + name: process + - description: Having to do with settings and assets stored in the Windows registry. + Use this category to visualize and analyze activity such as registry access + and modifications. + expected_event_types: + - access + - change + - creation + - deletion + name: registry + - description: The session category is applied to events and metrics regarding logical + persistent connections to hosts and services. Use this category to visualize + and analyze interactive or automated persistent connections between assets. + Data for this category may come from Windows Event logs, SSH logs, or stateless + sessions such as HTTP cookie-based sessions, etc. + expected_event_types: + - start + - end + - info + name: session + - description: Use this category to visualize and analyze events describing threat + actors' targets, motives, or behaviors. + expected_event_types: + - indicator + name: threat + - description: 'Relating to web server access. Use this category to create a dashboard + of web server/proxy activity from apache, IIS, nginx web servers, etc. Note: + events from network observers such as Zeek http log may also be included in + this category.' + expected_event_types: + - access + - error + - info + name: web + dashed_name: event-category + description: 'This is one of four ECS Categorization Fields, and indicates the second + level in the ECS category hierarchy. + + `event.category` represents the "big buckets" of ECS categories. For example, + filtering on `event.category:process` yields all events relating to process activity. + This field is closely related to `event.type`, which is used as a subcategory. + + This field is an array. This will allow proper categorization of some events that + fall in multiple categories.' + example: authentication + flat_name: event.category + ignore_above: 1024 + level: core + name: category + normalize: + - array + short: Event category. The second categorization field in the hierarchy. + type: keyword +event.duration: + dashed_name: event-duration + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference between + the end and start time.' + flat_name: event.duration + format: duration + input_format: nanoseconds + level: core + name: duration + normalize: [] + output_format: asMilliseconds + output_precision: 1 + short: Duration of the event in nanoseconds. + type: long +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +http.request.body.bytes: + dashed_name: http-request-body-bytes + description: Size in bytes of the request body. + example: 887 + flat_name: http.request.body.bytes + format: bytes + level: extended + name: request.body.bytes + normalize: [] + short: Size in bytes of the request body. + type: long +http.request.body.content: + dashed_name: http-request-body-content + description: The full HTTP request body. + example: Hello world + flat_name: http.request.body.content + level: extended + multi_fields: + - flat_name: http.request.body.content.text + name: text + type: match_only_text + name: request.body.content + normalize: [] + short: The full HTTP request body. + type: wildcard +http.request.bytes: + dashed_name: http-request-bytes + description: Total size in bytes of the request (body and headers). + example: 1437 + flat_name: http.request.bytes + format: bytes + level: extended + name: request.bytes + normalize: [] + short: Total size in bytes of the request (body and headers). + type: long +http.request.id: + dashed_name: http-request-id + description: 'A unique identifier for each HTTP request to correlate logs between + clients and servers in transactions. + + The id may be contained in a non-standard HTTP header, such as `X-Request-ID` + or `X-Correlation-ID`.' + example: 123e4567-e89b-12d3-a456-426614174000 + flat_name: http.request.id + ignore_above: 1024 + level: extended + name: request.id + normalize: [] + short: HTTP request ID. + type: keyword +http.request.method: + dashed_name: http-request-method + description: 'HTTP request method. + + The value should retain its casing from the original event. For example, `GET`, + `get`, and `GeT` are all considered valid values for this field.' + example: POST + flat_name: http.request.method + ignore_above: 1024 + level: extended + name: request.method + normalize: [] + short: HTTP request method. + type: keyword +http.request.mime_type: + dashed_name: http-request-mime-type + description: 'Mime type of the body of the request. + + This value must only be populated based on the content of the request body, not + on the `Content-Type` header. Comparing the mime type of a request with the request''s + Content-Type header can be helpful in detecting threats or misconfigured clients.' + example: image/gif + flat_name: http.request.mime_type + ignore_above: 1024 + level: extended + name: request.mime_type + normalize: [] + short: Mime type of the body of the request. + type: keyword +http.request.referrer: + dashed_name: http-request-referrer + description: Referrer for this HTTP request. + example: https://blog.example.com/ + flat_name: http.request.referrer + ignore_above: 1024 + level: extended + name: request.referrer + normalize: [] + short: Referrer for this HTTP request. + type: keyword +http.response.body.bytes: + dashed_name: http-response-body-bytes + description: Size in bytes of the response body. + example: 887 + flat_name: http.response.body.bytes + format: bytes + level: extended + name: response.body.bytes + normalize: [] + short: Size in bytes of the response body. + type: long +http.response.body.content: + dashed_name: http-response-body-content + description: The full HTTP response body. + example: Hello world + flat_name: http.response.body.content + level: extended + multi_fields: + - flat_name: http.response.body.content.text + name: text + type: match_only_text + name: response.body.content + normalize: [] + short: The full HTTP response body. + type: wildcard +http.response.bytes: + dashed_name: http-response-bytes + description: Total size in bytes of the response (body and headers). + example: 1437 + flat_name: http.response.bytes + format: bytes + level: extended + name: response.bytes + normalize: [] + short: Total size in bytes of the response (body and headers). + type: long +http.response.mime_type: + dashed_name: http-response-mime-type + description: 'Mime type of the body of the response. + + This value must only be populated based on the content of the response body, not + on the `Content-Type` header. Comparing the mime type of a response with the response''s + Content-Type header can be helpful in detecting misconfigured servers.' + example: image/gif + flat_name: http.response.mime_type + ignore_above: 1024 + level: extended + name: response.mime_type + normalize: [] + short: Mime type of the body of the response. + type: keyword +http.response.status_code: + dashed_name: http-response-status-code + description: HTTP response status code. + example: 404 + flat_name: http.response.status_code + format: string + level: extended + name: response.status_code + normalize: [] + short: HTTP response status code. + type: long +http.version: + dashed_name: http-version + description: HTTP version. + example: 1.1 + flat_name: http.version + ignore_above: 1024 + level: extended + name: version + normalize: [] + short: HTTP version. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword +url.domain: + dashed_name: url-domain + description: 'Domain of the url, such as "www.elastic.co". + + In some cases a URL may refer to an IP and/or port directly, without a domain + name. In this case, the IP address would go to the `domain` field. + + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), + the `[` and `]` characters should also be captured in the `domain` field.' + example: www.elastic.co + flat_name: url.domain + ignore_above: 1024 + level: extended + name: domain + normalize: [] + short: Domain of the url. + type: keyword +url.extension: + dashed_name: url-extension + description: 'The field contains the file extension from the original request url, + excluding the leading dot. + + The file extension is only set if it exists, as not every url has a file extension. + + The leading period must not be included. For example, the value must be "png", + not ".png". + + Note that when the file name has multiple extensions (example.tar.gz), only the + last one should be captured ("gz", not "tar.gz").' + example: png + flat_name: url.extension + ignore_above: 1024 + level: extended + name: extension + normalize: [] + short: File extension from the request url, excluding the leading dot. + type: keyword +url.fragment: + dashed_name: url-fragment + description: 'Portion of the url after the `#`, such as "top". + + The `#` is not part of the fragment.' + flat_name: url.fragment + ignore_above: 1024 + level: extended + name: fragment + normalize: [] + short: Portion of the url after the `#`. + type: keyword +url.full: + dashed_name: url-full + description: If full URLs are important to your use case, they should be stored + in `url.full`, whether this field is reconstructed or present in the event source. + example: https://www.elastic.co:443/search?q=elasticsearch#top + flat_name: url.full + level: extended + multi_fields: + - flat_name: url.full.text + name: text + type: match_only_text + name: full + normalize: [] + short: Full unparsed URL. + type: wildcard +url.original: + dashed_name: url-original + description: 'Unmodified original url as seen in the event source. + + Note that in network monitoring, the observed URL may be a full URL, whereas in + access logs, the URL is often just represented as a path. + + This field is meant to represent the URL as it was observed, complete or not.' + example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch + flat_name: url.original + level: extended + multi_fields: + - flat_name: url.original.text + name: text + type: match_only_text + name: original + normalize: [] + short: Unmodified original url as seen in the event source. + type: wildcard +url.password: + dashed_name: url-password + description: Password of the request. + flat_name: url.password + ignore_above: 1024 + level: extended + name: password + normalize: [] + short: Password of the request. + type: keyword +url.path: + dashed_name: url-path + description: Path of the request, such as "/search". + flat_name: url.path + level: extended + name: path + normalize: [] + short: Path of the request, such as "/search". + type: wildcard +url.port: + dashed_name: url-port + description: Port of the request, such as 443. + example: 443 + flat_name: url.port + format: string + level: extended + name: port + normalize: [] + short: Port of the request, such as 443. + type: long +url.query: + dashed_name: url-query + description: 'The query field describes the query string of the request, such as + "q=elasticsearch". + + The `?` is excluded from the query string. If a URL contains no `?`, there is + no query field. If there is a `?` but no query, the query field exists with an + empty string. The `exists` query can be used to differentiate between the two + cases.' + flat_name: url.query + ignore_above: 1024 + level: extended + name: query + normalize: [] + short: Query string of the request. + type: keyword +url.registered_domain: + dashed_name: url-registered-domain + description: 'The highest registered url domain, stripped of the subdomain. + + For example, the registered domain for "foo.example.com" is "example.com". + + This value can be determined precisely with a list like the public suffix list + (http://publicsuffix.org). Trying to approximate this by simply taking the last + two labels will not work well for TLDs such as "co.uk".' + example: example.com + flat_name: url.registered_domain + ignore_above: 1024 + level: extended + name: registered_domain + normalize: [] + short: The highest registered url domain, stripped of the subdomain. + type: keyword +url.scheme: + dashed_name: url-scheme + description: 'Scheme of the request, such as "https". + + Note: The `:` is not part of the scheme.' + example: https + flat_name: url.scheme + ignore_above: 1024 + level: extended + name: scheme + normalize: [] + short: Scheme of the url. + type: keyword +url.subdomain: + dashed_name: url-subdomain + description: 'The subdomain portion of a fully qualified domain name includes all + of the names except the host name under the registered_domain. In a partially + qualified domain, or if the the qualification level of the full name cannot be + determined, subdomain contains all of the names below the registered domain. + + For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the + domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the + subdomain field should contain "sub2.sub1", with no trailing period.' + example: east + flat_name: url.subdomain + ignore_above: 1024 + level: extended + name: subdomain + normalize: [] + short: The subdomain of the domain. + type: keyword +url.top_level_domain: + dashed_name: url-top-level-domain + description: 'The effective top level domain (eTLD), also known as the domain suffix, + is the last part of the domain name. For example, the top level domain for example.com + is "com". + + This value can be determined precisely with a list like the public suffix list + (http://publicsuffix.org). Trying to approximate this by simply taking the last + label will not work well for effective TLDs such as "co.uk".' + example: co.uk + flat_name: url.top_level_domain + ignore_above: 1024 + level: extended + name: top_level_domain + normalize: [] + short: The effective top level domain (com, org, net, co.uk). + type: keyword +url.username: + dashed_name: url-username + description: Username of the request. + flat_name: url.username + ignore_above: 1024 + level: extended + name: username + normalize: [] + short: Username of the request. + type: keyword +user.id: + dashed_name: user-id + description: Unique identifier of the user. + example: S-1-5-21-202424912787-2692429404-2351956786-1000 + flat_name: user.id + ignore_above: 1024 + level: core + name: id + normalize: [] + short: Unique identifier of the user. + type: keyword +user.name: + dashed_name: user-name + description: Short name or login of the user. + example: a.einstein + flat_name: user.name + ignore_above: 1024 + level: core + multi_fields: + - flat_name: user.name.text + name: text + type: match_only_text + name: name + normalize: [] + short: Short name or login of the user. + type: keyword +user.roles: + dashed_name: user-roles + description: Array of user roles at the time of the event. + example: '["kibana_admin", "reporting_user"]' + flat_name: user.roles + ignore_above: 1024 + level: extended + name: roles + normalize: + - array + short: Array of user roles at the time of the event. + type: keyword +user_agent.original: + dashed_name: user-agent-original + description: Unparsed user_agent string. + example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 + (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 + flat_name: user_agent.original + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: user_agent.original.text + name: text + type: match_only_text + name: original + normalize: [] + short: Unparsed user_agent string. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/ecs_nested.yml new file mode 100644 index 0000000000000..9bdff40451462 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/ecs_nested.yml @@ -0,0 +1,932 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +event: + description: 'The event fields are used for context information about the log or + metric event itself. + + A log is defined as an event containing details of something that happened. Log + events must include the time at which the thing happened. Examples of log events + include a process starting on a host, a network packet being sent from a source + to a destination, or a network connection between a client and a server being + initiated or closed. A metric is defined as an event containing one or more numerical + measurements and the time at which the measurement was taken. Examples of metric + events include memory pressure measured on a host and device temperature. See + the `event.kind` definition in this section for additional details about metric + and state events.' + fields: + event.action: + dashed_name: event-action + description: 'The action captured by the event. + + This describes the information in the event. It is more specific than `event.category`. + Examples are `group-add`, `process-started`, `file-created`. The value is + normally defined by the implementer.' + example: user-password-change + flat_name: event.action + ignore_above: 1024 + level: core + name: action + normalize: [] + short: The action captured by the event. + type: keyword + event.category: + allowed_values: + - description: Events in this category are related to the challenge and response + process in which credentials are supplied and verified to allow the creation + of a session. Common sources for these logs are Windows event logs and ssh + logs. Visualize and analyze events in this category to look for failed logins, + and other authentication-related activity. + expected_event_types: + - start + - end + - info + name: authentication + - description: 'Events in the configuration category have to deal with creating, + modifying, or deleting the settings or parameters of an application, process, + or system. + + Example sources include security policy change logs, configuration auditing + logging, and system integrity monitoring.' + expected_event_types: + - access + - change + - creation + - deletion + - info + name: configuration + - description: The database category denotes events and metrics relating to + a data storage and retrieval system. Note that use of this category is not + limited to relational database systems. Examples include event logs from + MS SQL, MySQL, Elasticsearch, MongoDB, etc. Use this category to visualize + and analyze database activity such as accesses and changes. + expected_event_types: + - access + - change + - info + - error + name: database + - description: 'Events in the driver category have to do with operating system + device drivers and similar software entities such as Windows drivers, kernel + extensions, kernel modules, etc. + + Use events and metrics in this category to visualize and analyze driver-related + activity and status on hosts.' + expected_event_types: + - change + - end + - info + - start + name: driver + - description: Relating to a set of information that has been created on, or + has existed on a filesystem. Use this category of events to visualize and + analyze the creation, access, and deletions of files. Events in this category + can come from both host-based and network-based sources. An example source + of a network-based detection of a file transfer would be the Zeek file.log. + expected_event_types: + - change + - creation + - deletion + - info + name: file + - description: 'Use this category to visualize and analyze information such + as host inventory or host lifecycle events. + + Most of the events in this category can usually be observed from the outside, + such as from a hypervisor or a control plane''s point of view. Some can + also be seen from within, such as "start" or "end". + + Note that this category is for information about hosts themselves; it is + not meant to capture activity "happening on a host".' + expected_event_types: + - access + - change + - end + - info + - start + name: host + - description: Identity and access management (IAM) events relating to users, + groups, and administration. Use this category to visualize and analyze IAM-related + logs and data from active directory, LDAP, Okta, Duo, and other IAM systems. + expected_event_types: + - admin + - change + - creation + - deletion + - group + - info + - user + name: iam + - description: Relating to intrusion detections from IDS/IPS systems and functions, + both network and host-based. Use this category to visualize and analyze + intrusion detection alerts from systems such as Snort, Suricata, and Palo + Alto threat detections. + expected_event_types: + - allowed + - denied + - info + name: intrusion_detection + - description: Malware detection events and alerts. Use this category to visualize + and analyze malware detections from EDR/EPP systems such as Elastic Endpoint + Security, Symantec Endpoint Protection, Crowdstrike, and network IDS/IPS + systems such as Suricata, or other sources of malware-related events such + as Palo Alto Networks threat logs and Wildfire logs. + expected_event_types: + - info + name: malware + - description: Relating to all network activity, including network connection + lifecycle, network traffic, and essentially any event that includes an IP + address. Many events containing decoded network protocol transactions fit + into this category. Use events in this category to visualize or analyze + counts of network ports, protocols, addresses, geolocation information, + etc. + expected_event_types: + - access + - allowed + - connection + - denied + - end + - info + - protocol + - start + name: network + - description: Relating to software packages installed on hosts. Use this category + to visualize and analyze inventory of software installed on various hosts, + or to determine host vulnerability in the absence of vulnerability scan + data. + expected_event_types: + - access + - change + - deletion + - info + - installation + - start + name: package + - description: Use this category of events to visualize and analyze process-specific + information such as lifecycle events or process ancestry. + expected_event_types: + - access + - change + - end + - info + - start + name: process + - description: Having to do with settings and assets stored in the Windows registry. + Use this category to visualize and analyze activity such as registry access + and modifications. + expected_event_types: + - access + - change + - creation + - deletion + name: registry + - description: The session category is applied to events and metrics regarding + logical persistent connections to hosts and services. Use this category + to visualize and analyze interactive or automated persistent connections + between assets. Data for this category may come from Windows Event logs, + SSH logs, or stateless sessions such as HTTP cookie-based sessions, etc. + expected_event_types: + - start + - end + - info + name: session + - description: Use this category to visualize and analyze events describing + threat actors' targets, motives, or behaviors. + expected_event_types: + - indicator + name: threat + - description: 'Relating to web server access. Use this category to create a + dashboard of web server/proxy activity from apache, IIS, nginx web servers, + etc. Note: events from network observers such as Zeek http log may also + be included in this category.' + expected_event_types: + - access + - error + - info + name: web + dashed_name: event-category + description: 'This is one of four ECS Categorization Fields, and indicates the + second level in the ECS category hierarchy. + + `event.category` represents the "big buckets" of ECS categories. For example, + filtering on `event.category:process` yields all events relating to process + activity. This field is closely related to `event.type`, which is used as + a subcategory. + + This field is an array. This will allow proper categorization of some events + that fall in multiple categories.' + example: authentication + flat_name: event.category + ignore_above: 1024 + level: core + name: category + normalize: + - array + short: Event category. The second categorization field in the hierarchy. + type: keyword + event.duration: + dashed_name: event-duration + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference + between the end and start time.' + flat_name: event.duration + format: duration + input_format: nanoseconds + level: core + name: duration + normalize: [] + output_format: asMilliseconds + output_precision: 1 + short: Duration of the event in nanoseconds. + type: long + group: 2 + name: event + prefix: event. + short: Fields breaking down the event details. + title: Event + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +http: + description: Fields related to HTTP activity. Use the `url` field set to store the + url of the request. + fields: + http.request.body.bytes: + dashed_name: http-request-body-bytes + description: Size in bytes of the request body. + example: 887 + flat_name: http.request.body.bytes + format: bytes + level: extended + name: request.body.bytes + normalize: [] + short: Size in bytes of the request body. + type: long + http.request.body.content: + dashed_name: http-request-body-content + description: The full HTTP request body. + example: Hello world + flat_name: http.request.body.content + level: extended + multi_fields: + - flat_name: http.request.body.content.text + name: text + type: match_only_text + name: request.body.content + normalize: [] + short: The full HTTP request body. + type: wildcard + http.request.bytes: + dashed_name: http-request-bytes + description: Total size in bytes of the request (body and headers). + example: 1437 + flat_name: http.request.bytes + format: bytes + level: extended + name: request.bytes + normalize: [] + short: Total size in bytes of the request (body and headers). + type: long + http.request.id: + dashed_name: http-request-id + description: 'A unique identifier for each HTTP request to correlate logs between + clients and servers in transactions. + + The id may be contained in a non-standard HTTP header, such as `X-Request-ID` + or `X-Correlation-ID`.' + example: 123e4567-e89b-12d3-a456-426614174000 + flat_name: http.request.id + ignore_above: 1024 + level: extended + name: request.id + normalize: [] + short: HTTP request ID. + type: keyword + http.request.method: + dashed_name: http-request-method + description: 'HTTP request method. + + The value should retain its casing from the original event. For example, `GET`, + `get`, and `GeT` are all considered valid values for this field.' + example: POST + flat_name: http.request.method + ignore_above: 1024 + level: extended + name: request.method + normalize: [] + short: HTTP request method. + type: keyword + http.request.mime_type: + dashed_name: http-request-mime-type + description: 'Mime type of the body of the request. + + This value must only be populated based on the content of the request body, + not on the `Content-Type` header. Comparing the mime type of a request with + the request''s Content-Type header can be helpful in detecting threats or + misconfigured clients.' + example: image/gif + flat_name: http.request.mime_type + ignore_above: 1024 + level: extended + name: request.mime_type + normalize: [] + short: Mime type of the body of the request. + type: keyword + http.request.referrer: + dashed_name: http-request-referrer + description: Referrer for this HTTP request. + example: https://blog.example.com/ + flat_name: http.request.referrer + ignore_above: 1024 + level: extended + name: request.referrer + normalize: [] + short: Referrer for this HTTP request. + type: keyword + http.response.body.bytes: + dashed_name: http-response-body-bytes + description: Size in bytes of the response body. + example: 887 + flat_name: http.response.body.bytes + format: bytes + level: extended + name: response.body.bytes + normalize: [] + short: Size in bytes of the response body. + type: long + http.response.body.content: + dashed_name: http-response-body-content + description: The full HTTP response body. + example: Hello world + flat_name: http.response.body.content + level: extended + multi_fields: + - flat_name: http.response.body.content.text + name: text + type: match_only_text + name: response.body.content + normalize: [] + short: The full HTTP response body. + type: wildcard + http.response.bytes: + dashed_name: http-response-bytes + description: Total size in bytes of the response (body and headers). + example: 1437 + flat_name: http.response.bytes + format: bytes + level: extended + name: response.bytes + normalize: [] + short: Total size in bytes of the response (body and headers). + type: long + http.response.mime_type: + dashed_name: http-response-mime-type + description: 'Mime type of the body of the response. + + This value must only be populated based on the content of the response body, + not on the `Content-Type` header. Comparing the mime type of a response with + the response''s Content-Type header can be helpful in detecting misconfigured + servers.' + example: image/gif + flat_name: http.response.mime_type + ignore_above: 1024 + level: extended + name: response.mime_type + normalize: [] + short: Mime type of the body of the response. + type: keyword + http.response.status_code: + dashed_name: http-response-status-code + description: HTTP response status code. + example: 404 + flat_name: http.response.status_code + format: string + level: extended + name: response.status_code + normalize: [] + short: HTTP response status code. + type: long + http.version: + dashed_name: http-version + description: HTTP version. + example: 1.1 + flat_name: http.version + ignore_above: 1024 + level: extended + name: version + normalize: [] + short: HTTP version. + type: keyword + group: 2 + name: http + prefix: http. + short: Fields describing an HTTP request. + title: HTTP + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group +url: + description: URL fields provide support for complete or partial URLs, and supports + the breaking down into scheme, domain, path, and so on. + fields: + url.domain: + dashed_name: url-domain + description: 'Domain of the url, such as "www.elastic.co". + + In some cases a URL may refer to an IP and/or port directly, without a domain + name. In this case, the IP address would go to the `domain` field. + + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC + 2732), the `[` and `]` characters should also be captured in the `domain` + field.' + example: www.elastic.co + flat_name: url.domain + ignore_above: 1024 + level: extended + name: domain + normalize: [] + short: Domain of the url. + type: keyword + url.extension: + dashed_name: url-extension + description: 'The field contains the file extension from the original request + url, excluding the leading dot. + + The file extension is only set if it exists, as not every url has a file extension. + + The leading period must not be included. For example, the value must be "png", + not ".png". + + Note that when the file name has multiple extensions (example.tar.gz), only + the last one should be captured ("gz", not "tar.gz").' + example: png + flat_name: url.extension + ignore_above: 1024 + level: extended + name: extension + normalize: [] + short: File extension from the request url, excluding the leading dot. + type: keyword + url.fragment: + dashed_name: url-fragment + description: 'Portion of the url after the `#`, such as "top". + + The `#` is not part of the fragment.' + flat_name: url.fragment + ignore_above: 1024 + level: extended + name: fragment + normalize: [] + short: Portion of the url after the `#`. + type: keyword + url.full: + dashed_name: url-full + description: If full URLs are important to your use case, they should be stored + in `url.full`, whether this field is reconstructed or present in the event + source. + example: https://www.elastic.co:443/search?q=elasticsearch#top + flat_name: url.full + level: extended + multi_fields: + - flat_name: url.full.text + name: text + type: match_only_text + name: full + normalize: [] + short: Full unparsed URL. + type: wildcard + url.original: + dashed_name: url-original + description: 'Unmodified original url as seen in the event source. + + Note that in network monitoring, the observed URL may be a full URL, whereas + in access logs, the URL is often just represented as a path. + + This field is meant to represent the URL as it was observed, complete or not.' + example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch + flat_name: url.original + level: extended + multi_fields: + - flat_name: url.original.text + name: text + type: match_only_text + name: original + normalize: [] + short: Unmodified original url as seen in the event source. + type: wildcard + url.password: + dashed_name: url-password + description: Password of the request. + flat_name: url.password + ignore_above: 1024 + level: extended + name: password + normalize: [] + short: Password of the request. + type: keyword + url.path: + dashed_name: url-path + description: Path of the request, such as "/search". + flat_name: url.path + level: extended + name: path + normalize: [] + short: Path of the request, such as "/search". + type: wildcard + url.port: + dashed_name: url-port + description: Port of the request, such as 443. + example: 443 + flat_name: url.port + format: string + level: extended + name: port + normalize: [] + short: Port of the request, such as 443. + type: long + url.query: + dashed_name: url-query + description: 'The query field describes the query string of the request, such + as "q=elasticsearch". + + The `?` is excluded from the query string. If a URL contains no `?`, there + is no query field. If there is a `?` but no query, the query field exists + with an empty string. The `exists` query can be used to differentiate between + the two cases.' + flat_name: url.query + ignore_above: 1024 + level: extended + name: query + normalize: [] + short: Query string of the request. + type: keyword + url.registered_domain: + dashed_name: url-registered-domain + description: 'The highest registered url domain, stripped of the subdomain. + + For example, the registered domain for "foo.example.com" is "example.com". + + This value can be determined precisely with a list like the public suffix + list (http://publicsuffix.org). Trying to approximate this by simply taking + the last two labels will not work well for TLDs such as "co.uk".' + example: example.com + flat_name: url.registered_domain + ignore_above: 1024 + level: extended + name: registered_domain + normalize: [] + short: The highest registered url domain, stripped of the subdomain. + type: keyword + url.scheme: + dashed_name: url-scheme + description: 'Scheme of the request, such as "https". + + Note: The `:` is not part of the scheme.' + example: https + flat_name: url.scheme + ignore_above: 1024 + level: extended + name: scheme + normalize: [] + short: Scheme of the url. + type: keyword + url.subdomain: + dashed_name: url-subdomain + description: 'The subdomain portion of a fully qualified domain name includes + all of the names except the host name under the registered_domain. In a partially + qualified domain, or if the the qualification level of the full name cannot + be determined, subdomain contains all of the names below the registered domain. + + For example the subdomain portion of "www.east.mydomain.co.uk" is "east". + If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", + the subdomain field should contain "sub2.sub1", with no trailing period.' + example: east + flat_name: url.subdomain + ignore_above: 1024 + level: extended + name: subdomain + normalize: [] + short: The subdomain of the domain. + type: keyword + url.top_level_domain: + dashed_name: url-top-level-domain + description: 'The effective top level domain (eTLD), also known as the domain + suffix, is the last part of the domain name. For example, the top level domain + for example.com is "com". + + This value can be determined precisely with a list like the public suffix + list (http://publicsuffix.org). Trying to approximate this by simply taking + the last label will not work well for effective TLDs such as "co.uk".' + example: co.uk + flat_name: url.top_level_domain + ignore_above: 1024 + level: extended + name: top_level_domain + normalize: [] + short: The effective top level domain (com, org, net, co.uk). + type: keyword + url.username: + dashed_name: url-username + description: Username of the request. + flat_name: url.username + ignore_above: 1024 + level: extended + name: username + normalize: [] + short: Username of the request. + type: keyword + group: 2 + name: url + prefix: url. + reusable: + expected: + - as: url + at: threat.indicator + full: threat.indicator.url + - as: url + at: threat.enrichments.indicator + beta: Reusing the `url` fields in this location is currently considered beta. + full: threat.enrichments.indicator.url + top_level: true + short: Fields that let you store URLs in various forms. + title: URL + type: group +user: + description: 'The user fields describe information about the user that is relevant + to the event. + + Fields can have one entry or multiple entries. If a user has more than one id, + provide an array that includes all of them.' + fields: + user.id: + dashed_name: user-id + description: Unique identifier of the user. + example: S-1-5-21-202424912787-2692429404-2351956786-1000 + flat_name: user.id + ignore_above: 1024 + level: core + name: id + normalize: [] + short: Unique identifier of the user. + type: keyword + user.name: + dashed_name: user-name + description: Short name or login of the user. + example: a.einstein + flat_name: user.name + ignore_above: 1024 + level: core + multi_fields: + - flat_name: user.name.text + name: text + type: match_only_text + name: name + normalize: [] + short: Short name or login of the user. + type: keyword + user.roles: + dashed_name: user-roles + description: Array of user roles at the time of the event. + example: '["kibana_admin", "reporting_user"]' + flat_name: user.roles + ignore_above: 1024 + level: extended + name: roles + normalize: + - array + short: Array of user roles at the time of the event. + type: keyword + group: 2 + name: user + nestings: + - user.changes + - user.effective + - user.group + - user.target + prefix: user. + reusable: + expected: + - as: user + at: client + full: client.user + - as: user + at: destination + full: destination.user + - as: user + at: server + full: server.user + - as: user + at: source + full: source.user + - as: target + at: user + full: user.target + short_override: Targeted user of action taken. + - as: effective + at: user + full: user.effective + short_override: User whose privileges were assumed. + - as: changes + at: user + full: user.changes + short_override: Captures changes made to a user. + top_level: true + reused_here: + - full: user.group + schema_name: group + short: User's group relevant to the event. + - full: user.target + schema_name: user + short: Targeted user of action taken. + - full: user.effective + schema_name: user + short: User whose privileges were assumed. + - full: user.changes + schema_name: user + short: Captures changes made to a user. + short: Fields to describe the user relevant to the event. + title: User + type: group +user_agent: + description: 'The user_agent fields normally come from a browser request. + + They often show up in web service logs coming from the parsed user agent string.' + fields: + user_agent.original: + dashed_name: user-agent-original + description: Unparsed user_agent string. + example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 + (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 + flat_name: user_agent.original + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: user_agent.original.text + name: text + type: match_only_text + name: original + normalize: [] + short: Unparsed user_agent string. + type: keyword + group: 2 + name: user_agent + nestings: + - user_agent.os + prefix: user_agent. + reused_here: + - full: user_agent.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields to describe a browser user_agent string. + title: User agent + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/subset/admin_console/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/subset/admin_console/ecs_flat.yml new file mode 100644 index 0000000000000..c6392b4765c38 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/subset/admin_console/ecs_flat.yml @@ -0,0 +1,749 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +event.action: + dashed_name: event-action + description: 'The action captured by the event. + + This describes the information in the event. It is more specific than `event.category`. + Examples are `group-add`, `process-started`, `file-created`. The value is normally + defined by the implementer.' + example: user-password-change + flat_name: event.action + ignore_above: 1024 + level: core + name: action + normalize: [] + short: The action captured by the event. + type: keyword +event.category: + allowed_values: + - description: Events in this category are related to the challenge and response + process in which credentials are supplied and verified to allow the creation + of a session. Common sources for these logs are Windows event logs and ssh logs. + Visualize and analyze events in this category to look for failed logins, and + other authentication-related activity. + expected_event_types: + - start + - end + - info + name: authentication + - description: 'Events in the configuration category have to deal with creating, + modifying, or deleting the settings or parameters of an application, process, + or system. + + Example sources include security policy change logs, configuration auditing + logging, and system integrity monitoring.' + expected_event_types: + - access + - change + - creation + - deletion + - info + name: configuration + - description: The database category denotes events and metrics relating to a data + storage and retrieval system. Note that use of this category is not limited + to relational database systems. Examples include event logs from MS SQL, MySQL, + Elasticsearch, MongoDB, etc. Use this category to visualize and analyze database + activity such as accesses and changes. + expected_event_types: + - access + - change + - info + - error + name: database + - description: 'Events in the driver category have to do with operating system device + drivers and similar software entities such as Windows drivers, kernel extensions, + kernel modules, etc. + + Use events and metrics in this category to visualize and analyze driver-related + activity and status on hosts.' + expected_event_types: + - change + - end + - info + - start + name: driver + - description: Relating to a set of information that has been created on, or has + existed on a filesystem. Use this category of events to visualize and analyze + the creation, access, and deletions of files. Events in this category can come + from both host-based and network-based sources. An example source of a network-based + detection of a file transfer would be the Zeek file.log. + expected_event_types: + - change + - creation + - deletion + - info + name: file + - description: 'Use this category to visualize and analyze information such as host + inventory or host lifecycle events. + + Most of the events in this category can usually be observed from the outside, + such as from a hypervisor or a control plane''s point of view. Some can also + be seen from within, such as "start" or "end". + + Note that this category is for information about hosts themselves; it is not + meant to capture activity "happening on a host".' + expected_event_types: + - access + - change + - end + - info + - start + name: host + - description: Identity and access management (IAM) events relating to users, groups, + and administration. Use this category to visualize and analyze IAM-related logs + and data from active directory, LDAP, Okta, Duo, and other IAM systems. + expected_event_types: + - admin + - change + - creation + - deletion + - group + - info + - user + name: iam + - description: Relating to intrusion detections from IDS/IPS systems and functions, + both network and host-based. Use this category to visualize and analyze intrusion + detection alerts from systems such as Snort, Suricata, and Palo Alto threat + detections. + expected_event_types: + - allowed + - denied + - info + name: intrusion_detection + - description: Malware detection events and alerts. Use this category to visualize + and analyze malware detections from EDR/EPP systems such as Elastic Endpoint + Security, Symantec Endpoint Protection, Crowdstrike, and network IDS/IPS systems + such as Suricata, or other sources of malware-related events such as Palo Alto + Networks threat logs and Wildfire logs. + expected_event_types: + - info + name: malware + - description: Relating to all network activity, including network connection lifecycle, + network traffic, and essentially any event that includes an IP address. Many + events containing decoded network protocol transactions fit into this category. + Use events in this category to visualize or analyze counts of network ports, + protocols, addresses, geolocation information, etc. + expected_event_types: + - access + - allowed + - connection + - denied + - end + - info + - protocol + - start + name: network + - description: Relating to software packages installed on hosts. Use this category + to visualize and analyze inventory of software installed on various hosts, or + to determine host vulnerability in the absence of vulnerability scan data. + expected_event_types: + - access + - change + - deletion + - info + - installation + - start + name: package + - description: Use this category of events to visualize and analyze process-specific + information such as lifecycle events or process ancestry. + expected_event_types: + - access + - change + - end + - info + - start + name: process + - description: Having to do with settings and assets stored in the Windows registry. + Use this category to visualize and analyze activity such as registry access + and modifications. + expected_event_types: + - access + - change + - creation + - deletion + name: registry + - description: The session category is applied to events and metrics regarding logical + persistent connections to hosts and services. Use this category to visualize + and analyze interactive or automated persistent connections between assets. + Data for this category may come from Windows Event logs, SSH logs, or stateless + sessions such as HTTP cookie-based sessions, etc. + expected_event_types: + - start + - end + - info + name: session + - description: Use this category to visualize and analyze events describing threat + actors' targets, motives, or behaviors. + expected_event_types: + - indicator + name: threat + - description: 'Relating to web server access. Use this category to create a dashboard + of web server/proxy activity from apache, IIS, nginx web servers, etc. Note: + events from network observers such as Zeek http log may also be included in + this category.' + expected_event_types: + - access + - error + - info + name: web + dashed_name: event-category + description: 'This is one of four ECS Categorization Fields, and indicates the second + level in the ECS category hierarchy. + + `event.category` represents the "big buckets" of ECS categories. For example, + filtering on `event.category:process` yields all events relating to process activity. + This field is closely related to `event.type`, which is used as a subcategory. + + This field is an array. This will allow proper categorization of some events that + fall in multiple categories.' + example: authentication + flat_name: event.category + ignore_above: 1024 + level: core + name: category + normalize: + - array + short: Event category. The second categorization field in the hierarchy. + type: keyword +event.duration: + dashed_name: event-duration + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference between + the end and start time.' + flat_name: event.duration + format: duration + input_format: nanoseconds + level: core + name: duration + normalize: [] + output_format: asMilliseconds + output_precision: 1 + short: Duration of the event in nanoseconds. + type: long +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +http.request.body.bytes: + dashed_name: http-request-body-bytes + description: Size in bytes of the request body. + example: 887 + flat_name: http.request.body.bytes + format: bytes + level: extended + name: request.body.bytes + normalize: [] + short: Size in bytes of the request body. + type: long +http.request.body.content: + dashed_name: http-request-body-content + description: The full HTTP request body. + example: Hello world + flat_name: http.request.body.content + level: extended + multi_fields: + - flat_name: http.request.body.content.text + name: text + type: match_only_text + name: request.body.content + normalize: [] + short: The full HTTP request body. + type: wildcard +http.request.bytes: + dashed_name: http-request-bytes + description: Total size in bytes of the request (body and headers). + example: 1437 + flat_name: http.request.bytes + format: bytes + level: extended + name: request.bytes + normalize: [] + short: Total size in bytes of the request (body and headers). + type: long +http.request.id: + dashed_name: http-request-id + description: 'A unique identifier for each HTTP request to correlate logs between + clients and servers in transactions. + + The id may be contained in a non-standard HTTP header, such as `X-Request-ID` + or `X-Correlation-ID`.' + example: 123e4567-e89b-12d3-a456-426614174000 + flat_name: http.request.id + ignore_above: 1024 + level: extended + name: request.id + normalize: [] + short: HTTP request ID. + type: keyword +http.request.method: + dashed_name: http-request-method + description: 'HTTP request method. + + The value should retain its casing from the original event. For example, `GET`, + `get`, and `GeT` are all considered valid values for this field.' + example: POST + flat_name: http.request.method + ignore_above: 1024 + level: extended + name: request.method + normalize: [] + short: HTTP request method. + type: keyword +http.request.mime_type: + dashed_name: http-request-mime-type + description: 'Mime type of the body of the request. + + This value must only be populated based on the content of the request body, not + on the `Content-Type` header. Comparing the mime type of a request with the request''s + Content-Type header can be helpful in detecting threats or misconfigured clients.' + example: image/gif + flat_name: http.request.mime_type + ignore_above: 1024 + level: extended + name: request.mime_type + normalize: [] + short: Mime type of the body of the request. + type: keyword +http.request.referrer: + dashed_name: http-request-referrer + description: Referrer for this HTTP request. + example: https://blog.example.com/ + flat_name: http.request.referrer + ignore_above: 1024 + level: extended + name: request.referrer + normalize: [] + short: Referrer for this HTTP request. + type: keyword +http.response.body.bytes: + dashed_name: http-response-body-bytes + description: Size in bytes of the response body. + example: 887 + flat_name: http.response.body.bytes + format: bytes + level: extended + name: response.body.bytes + normalize: [] + short: Size in bytes of the response body. + type: long +http.response.body.content: + dashed_name: http-response-body-content + description: The full HTTP response body. + example: Hello world + flat_name: http.response.body.content + level: extended + multi_fields: + - flat_name: http.response.body.content.text + name: text + type: match_only_text + name: response.body.content + normalize: [] + short: The full HTTP response body. + type: wildcard +http.response.bytes: + dashed_name: http-response-bytes + description: Total size in bytes of the response (body and headers). + example: 1437 + flat_name: http.response.bytes + format: bytes + level: extended + name: response.bytes + normalize: [] + short: Total size in bytes of the response (body and headers). + type: long +http.response.mime_type: + dashed_name: http-response-mime-type + description: 'Mime type of the body of the response. + + This value must only be populated based on the content of the response body, not + on the `Content-Type` header. Comparing the mime type of a response with the response''s + Content-Type header can be helpful in detecting misconfigured servers.' + example: image/gif + flat_name: http.response.mime_type + ignore_above: 1024 + level: extended + name: response.mime_type + normalize: [] + short: Mime type of the body of the response. + type: keyword +http.response.status_code: + dashed_name: http-response-status-code + description: HTTP response status code. + example: 404 + flat_name: http.response.status_code + format: string + level: extended + name: response.status_code + normalize: [] + short: HTTP response status code. + type: long +http.version: + dashed_name: http-version + description: HTTP version. + example: 1.1 + flat_name: http.version + ignore_above: 1024 + level: extended + name: version + normalize: [] + short: HTTP version. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword +url.domain: + dashed_name: url-domain + description: 'Domain of the url, such as "www.elastic.co". + + In some cases a URL may refer to an IP and/or port directly, without a domain + name. In this case, the IP address would go to the `domain` field. + + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), + the `[` and `]` characters should also be captured in the `domain` field.' + example: www.elastic.co + flat_name: url.domain + ignore_above: 1024 + level: extended + name: domain + normalize: [] + short: Domain of the url. + type: keyword +url.extension: + dashed_name: url-extension + description: 'The field contains the file extension from the original request url, + excluding the leading dot. + + The file extension is only set if it exists, as not every url has a file extension. + + The leading period must not be included. For example, the value must be "png", + not ".png". + + Note that when the file name has multiple extensions (example.tar.gz), only the + last one should be captured ("gz", not "tar.gz").' + example: png + flat_name: url.extension + ignore_above: 1024 + level: extended + name: extension + normalize: [] + short: File extension from the request url, excluding the leading dot. + type: keyword +url.fragment: + dashed_name: url-fragment + description: 'Portion of the url after the `#`, such as "top". + + The `#` is not part of the fragment.' + flat_name: url.fragment + ignore_above: 1024 + level: extended + name: fragment + normalize: [] + short: Portion of the url after the `#`. + type: keyword +url.full: + dashed_name: url-full + description: If full URLs are important to your use case, they should be stored + in `url.full`, whether this field is reconstructed or present in the event source. + example: https://www.elastic.co:443/search?q=elasticsearch#top + flat_name: url.full + level: extended + multi_fields: + - flat_name: url.full.text + name: text + type: match_only_text + name: full + normalize: [] + short: Full unparsed URL. + type: wildcard +url.original: + dashed_name: url-original + description: 'Unmodified original url as seen in the event source. + + Note that in network monitoring, the observed URL may be a full URL, whereas in + access logs, the URL is often just represented as a path. + + This field is meant to represent the URL as it was observed, complete or not.' + example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch + flat_name: url.original + level: extended + multi_fields: + - flat_name: url.original.text + name: text + type: match_only_text + name: original + normalize: [] + short: Unmodified original url as seen in the event source. + type: wildcard +url.password: + dashed_name: url-password + description: Password of the request. + flat_name: url.password + ignore_above: 1024 + level: extended + name: password + normalize: [] + short: Password of the request. + type: keyword +url.path: + dashed_name: url-path + description: Path of the request, such as "/search". + flat_name: url.path + level: extended + name: path + normalize: [] + short: Path of the request, such as "/search". + type: wildcard +url.port: + dashed_name: url-port + description: Port of the request, such as 443. + example: 443 + flat_name: url.port + format: string + level: extended + name: port + normalize: [] + short: Port of the request, such as 443. + type: long +url.query: + dashed_name: url-query + description: 'The query field describes the query string of the request, such as + "q=elasticsearch". + + The `?` is excluded from the query string. If a URL contains no `?`, there is + no query field. If there is a `?` but no query, the query field exists with an + empty string. The `exists` query can be used to differentiate between the two + cases.' + flat_name: url.query + ignore_above: 1024 + level: extended + name: query + normalize: [] + short: Query string of the request. + type: keyword +url.registered_domain: + dashed_name: url-registered-domain + description: 'The highest registered url domain, stripped of the subdomain. + + For example, the registered domain for "foo.example.com" is "example.com". + + This value can be determined precisely with a list like the public suffix list + (http://publicsuffix.org). Trying to approximate this by simply taking the last + two labels will not work well for TLDs such as "co.uk".' + example: example.com + flat_name: url.registered_domain + ignore_above: 1024 + level: extended + name: registered_domain + normalize: [] + short: The highest registered url domain, stripped of the subdomain. + type: keyword +url.scheme: + dashed_name: url-scheme + description: 'Scheme of the request, such as "https". + + Note: The `:` is not part of the scheme.' + example: https + flat_name: url.scheme + ignore_above: 1024 + level: extended + name: scheme + normalize: [] + short: Scheme of the url. + type: keyword +url.subdomain: + dashed_name: url-subdomain + description: 'The subdomain portion of a fully qualified domain name includes all + of the names except the host name under the registered_domain. In a partially + qualified domain, or if the the qualification level of the full name cannot be + determined, subdomain contains all of the names below the registered domain. + + For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the + domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the + subdomain field should contain "sub2.sub1", with no trailing period.' + example: east + flat_name: url.subdomain + ignore_above: 1024 + level: extended + name: subdomain + normalize: [] + short: The subdomain of the domain. + type: keyword +url.top_level_domain: + dashed_name: url-top-level-domain + description: 'The effective top level domain (eTLD), also known as the domain suffix, + is the last part of the domain name. For example, the top level domain for example.com + is "com". + + This value can be determined precisely with a list like the public suffix list + (http://publicsuffix.org). Trying to approximate this by simply taking the last + label will not work well for effective TLDs such as "co.uk".' + example: co.uk + flat_name: url.top_level_domain + ignore_above: 1024 + level: extended + name: top_level_domain + normalize: [] + short: The effective top level domain (com, org, net, co.uk). + type: keyword +url.username: + dashed_name: url-username + description: Username of the request. + flat_name: url.username + ignore_above: 1024 + level: extended + name: username + normalize: [] + short: Username of the request. + type: keyword +user.id: + dashed_name: user-id + description: Unique identifier of the user. + example: S-1-5-21-202424912787-2692429404-2351956786-1000 + flat_name: user.id + ignore_above: 1024 + level: core + name: id + normalize: [] + short: Unique identifier of the user. + type: keyword +user.name: + dashed_name: user-name + description: Short name or login of the user. + example: a.einstein + flat_name: user.name + ignore_above: 1024 + level: core + multi_fields: + - flat_name: user.name.text + name: text + type: match_only_text + name: name + normalize: [] + short: Short name or login of the user. + type: keyword +user.roles: + dashed_name: user-roles + description: Array of user roles at the time of the event. + example: '["kibana_admin", "reporting_user"]' + flat_name: user.roles + ignore_above: 1024 + level: extended + name: roles + normalize: + - array + short: Array of user roles at the time of the event. + type: keyword +user_agent.original: + dashed_name: user-agent-original + description: Unparsed user_agent string. + example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 + (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 + flat_name: user_agent.original + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: user_agent.original.text + name: text + type: match_only_text + name: original + normalize: [] + short: Unparsed user_agent string. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/subset/admin_console/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/subset/admin_console/ecs_nested.yml new file mode 100644 index 0000000000000..9bdff40451462 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/ecs/subset/admin_console/ecs_nested.yml @@ -0,0 +1,932 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +event: + description: 'The event fields are used for context information about the log or + metric event itself. + + A log is defined as an event containing details of something that happened. Log + events must include the time at which the thing happened. Examples of log events + include a process starting on a host, a network packet being sent from a source + to a destination, or a network connection between a client and a server being + initiated or closed. A metric is defined as an event containing one or more numerical + measurements and the time at which the measurement was taken. Examples of metric + events include memory pressure measured on a host and device temperature. See + the `event.kind` definition in this section for additional details about metric + and state events.' + fields: + event.action: + dashed_name: event-action + description: 'The action captured by the event. + + This describes the information in the event. It is more specific than `event.category`. + Examples are `group-add`, `process-started`, `file-created`. The value is + normally defined by the implementer.' + example: user-password-change + flat_name: event.action + ignore_above: 1024 + level: core + name: action + normalize: [] + short: The action captured by the event. + type: keyword + event.category: + allowed_values: + - description: Events in this category are related to the challenge and response + process in which credentials are supplied and verified to allow the creation + of a session. Common sources for these logs are Windows event logs and ssh + logs. Visualize and analyze events in this category to look for failed logins, + and other authentication-related activity. + expected_event_types: + - start + - end + - info + name: authentication + - description: 'Events in the configuration category have to deal with creating, + modifying, or deleting the settings or parameters of an application, process, + or system. + + Example sources include security policy change logs, configuration auditing + logging, and system integrity monitoring.' + expected_event_types: + - access + - change + - creation + - deletion + - info + name: configuration + - description: The database category denotes events and metrics relating to + a data storage and retrieval system. Note that use of this category is not + limited to relational database systems. Examples include event logs from + MS SQL, MySQL, Elasticsearch, MongoDB, etc. Use this category to visualize + and analyze database activity such as accesses and changes. + expected_event_types: + - access + - change + - info + - error + name: database + - description: 'Events in the driver category have to do with operating system + device drivers and similar software entities such as Windows drivers, kernel + extensions, kernel modules, etc. + + Use events and metrics in this category to visualize and analyze driver-related + activity and status on hosts.' + expected_event_types: + - change + - end + - info + - start + name: driver + - description: Relating to a set of information that has been created on, or + has existed on a filesystem. Use this category of events to visualize and + analyze the creation, access, and deletions of files. Events in this category + can come from both host-based and network-based sources. An example source + of a network-based detection of a file transfer would be the Zeek file.log. + expected_event_types: + - change + - creation + - deletion + - info + name: file + - description: 'Use this category to visualize and analyze information such + as host inventory or host lifecycle events. + + Most of the events in this category can usually be observed from the outside, + such as from a hypervisor or a control plane''s point of view. Some can + also be seen from within, such as "start" or "end". + + Note that this category is for information about hosts themselves; it is + not meant to capture activity "happening on a host".' + expected_event_types: + - access + - change + - end + - info + - start + name: host + - description: Identity and access management (IAM) events relating to users, + groups, and administration. Use this category to visualize and analyze IAM-related + logs and data from active directory, LDAP, Okta, Duo, and other IAM systems. + expected_event_types: + - admin + - change + - creation + - deletion + - group + - info + - user + name: iam + - description: Relating to intrusion detections from IDS/IPS systems and functions, + both network and host-based. Use this category to visualize and analyze + intrusion detection alerts from systems such as Snort, Suricata, and Palo + Alto threat detections. + expected_event_types: + - allowed + - denied + - info + name: intrusion_detection + - description: Malware detection events and alerts. Use this category to visualize + and analyze malware detections from EDR/EPP systems such as Elastic Endpoint + Security, Symantec Endpoint Protection, Crowdstrike, and network IDS/IPS + systems such as Suricata, or other sources of malware-related events such + as Palo Alto Networks threat logs and Wildfire logs. + expected_event_types: + - info + name: malware + - description: Relating to all network activity, including network connection + lifecycle, network traffic, and essentially any event that includes an IP + address. Many events containing decoded network protocol transactions fit + into this category. Use events in this category to visualize or analyze + counts of network ports, protocols, addresses, geolocation information, + etc. + expected_event_types: + - access + - allowed + - connection + - denied + - end + - info + - protocol + - start + name: network + - description: Relating to software packages installed on hosts. Use this category + to visualize and analyze inventory of software installed on various hosts, + or to determine host vulnerability in the absence of vulnerability scan + data. + expected_event_types: + - access + - change + - deletion + - info + - installation + - start + name: package + - description: Use this category of events to visualize and analyze process-specific + information such as lifecycle events or process ancestry. + expected_event_types: + - access + - change + - end + - info + - start + name: process + - description: Having to do with settings and assets stored in the Windows registry. + Use this category to visualize and analyze activity such as registry access + and modifications. + expected_event_types: + - access + - change + - creation + - deletion + name: registry + - description: The session category is applied to events and metrics regarding + logical persistent connections to hosts and services. Use this category + to visualize and analyze interactive or automated persistent connections + between assets. Data for this category may come from Windows Event logs, + SSH logs, or stateless sessions such as HTTP cookie-based sessions, etc. + expected_event_types: + - start + - end + - info + name: session + - description: Use this category to visualize and analyze events describing + threat actors' targets, motives, or behaviors. + expected_event_types: + - indicator + name: threat + - description: 'Relating to web server access. Use this category to create a + dashboard of web server/proxy activity from apache, IIS, nginx web servers, + etc. Note: events from network observers such as Zeek http log may also + be included in this category.' + expected_event_types: + - access + - error + - info + name: web + dashed_name: event-category + description: 'This is one of four ECS Categorization Fields, and indicates the + second level in the ECS category hierarchy. + + `event.category` represents the "big buckets" of ECS categories. For example, + filtering on `event.category:process` yields all events relating to process + activity. This field is closely related to `event.type`, which is used as + a subcategory. + + This field is an array. This will allow proper categorization of some events + that fall in multiple categories.' + example: authentication + flat_name: event.category + ignore_above: 1024 + level: core + name: category + normalize: + - array + short: Event category. The second categorization field in the hierarchy. + type: keyword + event.duration: + dashed_name: event-duration + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference + between the end and start time.' + flat_name: event.duration + format: duration + input_format: nanoseconds + level: core + name: duration + normalize: [] + output_format: asMilliseconds + output_precision: 1 + short: Duration of the event in nanoseconds. + type: long + group: 2 + name: event + prefix: event. + short: Fields breaking down the event details. + title: Event + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +http: + description: Fields related to HTTP activity. Use the `url` field set to store the + url of the request. + fields: + http.request.body.bytes: + dashed_name: http-request-body-bytes + description: Size in bytes of the request body. + example: 887 + flat_name: http.request.body.bytes + format: bytes + level: extended + name: request.body.bytes + normalize: [] + short: Size in bytes of the request body. + type: long + http.request.body.content: + dashed_name: http-request-body-content + description: The full HTTP request body. + example: Hello world + flat_name: http.request.body.content + level: extended + multi_fields: + - flat_name: http.request.body.content.text + name: text + type: match_only_text + name: request.body.content + normalize: [] + short: The full HTTP request body. + type: wildcard + http.request.bytes: + dashed_name: http-request-bytes + description: Total size in bytes of the request (body and headers). + example: 1437 + flat_name: http.request.bytes + format: bytes + level: extended + name: request.bytes + normalize: [] + short: Total size in bytes of the request (body and headers). + type: long + http.request.id: + dashed_name: http-request-id + description: 'A unique identifier for each HTTP request to correlate logs between + clients and servers in transactions. + + The id may be contained in a non-standard HTTP header, such as `X-Request-ID` + or `X-Correlation-ID`.' + example: 123e4567-e89b-12d3-a456-426614174000 + flat_name: http.request.id + ignore_above: 1024 + level: extended + name: request.id + normalize: [] + short: HTTP request ID. + type: keyword + http.request.method: + dashed_name: http-request-method + description: 'HTTP request method. + + The value should retain its casing from the original event. For example, `GET`, + `get`, and `GeT` are all considered valid values for this field.' + example: POST + flat_name: http.request.method + ignore_above: 1024 + level: extended + name: request.method + normalize: [] + short: HTTP request method. + type: keyword + http.request.mime_type: + dashed_name: http-request-mime-type + description: 'Mime type of the body of the request. + + This value must only be populated based on the content of the request body, + not on the `Content-Type` header. Comparing the mime type of a request with + the request''s Content-Type header can be helpful in detecting threats or + misconfigured clients.' + example: image/gif + flat_name: http.request.mime_type + ignore_above: 1024 + level: extended + name: request.mime_type + normalize: [] + short: Mime type of the body of the request. + type: keyword + http.request.referrer: + dashed_name: http-request-referrer + description: Referrer for this HTTP request. + example: https://blog.example.com/ + flat_name: http.request.referrer + ignore_above: 1024 + level: extended + name: request.referrer + normalize: [] + short: Referrer for this HTTP request. + type: keyword + http.response.body.bytes: + dashed_name: http-response-body-bytes + description: Size in bytes of the response body. + example: 887 + flat_name: http.response.body.bytes + format: bytes + level: extended + name: response.body.bytes + normalize: [] + short: Size in bytes of the response body. + type: long + http.response.body.content: + dashed_name: http-response-body-content + description: The full HTTP response body. + example: Hello world + flat_name: http.response.body.content + level: extended + multi_fields: + - flat_name: http.response.body.content.text + name: text + type: match_only_text + name: response.body.content + normalize: [] + short: The full HTTP response body. + type: wildcard + http.response.bytes: + dashed_name: http-response-bytes + description: Total size in bytes of the response (body and headers). + example: 1437 + flat_name: http.response.bytes + format: bytes + level: extended + name: response.bytes + normalize: [] + short: Total size in bytes of the response (body and headers). + type: long + http.response.mime_type: + dashed_name: http-response-mime-type + description: 'Mime type of the body of the response. + + This value must only be populated based on the content of the response body, + not on the `Content-Type` header. Comparing the mime type of a response with + the response''s Content-Type header can be helpful in detecting misconfigured + servers.' + example: image/gif + flat_name: http.response.mime_type + ignore_above: 1024 + level: extended + name: response.mime_type + normalize: [] + short: Mime type of the body of the response. + type: keyword + http.response.status_code: + dashed_name: http-response-status-code + description: HTTP response status code. + example: 404 + flat_name: http.response.status_code + format: string + level: extended + name: response.status_code + normalize: [] + short: HTTP response status code. + type: long + http.version: + dashed_name: http-version + description: HTTP version. + example: 1.1 + flat_name: http.version + ignore_above: 1024 + level: extended + name: version + normalize: [] + short: HTTP version. + type: keyword + group: 2 + name: http + prefix: http. + short: Fields describing an HTTP request. + title: HTTP + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group +url: + description: URL fields provide support for complete or partial URLs, and supports + the breaking down into scheme, domain, path, and so on. + fields: + url.domain: + dashed_name: url-domain + description: 'Domain of the url, such as "www.elastic.co". + + In some cases a URL may refer to an IP and/or port directly, without a domain + name. In this case, the IP address would go to the `domain` field. + + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC + 2732), the `[` and `]` characters should also be captured in the `domain` + field.' + example: www.elastic.co + flat_name: url.domain + ignore_above: 1024 + level: extended + name: domain + normalize: [] + short: Domain of the url. + type: keyword + url.extension: + dashed_name: url-extension + description: 'The field contains the file extension from the original request + url, excluding the leading dot. + + The file extension is only set if it exists, as not every url has a file extension. + + The leading period must not be included. For example, the value must be "png", + not ".png". + + Note that when the file name has multiple extensions (example.tar.gz), only + the last one should be captured ("gz", not "tar.gz").' + example: png + flat_name: url.extension + ignore_above: 1024 + level: extended + name: extension + normalize: [] + short: File extension from the request url, excluding the leading dot. + type: keyword + url.fragment: + dashed_name: url-fragment + description: 'Portion of the url after the `#`, such as "top". + + The `#` is not part of the fragment.' + flat_name: url.fragment + ignore_above: 1024 + level: extended + name: fragment + normalize: [] + short: Portion of the url after the `#`. + type: keyword + url.full: + dashed_name: url-full + description: If full URLs are important to your use case, they should be stored + in `url.full`, whether this field is reconstructed or present in the event + source. + example: https://www.elastic.co:443/search?q=elasticsearch#top + flat_name: url.full + level: extended + multi_fields: + - flat_name: url.full.text + name: text + type: match_only_text + name: full + normalize: [] + short: Full unparsed URL. + type: wildcard + url.original: + dashed_name: url-original + description: 'Unmodified original url as seen in the event source. + + Note that in network monitoring, the observed URL may be a full URL, whereas + in access logs, the URL is often just represented as a path. + + This field is meant to represent the URL as it was observed, complete or not.' + example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch + flat_name: url.original + level: extended + multi_fields: + - flat_name: url.original.text + name: text + type: match_only_text + name: original + normalize: [] + short: Unmodified original url as seen in the event source. + type: wildcard + url.password: + dashed_name: url-password + description: Password of the request. + flat_name: url.password + ignore_above: 1024 + level: extended + name: password + normalize: [] + short: Password of the request. + type: keyword + url.path: + dashed_name: url-path + description: Path of the request, such as "/search". + flat_name: url.path + level: extended + name: path + normalize: [] + short: Path of the request, such as "/search". + type: wildcard + url.port: + dashed_name: url-port + description: Port of the request, such as 443. + example: 443 + flat_name: url.port + format: string + level: extended + name: port + normalize: [] + short: Port of the request, such as 443. + type: long + url.query: + dashed_name: url-query + description: 'The query field describes the query string of the request, such + as "q=elasticsearch". + + The `?` is excluded from the query string. If a URL contains no `?`, there + is no query field. If there is a `?` but no query, the query field exists + with an empty string. The `exists` query can be used to differentiate between + the two cases.' + flat_name: url.query + ignore_above: 1024 + level: extended + name: query + normalize: [] + short: Query string of the request. + type: keyword + url.registered_domain: + dashed_name: url-registered-domain + description: 'The highest registered url domain, stripped of the subdomain. + + For example, the registered domain for "foo.example.com" is "example.com". + + This value can be determined precisely with a list like the public suffix + list (http://publicsuffix.org). Trying to approximate this by simply taking + the last two labels will not work well for TLDs such as "co.uk".' + example: example.com + flat_name: url.registered_domain + ignore_above: 1024 + level: extended + name: registered_domain + normalize: [] + short: The highest registered url domain, stripped of the subdomain. + type: keyword + url.scheme: + dashed_name: url-scheme + description: 'Scheme of the request, such as "https". + + Note: The `:` is not part of the scheme.' + example: https + flat_name: url.scheme + ignore_above: 1024 + level: extended + name: scheme + normalize: [] + short: Scheme of the url. + type: keyword + url.subdomain: + dashed_name: url-subdomain + description: 'The subdomain portion of a fully qualified domain name includes + all of the names except the host name under the registered_domain. In a partially + qualified domain, or if the the qualification level of the full name cannot + be determined, subdomain contains all of the names below the registered domain. + + For example the subdomain portion of "www.east.mydomain.co.uk" is "east". + If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", + the subdomain field should contain "sub2.sub1", with no trailing period.' + example: east + flat_name: url.subdomain + ignore_above: 1024 + level: extended + name: subdomain + normalize: [] + short: The subdomain of the domain. + type: keyword + url.top_level_domain: + dashed_name: url-top-level-domain + description: 'The effective top level domain (eTLD), also known as the domain + suffix, is the last part of the domain name. For example, the top level domain + for example.com is "com". + + This value can be determined precisely with a list like the public suffix + list (http://publicsuffix.org). Trying to approximate this by simply taking + the last label will not work well for effective TLDs such as "co.uk".' + example: co.uk + flat_name: url.top_level_domain + ignore_above: 1024 + level: extended + name: top_level_domain + normalize: [] + short: The effective top level domain (com, org, net, co.uk). + type: keyword + url.username: + dashed_name: url-username + description: Username of the request. + flat_name: url.username + ignore_above: 1024 + level: extended + name: username + normalize: [] + short: Username of the request. + type: keyword + group: 2 + name: url + prefix: url. + reusable: + expected: + - as: url + at: threat.indicator + full: threat.indicator.url + - as: url + at: threat.enrichments.indicator + beta: Reusing the `url` fields in this location is currently considered beta. + full: threat.enrichments.indicator.url + top_level: true + short: Fields that let you store URLs in various forms. + title: URL + type: group +user: + description: 'The user fields describe information about the user that is relevant + to the event. + + Fields can have one entry or multiple entries. If a user has more than one id, + provide an array that includes all of them.' + fields: + user.id: + dashed_name: user-id + description: Unique identifier of the user. + example: S-1-5-21-202424912787-2692429404-2351956786-1000 + flat_name: user.id + ignore_above: 1024 + level: core + name: id + normalize: [] + short: Unique identifier of the user. + type: keyword + user.name: + dashed_name: user-name + description: Short name or login of the user. + example: a.einstein + flat_name: user.name + ignore_above: 1024 + level: core + multi_fields: + - flat_name: user.name.text + name: text + type: match_only_text + name: name + normalize: [] + short: Short name or login of the user. + type: keyword + user.roles: + dashed_name: user-roles + description: Array of user roles at the time of the event. + example: '["kibana_admin", "reporting_user"]' + flat_name: user.roles + ignore_above: 1024 + level: extended + name: roles + normalize: + - array + short: Array of user roles at the time of the event. + type: keyword + group: 2 + name: user + nestings: + - user.changes + - user.effective + - user.group + - user.target + prefix: user. + reusable: + expected: + - as: user + at: client + full: client.user + - as: user + at: destination + full: destination.user + - as: user + at: server + full: server.user + - as: user + at: source + full: source.user + - as: target + at: user + full: user.target + short_override: Targeted user of action taken. + - as: effective + at: user + full: user.effective + short_override: User whose privileges were assumed. + - as: changes + at: user + full: user.changes + short_override: Captures changes made to a user. + top_level: true + reused_here: + - full: user.group + schema_name: group + short: User's group relevant to the event. + - full: user.target + schema_name: user + short: Targeted user of action taken. + - full: user.effective + schema_name: user + short: User whose privileges were assumed. + - full: user.changes + schema_name: user + short: Captures changes made to a user. + short: Fields to describe the user relevant to the event. + title: User + type: group +user_agent: + description: 'The user_agent fields normally come from a browser request. + + They often show up in web service logs coming from the parsed user agent string.' + fields: + user_agent.original: + dashed_name: user-agent-original + description: Unparsed user_agent string. + example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 + (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 + flat_name: user_agent.original + ignore_above: 1024 + level: extended + multi_fields: + - flat_name: user_agent.original.text + name: text + type: match_only_text + name: original + normalize: [] + short: Unparsed user_agent string. + type: keyword + group: 2 + name: user_agent + nestings: + - user_agent.os + prefix: user_agent. + reused_here: + - full: user_agent.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields to describe a browser user_agent string. + title: User agent + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/base.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/base.json new file mode 100644 index 0000000000000..cebc9c2971745 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/base.json @@ -0,0 +1,25 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-base.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "@timestamp": { + "type": "date" + }, + "labels": { + "type": "object" + }, + "message": { + "type": "match_only_text" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/event.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/event.json new file mode 100644 index 0000000000000..42bb50ab2bb10 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/event.json @@ -0,0 +1,27 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-event.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "event": { + "properties": { + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "category": { + "ignore_above": 1024, + "type": "keyword" + }, + "duration": { + "type": "long" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/host.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/host.json new file mode 100644 index 0000000000000..3f9c7ae730291 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/host.json @@ -0,0 +1,20 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-host.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/http.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/http.json new file mode 100644 index 0000000000000..ec21145d167e6 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/http.json @@ -0,0 +1,87 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-http.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "http": { + "properties": { + "request": { + "properties": { + "body": { + "properties": { + "bytes": { + "type": "long" + }, + "content": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "wildcard" + } + } + }, + "bytes": { + "type": "long" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "method": { + "ignore_above": 1024, + "type": "keyword" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "referrer": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "response": { + "properties": { + "body": { + "properties": { + "bytes": { + "type": "long" + }, + "content": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "wildcard" + } + } + }, + "bytes": { + "type": "long" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "status_code": { + "type": "long" + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/log.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/log.json new file mode 100644 index 0000000000000..e43ca609d387e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/log.json @@ -0,0 +1,24 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-log.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/server.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/server.json new file mode 100644 index 0000000000000..1fe7e62f6be3b --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/server.json @@ -0,0 +1,22 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-server.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "server": { + "properties": { + "ip": { + "type": "ip" + }, + "port": { + "type": "long" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/url.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/url.json new file mode 100644 index 0000000000000..ff2abe30ca255 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/url.json @@ -0,0 +1,78 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-url.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "url": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "fragment": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "wildcard" + }, + "original": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "wildcard" + }, + "password": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "type": "wildcard" + }, + "port": { + "type": "long" + }, + "query": { + "ignore_above": 1024, + "type": "keyword" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "scheme": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "username": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/user.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/user.json new file mode 100644 index 0000000000000..bddd31b4e016f --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/user.json @@ -0,0 +1,33 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-user.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "user": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/user_agent.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/user_agent.json new file mode 100644 index 0000000000000..4cf6338a9a172 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/component/user_agent.json @@ -0,0 +1,25 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-user_agent.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "user_agent": { + "properties": { + "original": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/template.json new file mode 100644 index 0000000000000..e087950fd5339 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/composable/template.json @@ -0,0 +1,55 @@ +{ + "_meta": { + "description": "Sample composable template that includes all ECS fields", + "ecs_version": "8.0.0" + }, + "composed_of": [ + "ecs_8.0.0_base", + "ecs_8.0.0_event", + "ecs_8.0.0_http", + "ecs_8.0.0_url", + "ecs_8.0.0_user", + "ecs_8.0.0_user_agent", + "ecs_8.0.0_log", + "ecs_8.0.0_host" + ], + "index_patterns": [ + "kbn-data-forge-fake_stack.admin-console-*" + ], + "priority": 1, + "template": { + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ] + }, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/legacy/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/legacy/template.json new file mode 100644 index 0000000000000..ae375be1634b8 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/generated/elasticsearch/legacy/template.json @@ -0,0 +1,265 @@ +{ + "index_patterns": [ + "kbn-data-forge-fake_stack.admin-console-*" + ], + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "event": { + "properties": { + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "category": { + "ignore_above": 1024, + "type": "keyword" + }, + "duration": { + "type": "long" + } + } + }, + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "http": { + "properties": { + "request": { + "properties": { + "body": { + "properties": { + "bytes": { + "type": "long" + }, + "content": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "wildcard" + } + } + }, + "bytes": { + "type": "long" + }, + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "method": { + "ignore_above": 1024, + "type": "keyword" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "referrer": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "response": { + "properties": { + "body": { + "properties": { + "bytes": { + "type": "long" + }, + "content": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "wildcard" + } + } + }, + "bytes": { + "type": "long" + }, + "mime_type": { + "ignore_above": 1024, + "type": "keyword" + }, + "status_code": { + "type": "long" + } + } + }, + "version": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "message": { + "type": "match_only_text" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + }, + "url": { + "properties": { + "domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "extension": { + "ignore_above": 1024, + "type": "keyword" + }, + "fragment": { + "ignore_above": 1024, + "type": "keyword" + }, + "full": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "wildcard" + }, + "original": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "type": "wildcard" + }, + "password": { + "ignore_above": 1024, + "type": "keyword" + }, + "path": { + "type": "wildcard" + }, + "port": { + "type": "long" + }, + "query": { + "ignore_above": 1024, + "type": "keyword" + }, + "registered_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "scheme": { + "ignore_above": 1024, + "type": "keyword" + }, + "subdomain": { + "ignore_above": 1024, + "type": "keyword" + }, + "top_level_domain": { + "ignore_above": 1024, + "type": "keyword" + }, + "username": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "user": { + "properties": { + "id": { + "ignore_above": 1024, + "type": "keyword" + }, + "name": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "roles": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "user_agent": { + "properties": { + "original": { + "fields": { + "text": { + "type": "match_only_text" + } + }, + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + }, + "order": 1, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/index.ts new file mode 100644 index 0000000000000..b24febb9224f8 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/ecs/index.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ADMIN_CONSOLE } from '../../common/constants'; + +import base from './generated/elasticsearch/composable/component/base.json'; +import event from './generated/elasticsearch/composable/component/event.json'; +import http from './generated/elasticsearch/composable/component/http.json'; +import url from './generated/elasticsearch/composable/component/url.json'; +import user from './generated/elasticsearch/composable/component/user.json'; +import userAgent from './generated/elasticsearch/composable/component/user_agent.json'; +import log from './generated/elasticsearch/composable/component/log.json'; +import host from './generated/elasticsearch/composable/component/host.json'; + +import template from './generated/elasticsearch/composable/template.json'; +import { IndexTemplateDef } from '../../../../types'; + +const ECS_VERSION = template._meta.ecs_version; + +const components = [ + { name: `${ADMIN_CONSOLE}_${ECS_VERSION}_base`, template: base }, + { name: `${ADMIN_CONSOLE}_${ECS_VERSION}_event`, template: event }, + { name: `${ADMIN_CONSOLE}_${ECS_VERSION}_http`, template: http }, + { name: `${ADMIN_CONSOLE}_${ECS_VERSION}_url`, template: url }, + { name: `${ADMIN_CONSOLE}_${ECS_VERSION}_user`, template: user }, + { name: `${ADMIN_CONSOLE}_${ECS_VERSION}_user_agent`, template: userAgent }, + { name: `${ADMIN_CONSOLE}_${ECS_VERSION}_log`, template: log }, + { name: `${ADMIN_CONSOLE}_${ECS_VERSION}_host`, template: host }, +]; + +export const indexTemplate: IndexTemplateDef = { + namespace: ADMIN_CONSOLE, + template: { + ...template, + composed_of: components.map(({ name }) => name), + }, + components, +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/index.ts new file mode 100644 index 0000000000000..494d0dc6b9e9d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/index.ts @@ -0,0 +1,72 @@ +/* + * Copyright 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 { createStartupEvents } from './lib/events/startup'; +import { login } from './lib/events/login'; +import { loginError } from './lib/events/login_error'; +import { internalError } from './lib/events/internal_error'; +import { weightedSample } from '../common/weighted_sample'; +import { listCustomers } from './lib/events/list_customers'; +import { mongodbConnectionError } from './lib/events/mongodb_connection_error'; +import { viewUsers } from './lib/events/view_user'; +import { deleteUser } from './lib/events/delete_user'; +import { createUser } from './lib/events/create_user'; +import { editUser } from './lib/events/edit_user'; +import { Doc, EventFunction, EventTemplate, GeneratorFunction } from '../../../types'; +import { qaDeployedToProduction } from './lib/events/qa_deployed_to_production'; +import { mongodbProxyTimeout } from './lib/events/mongodb_proxy_timeout'; +import { addEphemeralProjectId } from '../../../lib/add_ephemeral_project_id'; + +const GOOD_EVENT_TEMPLATES: EventTemplate = [ + [mongodbProxyTimeout, 1], + [loginError, 1], + [login, 10], + [listCustomers, 20], + [viewUsers, 20], + [deleteUser, 20], + [createUser, 20], + [editUser, 20], +]; + +const BAD_EVENT_TEMPLATES: EventTemplate = [[mongodbConnectionError, 1]]; + +const INTERNAL_ERRORS_EVENT_TEMPLATES: EventTemplate = [[internalError, 1]]; + +const CONNECTION_TIMEOUT_EVENT_TEMPLATES: EventTemplate = [[qaDeployedToProduction, 1]]; + +function getTemplate(name: string) { + if (name === 'bad') { + return BAD_EVENT_TEMPLATES; + } + if (name === 'internalErrors') { + return INTERNAL_ERRORS_EVENT_TEMPLATES; + } + if (name === 'connectionTimeout') { + return CONNECTION_TIMEOUT_EVENT_TEMPLATES; + } + return GOOD_EVENT_TEMPLATES; +} + +let firstRun = true; +export const kibanaAssets = `${__dirname}/assets/admin_console.ndjson`; + +export const generateEvent: GeneratorFunction = (config, schedule, _index, timestamp) => { + let startupEvents: Doc[] = []; + if (firstRun && schedule.template !== 'internalErrors') { + firstRun = false; + startupEvents = createStartupEvents(schedule, timestamp); + } + + const template = getTemplate(schedule.template); + const fn = weightedSample(template) as EventFunction; + const events = addEphemeralProjectId( + config.indexing.ephemeralProjectIds || 0, + fn(schedule, timestamp).flat() + ); + + return [...startupEvents, ...events]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/create_base_event.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/create_base_event.ts new file mode 100644 index 0000000000000..575536982562f --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/create_base_event.ts @@ -0,0 +1,73 @@ +/* + * Copyright 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 { sample } from 'lodash'; +import { set } from '@kbn/safer-lodash-set'; +import { faker } from '@faker-js/faker'; +import { Moment } from 'moment'; +import { ADMIN_CONSOLE_HOSTS, DOMAINS } from '../../../common/constants'; +import { User } from '../login_cache'; + +export function createEvent( + timestamp: Moment, + source: string, + method: string, + path: string, + user: User, + level: 'ERROR' | 'INFO' = 'INFO', + statusCode = 200, + overrides?: Record +) { + const domain = sample(DOMAINS); + const port = 6000; + const full = `https://${source}.${domain}:${port}${path}`; + const userAgent = faker.internet.userAgent(); + const baseEvent = { + namespace: source, + '@timestamp': timestamp.toISOString(), + tags: [`infra:${source}`], + host: { name: sample(ADMIN_CONSOLE_HOSTS) }, + log: { + level, + logger: source, + }, + server: { + port, + }, + http: { + request: { + bytes: parseInt(faker.string.numeric(4), 10), + method, + mime_type: 'application/json', + }, + response: { + status_code: statusCode, + mime_type: 'application/json', + bytes: parseInt(faker.string.numeric(3), 10), + }, + }, + url: { + domain, + subdomain: source, + full, + port, + path, + username: user.id, + }, + user, + user_agent: { + original: userAgent, + }, + }; + + return overrides != null + ? Object.keys(overrides).reduce((acc, key) => { + const value = overrides[key]; + return set(acc, key, value); + }, baseEvent) + : baseEvent; +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/create_user.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/create_user.ts new file mode 100644 index 0000000000000..e51286158c717 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/create_user.ts @@ -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 { sample, camelCase, random } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { ADMIN_CONSOLE, ADMIN_CONSOLE_HOSTS, DOMAINS } from '../../../common/constants'; +import { getLoggedInUser, createUser as createNewUser } from '../login_cache'; +import { createEvent } from './create_base_event'; +import { createWriteEvent } from '../../../mongodb/lib/events/mongo_actions'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +export const createUser: EventFunction = (_schedule, timestamp) => { + const user = getLoggedInUser(); + const domain = sample(DOMAINS) as string; + const method = 'POST'; + const statusCode = 200; + const port = 6000; + const path = '/api/createUser'; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}`; + const userAgent = faker.internet.userAgent(); + const bytes = parseInt(faker.string.numeric(3), 10); + + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + + const event = createEvent(timestamp, ADMIN_CONSOLE, method, path, user, 'INFO', statusCode, { + message: `${method} ${path} ${statusCode} ${bytes} - ${userAgent}`, + event: { + action: 'createUser', + category: 'administrative', + duration: random(10, 150) * 1000000, + }, + 'http.response.bytes': bytes, + host: { name: host }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }); + + return [ + event, + ...createWriteEvent( + timestamp, + host, + camelCase(`${ADMIN_CONSOLE}-agent`), + camelCase(ADMIN_CONSOLE), + 'users', + createNewUser() + ), + ...createNginxLog( + timestamp, + method, + statusCode, + bytes, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/delete_user.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/delete_user.ts new file mode 100644 index 0000000000000..9c2f62b7b29b3 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/delete_user.ts @@ -0,0 +1,73 @@ +/* + * Copyright 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 { sample, camelCase, random } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { ADMIN_CONSOLE_HOSTS, ADMIN_CONSOLE, DOMAINS } from '../../../common/constants'; +import { getLoggedInUser } from '../login_cache'; +import { createEvent } from './create_base_event'; +import { createDeleteEvent } from '../../../mongodb/lib/events/mongo_actions'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +export const deleteUser: EventFunction = (_schedule, timestamp) => { + const user = getLoggedInUser(); + const domain = sample(DOMAINS) as string; + const method = 'POST'; + const statusCode = 200; + const port = 6000; + const path = '/api/deleteUser'; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}`; + const userAgent = faker.internet.userAgent(); + const bytes = parseInt(faker.string.numeric(2), 10); + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + + const event = createEvent(timestamp, ADMIN_CONSOLE, method, path, user, 'INFO', statusCode, { + message: `${method} ${path} ${statusCode} ${bytes} - ${userAgent}`, + event: { + action: 'deleteUser', + category: 'administrative', + duration: random(10, 150) * 1000000, + }, + 'http.response.bytes': bytes, + host: { name: host }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }); + + return [ + event, + ...createDeleteEvent( + timestamp, + host, + camelCase(`${ADMIN_CONSOLE}-agent`), + camelCase(ADMIN_CONSOLE), + 'users' + ), + ...createNginxLog( + timestamp, + method, + statusCode, + bytes, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/edit_user.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/edit_user.ts new file mode 100644 index 0000000000000..b808c136c2d36 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/edit_user.ts @@ -0,0 +1,77 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { sample, camelCase, random } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { ADMIN_CONSOLE, DOMAINS, ADMIN_CONSOLE_HOSTS } from '../../../common/constants'; +import { getLoggedInUser } from '../login_cache'; +import { createEvent } from './create_base_event'; +import { createUpdateEvent } from '../../../mongodb/lib/events/mongo_actions'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +export const editUser: EventFunction = (_schedule, timestamp) => { + const user = getLoggedInUser(); + const domain = sample(DOMAINS) as string; + const action = 'editUser'; + const method = 'POST'; + const statusCode = 200; + const port = 6000; + const path = `/api/${action}`; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}`; + const userAgent = faker.internet.userAgent(); + const bytes = parseInt(faker.string.numeric(2), 10); + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + + const event = createEvent(timestamp, ADMIN_CONSOLE, method, path, user, 'INFO', statusCode, { + message: `${method} ${path} ${statusCode} ${bytes} - ${userAgent}`, + event: { + action, + category: 'administrative', + duration: random(10, 150) * 1000000, + }, + 'http.response.bytes': bytes, + host: { name: host }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }); + + return [ + event, + ...createUpdateEvent( + timestamp, + host, + camelCase(`${ADMIN_CONSOLE}-agent`), + camelCase(ADMIN_CONSOLE), + 'users', + { + country: faker.location.country(), + } + ), + ...createNginxLog( + timestamp, + method, + statusCode, + bytes, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/internal_error.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/internal_error.ts new file mode 100644 index 0000000000000..b77c912723918 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/internal_error.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { sample, random } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { ADMIN_CONSOLE, DOMAINS } from '../../../common/constants'; +import { createEvent } from './create_base_event'; +import { EventFunction } from '../../../../../types'; + +export const internalError: EventFunction = (_schedule, timestamp) => { + const user = { + id: 'superuser', + name: 'Superuser', + roles: ['admin'], + }; + const hackerNoun = faker.helpers.slugify(faker.hacker.noun()); + const domain = sample(DOMAINS) as string; + const port = 6000; + const path = '/api/listCustomers'; + const query = `view=${hackerNoun}`; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}?${query}`; + + return [ + createEvent(timestamp, ADMIN_CONSOLE, 'GET', path, user, 'ERROR', 500, { + message: `ReferenceError: aggregateBy.${hackerNoun} is not defined`, + event: { + action: 'listCustomers', + category: 'administrative', + duration: random(100, 200) * 1000000, + }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + query, + username: user.id, + }, + user_agent: { + original: 'AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 637FCK3D', + }, + }), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/list_customers.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/list_customers.ts new file mode 100644 index 0000000000000..f0903cbac23b2 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/list_customers.ts @@ -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 { sample, camelCase, random } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { ADMIN_CONSOLE_HOSTS, ADMIN_CONSOLE, DOMAINS } from '../../../common/constants'; +import { getLoggedInUser } from '../login_cache'; +import { createEvent } from './create_base_event'; +import { createReadEvent } from '../../../mongodb/lib/events/mongo_actions'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +export const listCustomers: EventFunction = (_schedule, timestamp) => { + const user = getLoggedInUser(); + const domain = sample(DOMAINS) as string; + const port = 6000; + const path = '/api/listCustomers'; + const query = 'view=count'; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}?${query}`; + const userAgent = faker.internet.userAgent(); + const bytes = parseInt(faker.string.numeric(3), 10); + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + const method = 'GET'; + const statusCode = 200; + + const event = createEvent(timestamp, ADMIN_CONSOLE, method, path, user, 'INFO', statusCode, { + message: `${method} ${path}?${query} ${statusCode} ${bytes} - ${userAgent}`, + event: { + action: 'listCustomers', + category: 'administrative', + duration: random(10, 100) * 1000000, + }, + 'http.response.bytes': bytes, + host: { name: host }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + query, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }); + + return [ + event, + ...createReadEvent( + timestamp, + host, + camelCase(`${ADMIN_CONSOLE}-agent`), + camelCase(ADMIN_CONSOLE), + 'customers' + ), + ...createNginxLog( + timestamp, + method, + statusCode, + bytes, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/login.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/login.ts new file mode 100644 index 0000000000000..da93a73b73273 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/login.ts @@ -0,0 +1,70 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { sample, camelCase, random } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { createUser, loginUser } from '../login_cache'; +import { createEvent } from './create_base_event'; +import { ADMIN_CONSOLE_HOSTS, ADMIN_CONSOLE, DOMAINS } from '../../../common/constants'; +import { createReadEvent } from '../../../mongodb/lib/events/mongo_actions'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +export const login: EventFunction = (_schedule, timestamp) => { + const user = createUser(); + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + const domain = sample(DOMAINS) as string; + const port = 6000; + const method = 'POST'; + const path = '/api/login'; + const statusCode = 201; + loginUser(user); + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}`; + const userAgent = faker.internet.userAgent(); + const bytes = parseInt(faker.string.numeric(3), 10); + const event = createEvent(timestamp, ADMIN_CONSOLE, method, path, user, 'INFO', statusCode, { + message: `${user.id} successfully logged in.`, + 'event.action': 'login', + 'event.category': 'authentication', + 'event.duration': random(10, 100) * 1000000, + host: { name: host }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }); + + return [ + event, + ...createReadEvent( + timestamp, + host, + camelCase(`${ADMIN_CONSOLE}-agent`), + camelCase(ADMIN_CONSOLE), + 'users' + ), + ...createNginxLog( + timestamp, + method, + statusCode, + bytes, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/login_error.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/login_error.ts new file mode 100644 index 0000000000000..7599a825073d5 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/login_error.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { sample, camelCase, random } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { ADMIN_CONSOLE_HOSTS, ADMIN_CONSOLE, DOMAINS } from '../../../common/constants'; +import { createUser } from '../login_cache'; +import { createEvent } from './create_base_event'; +import { createReadEvent } from '../../../mongodb/lib/events/mongo_actions'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +export const loginError: EventFunction = (_schedule, timestamp) => { + const user = createUser(); + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + const domain = sample(DOMAINS) as string; + const port = 6000; + const method = 'POST'; + const path = '/api/login'; + const statusCode = 401; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}`; + const userAgent = faker.internet.userAgent(); + const bytes = parseInt(faker.string.numeric(3), 10); + const event = createEvent(timestamp, ADMIN_CONSOLE, method, path, user, 'ERROR', statusCode, { + message: `${user.id} login failed.`, + 'event.action': 'login', + 'event.category': 'authentication', + 'event.duration': random(100, 200) * 1000000, + host: { name: host }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }); + + return [ + event, + ...createReadEvent( + timestamp, + host, + camelCase(`${ADMIN_CONSOLE}-agent`), + camelCase(ADMIN_CONSOLE), + 'users' + ), + ...createNginxLog( + timestamp, + method, + statusCode, + bytes, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/mongodb_connection_error.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/mongodb_connection_error.ts new file mode 100644 index 0000000000000..4bca034f8823b --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/mongodb_connection_error.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 { sample } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { + MONGO_DB_GATEWAY, + ADMIN_CONSOLE, + ADMIN_CONSOLE_HOSTS, + DOMAINS, +} from '../../../common/constants'; +import { createEvent } from './create_base_event'; +import { getLoggedInUser } from '../login_cache'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +interface Endpoint { + path: string; + method: 'GET' | 'POST'; + action: string; + category: string; +} + +const ENDPOINTS: Endpoint[] = [ + { + path: '/api/listCustomers', + method: 'GET', + action: 'listCustomers', + category: 'administrative', + }, + { path: '/api/viewUsers', method: 'GET', action: 'viewUsers', category: 'administrative' }, + { path: '/api/deleteUser', method: 'POST', action: 'deleteUser', category: 'administrative' }, + { path: '/api/createUser', method: 'POST', action: 'createUser', category: 'administrative' }, + { path: '/api/editUser', method: 'POST', action: 'editUser', category: 'administrative' }, +]; + +export const mongodbConnectionError: EventFunction = (_schedule, timestamp) => { + const endpoint = sample(ENDPOINTS) as Endpoint; + const user = getLoggedInUser(); + const { path, method } = endpoint; + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + const domain = sample(DOMAINS) as string; + const port = 6000; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}`; + const userAgent = faker.internet.userAgent(); + + return [ + createEvent(timestamp, ADMIN_CONSOLE, method, path, user, 'ERROR', 500, { + message: `MongoNetworkError: failed to connect to server [${MONGO_DB_GATEWAY}] on first connect [MongoNetworkError: connect ECONNREFUSED ${MONGO_DB_GATEWAY}]`, + event: { + action: endpoint.action, + category: endpoint.category, + duration: 60000 * 1000000, + }, + host: { name: host }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }), + ...createNginxLog( + timestamp, + method, + 500, + 0, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/mongodb_proxy_timeout.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/mongodb_proxy_timeout.ts new file mode 100644 index 0000000000000..f6e3851681d2b --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/mongodb_proxy_timeout.ts @@ -0,0 +1,80 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { sample } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { ADMIN_CONSOLE, ADMIN_CONSOLE_HOSTS, DOMAINS } from '../../../common/constants'; +import { createEvent } from './create_base_event'; +import { getLoggedInUser } from '../login_cache'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +interface Endpoint { + path: string; + method: 'GET' | 'POST'; + action: string; + category: string; +} + +const ENDPOINTS: Endpoint[] = [ + { + path: '/api/listCustomers', + method: 'GET', + action: 'listCustomers', + category: 'administrative', + }, + { path: '/api/viewUsers', method: 'GET', action: 'viewUsers', category: 'administrative' }, + { path: '/api/deleteUser', method: 'POST', action: 'deleteUser', category: 'administrative' }, + { path: '/api/createUser', method: 'POST', action: 'createUser', category: 'administrative' }, + { path: '/api/editUser', method: 'POST', action: 'editUser', category: 'administrative' }, +]; + +export const mongodbProxyTimeout: EventFunction = (_schedule, timestamp) => { + const endpoint = sample(ENDPOINTS) as Endpoint; + const user = getLoggedInUser(); + const { path, method } = endpoint; + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + const domain = sample(DOMAINS) as string; + const port = 6000; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}`; + const userAgent = faker.internet.userAgent(); + + return [ + createEvent(timestamp, ADMIN_CONSOLE, method, path, user, 'ERROR', 500, { + message: `WARNING: MongoDB Connection Timeout - Failed to connect to the database`, + event: { + action: endpoint.action, + category: endpoint.category, + duration: 60000 * 1000000, + }, + host: { name: host }, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }), + ...createNginxLog( + timestamp, + method, + 500, + 0, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/qa_deployed_to_production.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/qa_deployed_to_production.ts new file mode 100644 index 0000000000000..2cca4747b1fdc --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/qa_deployed_to_production.ts @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { sample } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { ADMIN_CONSOLE, ADMIN_CONSOLE_QA_HOSTS, DOMAINS } from '../../../common/constants'; +import { getLoggedInUser } from '../login_cache'; +import { EventFunction } from '../../../../../types'; +import { createUpstreamTimeout } from '../../../nginx_proxy/lib/events/create_upstream_timedout'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +interface Endpoint { + path: string; + method: 'GET' | 'POST'; + action: string; + category: string; +} + +const ENDPOINTS: Endpoint[] = [ + { + path: '/api/listCustomers', + method: 'GET', + action: 'listCustomers', + category: 'administrative', + }, + { path: '/api/viewUsers', method: 'GET', action: 'viewUsers', category: 'administrative' }, + { path: '/api/deleteUser', method: 'POST', action: 'deleteUser', category: 'administrative' }, + { path: '/api/createUser', method: 'POST', action: 'createUser', category: 'administrative' }, + { path: '/api/editUser', method: 'POST', action: 'editUser', category: 'administrative' }, +]; + +export const qaDeployedToProduction: EventFunction = (_schedule, timestamp) => { + const endpoint = sample(ENDPOINTS) as Endpoint; + const user = getLoggedInUser(); + const { path, method } = endpoint; + const host = sample(ADMIN_CONSOLE_QA_HOSTS) as string; + const domain = sample(DOMAINS) as string; + const port = 3333; + const userAgent = faker.internet.userAgent(); + + return [ + ...createUpstreamTimeout( + timestamp, + method, + path, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ...createNginxLog( + timestamp, + method, + 502, + 0, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/startup.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/startup.ts new file mode 100644 index 0000000000000..aaeb69f676b3b --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/startup.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 { Doc, EventFunction } from '../../../../../types'; +import { ADMIN_CONSOLE, ADMIN_CONSOLE_HOSTS } from '../../../common/constants'; + +export const createStartupEvents: EventFunction = (_schedule, timestamp) => + ADMIN_CONSOLE_HOSTS.reduce((acc: Doc[], name: string) => { + const events = [ + { + namespace: ADMIN_CONSOLE, + '@timestamp': timestamp.toISOString(), + tags: [`infra:${ADMIN_CONSOLE}`], + event: { + action: 'startup', + category: 'initialization', + }, + message: 'Admin console starting up...', + host: { name }, + log: { + level: 'INFO', + logger: ADMIN_CONSOLE, + }, + }, + ]; + return [...acc, ...events]; + }, [] as Doc[]); diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/view_user.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/view_user.ts new file mode 100644 index 0000000000000..7e36d594503ad --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/events/view_user.ts @@ -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 { sample, camelCase, random } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { DOMAINS, ADMIN_CONSOLE, ADMIN_CONSOLE_HOSTS } from '../../../common/constants'; +import { getLoggedInUser } from '../login_cache'; +import { createEvent } from './create_base_event'; +import { createReadEvent } from '../../../mongodb/lib/events/mongo_actions'; +import { EventFunction } from '../../../../../types'; +import { createNginxLog } from '../../../nginx_proxy/lib/events/create_nginx_log'; + +export const viewUsers: EventFunction = (_schedule, timestamp) => { + const user = getLoggedInUser(); + const domain = sample(DOMAINS) as string; + const port = 6000; + const path = '/api/viewUsers'; + const query = `customerId=${faker.helpers.slugify(faker.company.name())}`; + const full = `https://${ADMIN_CONSOLE}.${domain}:${port}${path}?${query}`; + const userAgent = faker.internet.userAgent(); + const bytes = parseInt(faker.string.numeric(3), 10); + const host = sample(ADMIN_CONSOLE_HOSTS) as string; + const method = 'GET'; + const statusCode = 200; + + const event = createEvent(timestamp, ADMIN_CONSOLE, 'GET', path, user, 'INFO', 200, { + message: `${method} ${path}?${query} ${statusCode} ${bytes} - ${userAgent}`, + event: { + action: 'viewUsers', + category: 'administrative', + duration: random(10, 100) * 1000000, + }, + 'http.response.bytes': bytes, + url: { + domain, + subdomain: ADMIN_CONSOLE, + port, + full, + path, + query, + username: user.id, + }, + user_agent: { + original: userAgent, + }, + }); + + return [ + event, + ...createReadEvent( + timestamp, + host, + camelCase(`${ADMIN_CONSOLE}-agent`), + camelCase(ADMIN_CONSOLE), + 'users' + ), + ...createNginxLog( + timestamp, + method, + statusCode, + bytes, + path, + `https://${ADMIN_CONSOLE}.${domain}`, + userAgent, + `${ADMIN_CONSOLE}.${domain}`, + `${host}:${port}`, + user.id + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/login_cache.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/login_cache.ts new file mode 100644 index 0000000000000..62ce7d58c4c3b --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/admin_console/lib/login_cache.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { faker } from '@faker-js/faker'; +import { sample } from 'lodash'; + +export interface User { + id: string; + name: string; + roles: string[]; +} + +export const loginCache = new Map(); + +export function loginUser(user: User) { + return Boolean(loginCache.set(user.id, user)); +} + +export function logoutUser(user: User) { + return Boolean(loginCache.delete(user.id)); +} + +export function isLoggedIn(user: User) { + return loginCache.has(user.id); +} + +export function createUser(): User { + const firstName = faker.person.firstName(); + const lastName = faker.person.lastName(); + const userName = faker.internet.userName({ firstName, lastName }); + return { + id: userName, + name: `${firstName} ${lastName}`, + roles: [sample(['admin', 'customer']) as string], + }; +} + +export function getLoggedInUser(): User { + if (loginCache.size > 200) { + const existingUser = sample(Array.from(loginCache.values())); + if (existingUser) { + return existingUser; + } + } + const newUser = createUser(); + loginUser(newUser); + return newUser; +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/assets/transaction_rates.ndjson b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/assets/transaction_rates.ndjson new file mode 100644 index 0000000000000..fe31074716925 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/assets/transaction_rates.ndjson @@ -0,0 +1,6 @@ +{"attributes":{"fieldAttrs":"{\"http.response.status_code\":{\"customLabel\":\"Status Code\",\"count\":1},\"log.level\":{\"customLabel\":\"Level\",\"count\":1},\"url.path\":{\"customLabel\":\"Path\",\"count\":1},\"message\":{\"customLabel\":\"Message\",\"count\":1},\"user.id\":{\"count\":2},\"user.name\":{\"count\":2}}","fieldFormatMap":"{\"log.level\":{\"id\":\"color\",\"params\":{\"parsedUrl\":{\"origin\":\"http://localhost:5601\",\"pathname\":\"/vfh/app/home\",\"basePath\":\"/vfh\"},\"fieldType\":\"string\",\"colors\":[{\"range\":\"-Infinity:Infinity\",\"regex\":\"ERROR\",\"text\":\"#c1371c\",\"background\":\"#ffffff\"}]}}}","fields":"[]","name":"Admin Console","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"kbn-data-forge-fake_stack.admin-console-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-10-13T14:27:40.223Z","id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-10-13T14:27:40.223Z","version":"WzE3LDFd"} +{"attributes":{"fieldAttrs":"{}","fieldFormatMap":"{}","fields":"[]","name":"Ngnix Proxy Logs","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"kbn-data-forge-fake_stack.nginx_proxy-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-10-13T14:27:40.223Z","id":"a3696044-a05a-4d05-af22-2a97265c62f6","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-10-13T14:27:40.223Z","version":"WzE4LDFd"} +{"attributes":{"fieldAttrs":"{\"message\":{\"count\":1}}","fieldFormatMap":"{}","fields":"[]","name":"MongoDB Logs","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"kbn-data-forge-fake_stack.mongodb-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-10-13T14:27:40.223Z","id":"ab1c55e6-5258-41ab-bcb9-810260c1a957","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-10-13T14:27:40.223Z","version":"WzE5LDFd"} +{"attributes":{"fieldAttrs":"{\"processor.ratio\":{\"customLabel\":\"Ratio\",\"count\":2},\"host.name\":{\"count\":1},\"log.level\":{\"count\":1},\"log.logger\":{\"count\":2},\"message\":{\"count\":1},\"processor.accepted\":{\"customLabel\":\"Ack\",\"count\":3},\"processor.processed\":{\"customLabel\":\"Proc\",\"count\":1}}","fieldFormatMap":"{\"processor.ratio\":{\"id\":\"percent\",\"params\":{\"parsedUrl\":{\"origin\":\"http://localhost:5601\",\"pathname\":\"/app/observability/slos/create\",\"basePath\":\"\"},\"pattern\":\"0,0[.00]%\",\"fractional\":true}}}","fields":"[]","name":"Message Processor","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"kbn-data-forge-fake_stack.message_processor-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-10-13T14:27:40.223Z","id":"593f894a-3378-42cc-bafc-61b4877b64b0","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-10-13T14:34:04.480Z","version":"WzI0LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"optionsJSON":"{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}","panelsJSON":"[{\"version\":\"8.10.4\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":10,\"w\":48,\"h\":10,\"i\":\"ffc2d8c6-73a5-4927-9c33-03cbf4b5b2bf\"},\"panelIndex\":\"ffc2d8c6-73a5-4927-9c33-03cbf4b5b2bf\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"3aa8633c-bf11-4a8d-9b5a-9d13fb5e604b\",\"type\":\"timeseries\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"0ac82a88-7680-4244-97ee-1af47e8a0628\",\"color\":\"#68BC00\",\"split_mode\":\"filters\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"8382c617-6f51-425a-812d-4a9f389599f6\",\"type\":\"count\"},{\"id\":\"ba2bb600-f5a1-11ed-8a19-b73e13394ec6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"bcd4dd00-f5a1-11ed-8a19-b73e13394ec6\",\"name\":\"count\",\"field\":\"8382c617-6f51-425a-812d-4a9f389599f6\"}],\"script\":\"params.count / ((params._interval / 1000) / 60)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"stacked\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Log Rate\",\"value_template\":\"{{value}} tpm\",\"split_filters\":[{\"filter\":{\"query\":\"http.response.status_code < 500\",\"language\":\"kuery\"},\"label\":\"Good\",\"color\":\"#68BC00\",\"id\":\"e351c4c0-f5a1-11ed-8a19-b73e13394ec6\"},{\"filter\":{\"query\":\"not http.response.status_code < 500\",\"language\":\"kuery\"},\"label\":\"Bad\",\"color\":\"rgba(231,102,76,1)\",\"id\":\"edafbad0-f5a1-11ed-8a19-b73e13394ec6\"}]}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\">=1m\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"legend_position\":\"bottom\",\"index_pattern_ref_name\":\"metrics_ffc2d8c6-73a5-4927-9c33-03cbf4b5b2bf_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Admin Console Log Rate\"},{\"version\":\"8.10.4\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":48,\"h\":10,\"i\":\"b02f45a3-8e50-4cb4-89d5-6dbc7ac96692\"},\"panelIndex\":\"b02f45a3-8e50-4cb4-89d5-6dbc7ac96692\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"384ea574-6aa4-4f71-a6cb-c09a0dcad996\",\"type\":\"timeseries\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"98b6f02d-7b7a-4432-b517-c0322e86bae6\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"1f8cb6ee-a83a-45bf-a467-4302815e57f8\",\"type\":\"count\"},{\"id\":\"eab8a8a0-fa88-11ed-a192-7bca01fcf33d\",\"type\":\"calculation\",\"variables\":[{\"id\":\"ece74870-fa88-11ed-a192-7bca01fcf33d\",\"name\":\"count\",\"field\":\"1f8cb6ee-a83a-45bf-a467-4302815e57f8\"}],\"script\":\"params.count / ((params._interval / 1000) / 60)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Requests\",\"value_template\":\"{{value}} tpm\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\">=1m\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"legend_position\":\"bottom\",\"index_pattern_ref_name\":\"metrics_b02f45a3-8e50-4cb4-89d5-6dbc7ac96692_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Ngnix Proxy Request Rate\"},{\"version\":\"8.10.4\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":20,\"w\":48,\"h\":10,\"i\":\"087dc7fc-0f12-4275-8846-13fea0472723\"},\"panelIndex\":\"087dc7fc-0f12-4275-8846-13fea0472723\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"6a893e6e-e63c-4ecb-81a5-fb9fd97dc0be\",\"type\":\"timeseries\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"b15f4440-123f-4c98-8744-c3fc77763de1\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"1fca665c-77c1-4959-9049-92affea7feda\",\"type\":\"count\"},{\"id\":\"4b0f89d0-f5a2-11ed-8a19-b73e13394ec6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"4d5693a0-f5a2-11ed-8a19-b73e13394ec6\",\"name\":\"count\",\"field\":\"1fca665c-77c1-4959-9049-92affea7feda\"}],\"script\":\"params.count / ((params._interval / 1000) / 60)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Log Rate\",\"value_template\":\"{{value}} tpm\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\">=1m\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"legend_position\":\"bottom\",\"index_pattern_ref_name\":\"metrics_087dc7fc-0f12-4275-8846-13fea0472723_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"MongoDB Log Rate\"},{\"version\":\"8.10.4\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":30,\"w\":48,\"h\":9,\"i\":\"5593ea6d-c932-42b5-8764-5168da80e4dd\"},\"panelIndex\":\"5593ea6d-c932-42b5-8764-5168da80e4dd\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"99eb8524-5b7d-41f5-b1e8-f1a0847b4ee1\",\"type\":\"timeseries\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"e9c51db0-f5a2-11ed-8a19-b73e13394ec6\",\"color\":\"rgba(104,188,0,1)\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"e9c51db1-f5a2-11ed-8a19-b73e13394ec6\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"223a16a0-f5a3-11ed-8a19-b73e13394ec6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"26c73fe0-f5a3-11ed-8a19-b73e13394ec6\",\"name\":\"processed\",\"field\":\"e9c51db1-f5a2-11ed-8a19-b73e13394ec6\"}],\"script\":\"params.processed / ((params._interval / 1000) / 60)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"stacked\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Process Rate\",\"value_template\":\"{{value}} tpm\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"cc582b6b-2c7c-46de-b2d4-60340c92ea8c\",\"color\":\"rgba(231,102,76,1)\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"68445e87-8d3d-4f6b-a549-d997f600d4b8\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"c4aad330-f5a2-11ed-8a19-b73e13394ec6\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"d17d4bb0-f5a2-11ed-8a19-b73e13394ec6\",\"type\":\"calculation\",\"variables\":[{\"id\":\"d3fe5140-f5a2-11ed-8a19-b73e13394ec6\",\"name\":\"processed\",\"field\":\"68445e87-8d3d-4f6b-a549-d997f600d4b8\"},{\"id\":\"d9df4ab0-f5a2-11ed-8a19-b73e13394ec6\",\"name\":\"accepted\",\"field\":\"c4aad330-f5a2-11ed-8a19-b73e13394ec6\"}],\"script\":\"(params.accepted - params.processed) / ((params._interval / 1000) / 60)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"bar\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"stacked\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Rejected Rate\",\"value_template\":\"{{value}} tpm\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\">=1m\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"legend_position\":\"bottom\",\"index_pattern_ref_name\":\"metrics_5593ea6d-c932-42b5-8764-5168da80e4dd_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"enhancements\":{}},\"title\":\"Message Processing Rate\"}]","refreshInterval":{"pause":false,"value":60000},"timeFrom":"now-7d/d","timeRestore":true,"timeTo":"now","title":"Transaction Rates","version":1},"coreMigrationVersion":"8.8.0","created_at":"2023-10-13T14:43:34.377Z","id":"b6fc0f00-f5a3-11ed-9275-13469aefbc4f","managed":false,"references":[{"id":"e7744dbe-a7a4-457b-83aa-539e9c88764c","name":"ffc2d8c6-73a5-4927-9c33-03cbf4b5b2bf:metrics_ffc2d8c6-73a5-4927-9c33-03cbf4b5b2bf_0_index_pattern","type":"index-pattern"},{"id":"a3696044-a05a-4d05-af22-2a97265c62f6","name":"b02f45a3-8e50-4cb4-89d5-6dbc7ac96692:metrics_b02f45a3-8e50-4cb4-89d5-6dbc7ac96692_0_index_pattern","type":"index-pattern"},{"id":"ab1c55e6-5258-41ab-bcb9-810260c1a957","name":"087dc7fc-0f12-4275-8846-13fea0472723:metrics_087dc7fc-0f12-4275-8846-13fea0472723_0_index_pattern","type":"index-pattern"},{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"5593ea6d-c932-42b5-8764-5168da80e4dd:metrics_5593ea6d-c932-42b5-8764-5168da80e4dd_0_index_pattern","type":"index-pattern"}],"type":"dashboard","typeMigrationVersion":"8.9.0","updated_at":"2023-10-13T14:43:34.377Z","version":"WzM0LDFd"} +{"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":5,"missingRefCount":0,"missingReferences":[]} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/common/constants.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/common/constants.ts new file mode 100644 index 0000000000000..d994d97557c82 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/common/constants.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 { times, padStart } from 'lodash'; + +export const ADMIN_CONSOLE = 'admin-console'; + +export const ADMIN_CONSOLE_HOSTS = times(20).map( + (n) => `${ADMIN_CONSOLE}.prod.${padStart(`${n + 1}`, 3, '0')}` +); +export const ADMIN_CONSOLE_QA_HOSTS = times(5).map( + (n) => `${ADMIN_CONSOLE}.qa.${padStart(`${n + 1}`, 3, '0')}` +); +export const ADMIN_CONSOLE_STAGING_HOSTS = times(5).map( + (n) => `${ADMIN_CONSOLE}.staging.${padStart(`${n + 1}`, 3, '0')}` +); + +export const MONGODB = 'mongodb'; + +export const MONGODB_HOSTS = times(3).map((n) => `${MONGODB}.prod.${padStart(`${n + 1}`, 3, '0')}`); + +export const MESSAGE_PROCESSOR = 'message_processor'; + +export const MESSAGE_PROCESSOR_HOSTS = times(10).map( + (n) => `${MESSAGE_PROCESSOR}.prod.${padStart(`${n + 1}`, 3, '0')}` +); + +export const DOMAINS = ['blast-mail.co', 'mail.at', 'the-post.box', 'you-got.mail']; + +export const MONGO_DB_GATEWAY = 'mongodb-gateway.mail-sass.co:27017'; + +export const NGINX_PROXY = 'nginx_proxy'; +export const NGINX_PROXY_HOSTS = times(5).map( + (n) => `${NGINX_PROXY}.prod.${padStart(`${n + 1}`, 3, '0')}` +); diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/common/weighted_sample.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/common/weighted_sample.ts new file mode 100644 index 0000000000000..1b9c8443543d5 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/common/weighted_sample.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { times, sample } from 'lodash'; + +export const weightedSample = (collection: Array<[F, number]>) => { + const samples = collection.reduce((acc, row) => { + const [item, weight] = row; + return [...acc, ...times(weight).map(() => item)]; + }, [] as F[]); + return sample(samples); +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/index.ts new file mode 100644 index 0000000000000..353fdcee234a4 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/index.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isArray } from 'lodash'; +import { + generateEvent as generateAdminConsole, + kibanaAssets as kibanaAssetsAdminConsole, +} from './admin_console'; +import { generateEvent as generateMongoDB, kibanaAssets as kibanaAssetsMongoDB } from './mongodb'; +import { + generateEvent as generateMessageProcessor, + kibanaAssets as kibanaAssetsMessageProcessor, +} from './message_processor'; +import { + generateEvent as generateNginxProxy, + kibanaAssets as kibanaAssetsNginxProxy, +} from './nginx_proxy'; +import { GeneratorFunction } from '../../types'; + +import { indexTemplate as adminConsoleIndexTemplate } from './admin_console/ecs'; +import { indexTemplate as messageProcessorIndexTemplate } from './message_processor/ecs'; +import { indexTemplate as mongodbIndexTemplate } from './mongodb/ecs'; +import { indexTemplate as nginxProxyIndexTemplate } from './nginx_proxy/ecs'; + +export const indexTemplate = [ + adminConsoleIndexTemplate, + messageProcessorIndexTemplate, + mongodbIndexTemplate, + nginxProxyIndexTemplate, +]; + +export const kibanaAssets = [ + kibanaAssetsAdminConsole, + kibanaAssetsMongoDB, + kibanaAssetsMessageProcessor, + kibanaAssetsNginxProxy, + `${__dirname}/assets/transaction_rates.ndjson`, +]; + +export const generteEvent: GeneratorFunction = (config, schedule, index, timestamp) => { + const scenario = config.indexing.scenario || 'fake_stack'; + const adminConsoleEvents = generateAdminConsole(config, schedule, index, timestamp); + const mongodbEvents = generateMongoDB(config, schedule, index, timestamp); + const messageProcessorEvents = generateMessageProcessor(config, schedule, index, timestamp); + const nginxProxyEvents = generateNginxProxy(config, schedule, index, timestamp); + return [ + ...(isArray(adminConsoleEvents) ? adminConsoleEvents : [adminConsoleEvents]), + ...(isArray(mongodbEvents) ? mongodbEvents : [mongodbEvents]), + ...(isArray(messageProcessorEvents) ? messageProcessorEvents : [messageProcessorEvents]), + ...(isArray(nginxProxyEvents) ? nginxProxyEvents : [nginxProxyEvents]), + ].map((event) => { + const labels = event.labels ?? {}; + return { ...event, labels: { ...labels, scenario } }; + }); +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/assets/message_processor.ndjson b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/assets/message_processor.ndjson new file mode 100644 index 0000000000000..b751ab058e432 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/assets/message_processor.ndjson @@ -0,0 +1,4 @@ +{"attributes":{"fieldAttrs":"{\"processor.ratio\":{\"customLabel\":\"Ratio\",\"count\":2},\"host.name\":{\"count\":1},\"log.level\":{\"count\":1},\"log.logger\":{\"count\":2},\"message\":{\"count\":1},\"processor.accepted\":{\"customLabel\":\"Ack\",\"count\":3},\"processor.processed\":{\"customLabel\":\"Proc\",\"count\":1}}","fieldFormatMap":"{\"processor.ratio\":{\"id\":\"percent\",\"params\":{\"parsedUrl\":{\"origin\":\"http://localhost:5601\",\"pathname\":\"/app/observability/slos/create\",\"basePath\":\"\"},\"pattern\":\"0,0[.00]%\",\"fractional\":true}}}","fields":"[]","name":"Message Processor","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"kbn-data-forge-fake_stack.message_processor-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-10-13T14:27:40.223Z","id":"593f894a-3378-42cc-bafc-61b4877b64b0","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-10-13T14:34:04.480Z","version":"WzI0LDFd"} +{"attributes":{"columns":["log.level","host.name","message","processor.processed","processor.accepted"],"description":"","grid":{"columns":{"host.name":{"width":203},"log.level":{"width":58},"log.logger":{"width":129},"message":{"width":256},"processor.accepted":{"width":66},"processor.processed":{"width":64},"processor.ratio":{"width":78}}},"hideChart":false,"isTextBasedQuery":false,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"processor.processed < 1\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"sort":[["@timestamp","desc"]],"timeRestore":false,"title":"Message Processor Logs - Bad Events","usesAdHocDataView":false},"coreMigrationVersion":"8.8.0","created_at":"2023-10-13T14:27:40.234Z","id":"fe7a49f0-f03a-11ed-bdc6-f382ac874aa0","managed":false,"references":[{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"search","typeMigrationVersion":"8.0.0","updated_at":"2023-10-13T14:27:40.234Z","version":"WzE1LDFd"} +{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"optionsJSON":"{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}","panelsJSON":"[{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":0,\"w\":8,\"h\":7,\"i\":\"df781501-2c15-49de-bf0c-71dc780f24a3\"},\"panelIndex\":\"df781501-2c15-49de-bf0c-71dc780f24a3\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"62767b08-1f24-46fc-a99f-ec0fd86bbb02\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"20c35b9c-fac5-43fe-bcd0-db1bf5046f4d\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"73e31900-ab14-4567-8594-c0d8bf12a144\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"87d15b00-f039-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"90e8ee60-f039-11ed-9b23-edcb0937fd3c\",\"type\":\"calculation\",\"variables\":[{\"id\":\"93337aa0-f039-11ed-9b23-edcb0937fd3c\",\"name\":\"processed\",\"field\":\"73e31900-ab14-4567-8594-c0d8bf12a144\"},{\"id\":\"9765b2a0-f039-11ed-9b23-edcb0937fd3c\",\"name\":\"accepted\",\"field\":\"87d15b00-f039-11ed-9b23-edcb0937fd3c\"}],\"script\":\"params.processed / params.accepted\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Processing Success Rate\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"a0159370-f04d-11ed-9bd8-bd6b849694ef\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"a0159371-f04d-11ed-9bd8-bd6b849694ef\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"a0159373-f04d-11ed-9bd8-bd6b849694ef\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"a0159375-f04d-11ed-9bd8-bd6b849694ef\",\"type\":\"calculation\",\"variables\":[{\"id\":\"a0159372-f04d-11ed-9bd8-bd6b849694ef\",\"name\":\"processed\",\"field\":\"a0159371-f04d-11ed-9bd8-bd6b849694ef\"},{\"id\":\"a0159374-f04d-11ed-9bd8-bd6b849694ef\",\"name\":\"accepted\",\"field\":\"a0159373-f04d-11ed-9bd8-bd6b849694ef\"}],\"script\":\"1- (params.processed / params.accepted)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Rate: \"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"background_color_rules\":[{\"id\":\"7e6ae450-f039-11ed-9b23-edcb0937fd3c\"}],\"isModelInvalid\":false,\"index_pattern_ref_name\":\"metrics_df781501-2c15-49de-bf0c-71dc780f24a3_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"enhancements\":{},\"type\":\"visualization\"}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":8,\"y\":0,\"w\":40,\"h\":13,\"i\":\"f84c26fa-e640-4ac2-82a5-25ce6df5d5e4\"},\"panelIndex\":\"f84c26fa-e640-4ac2-82a5-25ce6df5d5e4\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"821a66d3-d8d2-49ac-9eae-63ccb20e9035\",\"type\":\"timeseries\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"7c1a9416-6a47-4c47-b475-ad45fe9fa411\",\"color\":\"rgba(231,102,76,1)\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"d471c284-9b07-4f20-b213-3f2bba75e270\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"877d4ef0-f036-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"8c9ca610-f036-11ed-9b23-edcb0937fd3c\",\"type\":\"calculation\",\"variables\":[{\"id\":\"8ecca570-f036-11ed-9b23-edcb0937fd3c\",\"name\":\"processed\",\"field\":\"877d4ef0-f036-11ed-9b23-edcb0937fd3c\"},{\"id\":\"97257cb0-f036-11ed-9b23-edcb0937fd3c\",\"name\":\"accepted\",\"field\":\"d471c284-9b07-4f20-b213-3f2bba75e270\"}],\"script\":\"params.accepted - params.processed\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"bar\",\"line_width\":\"0\",\"point_size\":1,\"fill\":\"1\",\"stacked\":\"stacked\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Rejected\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"c1e935e0-f036-11ed-9b23-edcb0937fd3c\",\"color\":\"rgba(84,179,153,1)\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"c1e935e3-f036-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.processed\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"bar\",\"line_width\":\"0\",\"point_size\":1,\"fill\":\"1\",\"stacked\":\"stacked\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Processed\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\">=1m\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"isModelInvalid\":false,\"index_pattern_ref_name\":\"metrics_f84c26fa-e640-4ac2-82a5-25ce6df5d5e4_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"enhancements\":{},\"hidePanelTitles\":false,\"type\":\"visualization\"},\"title\":\"Processed vs Rejected\"},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":7,\"w\":8,\"h\":6,\"i\":\"cf81e9ee-63aa-446f-8e98-2f86a6613075\"},\"panelIndex\":\"cf81e9ee-63aa-446f-8e98-2f86a6613075\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"5d3d2c7d-e789-43a1-a129-18b4145e0ce8\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"0c19da24-c42e-4e55-a27c-b58578faa7ad\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"d498066f-67a4-4de3-959f-aadcb4d6e0de\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"0a88abf0-f037-11ed-9b23-edcb0937fd3c\",\"type\":\"calculation\",\"variables\":[{\"id\":\"0d5ed660-f037-11ed-9b23-edcb0937fd3c\",\"name\":\"processed\",\"field\":\"d498066f-67a4-4de3-959f-aadcb4d6e0de\"}],\"script\":\"params.processed / (params._interval / 1000 / 60)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"0,0a\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Processing Rate\",\"value_template\":\"{{value}}/m\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"96bb05a0-f037-11ed-9b23-edcb0937fd3c\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"96bb05a1-f037-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"96bb2cb1-f037-11ed-9b23-edcb0937fd3c\",\"type\":\"calculation\",\"variables\":[{\"id\":\"96bb2cb0-f037-11ed-9b23-edcb0937fd3c\",\"name\":\"processed\",\"field\":\"96bb05a1-f037-11ed-9b23-edcb0937fd3c\"}],\"script\":\"params.processed / (params._interval / 1000 / 60)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"0,0a\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Accepted\",\"value_template\":\"{{value}}/m\"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"background_color_rules\":[{\"id\":\"f93da3a0-f036-11ed-9b23-edcb0937fd3c\"}],\"isModelInvalid\":false,\"index_pattern_ref_name\":\"metrics_cf81e9ee-63aa-446f-8e98-2f86a6613075_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"enhancements\":{},\"hidePanelTitles\":true,\"type\":\"visualization\"}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":13,\"w\":8,\"h\":6,\"i\":\"34c3d3c4-1586-4196-833c-399e7d20c3ef\"},\"panelIndex\":\"34c3d3c4-1586-4196-833c-399e7d20c3ef\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"d225eadd-405b-4e9a-9af2-c4ce19639479\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"b1406011-1cea-43db-9971-a365998f4de6\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"c1bcd5eb-d76d-4036-b9d8-3a4804f3ecc4\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"ebebdc70-f04b-11ed-a0c0-052ee7bd178f\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"f16eb050-f04b-11ed-a0c0-052ee7bd178f\",\"type\":\"calculation\",\"variables\":[{\"id\":\"f404eb90-f04b-11ed-a0c0-052ee7bd178f\",\"name\":\"processed\",\"field\":\"ebebdc70-f04b-11ed-a0c0-052ee7bd178f\"},{\"id\":\"f924b7e0-f04b-11ed-a0c0-052ee7bd178f\",\"name\":\"accepted\",\"field\":\"c1bcd5eb-d76d-4036-b9d8-3a4804f3ecc4\"}],\"script\":\"(1 - (params.processed / params.accepted)) / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Burn Rate (5m)\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"145be1a0-f04c-11ed-a0c0-052ee7bd178f\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"145be1a1-f04c-11ed-a0c0-052ee7bd178f\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"145be1a3-f04c-11ed-a0c0-052ee7bd178f\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"145be1a5-f04c-11ed-a0c0-052ee7bd178f\",\"type\":\"calculation\",\"variables\":[{\"id\":\"145be1a4-f04c-11ed-a0c0-052ee7bd178f\",\"name\":\"processed\",\"field\":\"145be1a3-f04c-11ed-a0c0-052ee7bd178f\"},{\"id\":\"145be1a2-f04c-11ed-a0c0-052ee7bd178f\",\"name\":\"accepted\",\"field\":\"145be1a1-f04c-11ed-a0c0-052ee7bd178f\"}],\"script\":\"(1 - (params.processed / params.accepted))\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio: \"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"background_color_rules\":[{\"value\":1,\"id\":\"e6c866a0-f04b-11ed-a0c0-052ee7bd178f\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lt\"},{\"value\":1,\"id\":\"3840b960-f04c-11ed-a0c0-052ee7bd178f\",\"background_color\":\"rgba(231,102,76,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gte\"}],\"isModelInvalid\":false,\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_34c3d3c4-1586-4196-833c-399e7d20c3ef_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-5m\",\"to\":\"now\"},\"enhancements\":{},\"type\":\"visualization\"}},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":8,\"y\":13,\"w\":40,\"h\":12,\"i\":\"c94a208e-e4b7-4ea6-9f90-30d125ec6b0e\"},\"panelIndex\":\"c94a208e-e4b7-4ea6-9f90-30d125ec6b0e\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"axis_scale\":\"normal\",\"drop_last_bucket\":0,\"id\":\"f6ab0001-64aa-4a2f-ba05-e44d15ec1dee\",\"interval\":\">=1m\",\"isModelInvalid\":false,\"max_lines_legend\":1,\"series\":[{\"time_range_mode\":\"entire_time_range\",\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":\"1\",\"formatter\":\"percent\",\"id\":\"072ac77b-43b6-4b1c-9dec-aa8444af8e0c\",\"line_width\":\"0\",\"metrics\":[{\"id\":\"50c91871-91ef-43c8-a57f-7065f96c66a9\",\"type\":\"sum\",\"field\":\"processor.processed\"}],\"override_index_pattern\":0,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"point_size\":\"0\",\"separate_axis\":0,\"series_drop_last_bucket\":0,\"split_mode\":\"terms\",\"stacked\":\"percent\",\"terms_field\":\"host.name\",\"steps\":1,\"label\":\"\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"\",\"tooltip_mode\":\"show_all\",\"truncate_legend\":1,\"type\":\"timeseries\",\"use_kibana_indexes\":true,\"legend_position\":\"bottom\",\"index_pattern_ref_name\":\"metrics_c94a208e-e4b7-4ea6-9f90-30d125ec6b0e_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"enhancements\":{},\"hidePanelTitles\":false,\"type\":\"visualization\"},\"title\":\"Host Share of Processing\"},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":0,\"y\":19,\"w\":8,\"h\":6,\"i\":\"82e98f71-f93e-410f-9d42-ddb80cdcf687\"},\"panelIndex\":\"82e98f71-f93e-410f-9d42-ddb80cdcf687\",\"embeddableConfig\":{\"savedVis\":{\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"d225eadd-405b-4e9a-9af2-c4ce19639479\",\"type\":\"metric\",\"series\":[{\"time_range_mode\":\"entire_time_range\",\"id\":\"b1406011-1cea-43db-9971-a365998f4de6\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"c1bcd5eb-d76d-4036-b9d8-3a4804f3ecc4\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"ebebdc70-f04b-11ed-a0c0-052ee7bd178f\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"f16eb050-f04b-11ed-a0c0-052ee7bd178f\",\"type\":\"calculation\",\"variables\":[{\"id\":\"f404eb90-f04b-11ed-a0c0-052ee7bd178f\",\"name\":\"processed\",\"field\":\"ebebdc70-f04b-11ed-a0c0-052ee7bd178f\"},{\"id\":\"f924b7e0-f04b-11ed-a0c0-052ee7bd178f\",\"name\":\"accepted\",\"field\":\"c1bcd5eb-d76d-4036-b9d8-3a4804f3ecc4\"}],\"script\":\"(1 - (params.processed / params.accepted)) / (1 - 0.95)\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"number\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Burn Rate (5m)\",\"value_template\":\"{{value}}x\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"145be1a0-f04c-11ed-a0c0-052ee7bd178f\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"145be1a1-f04c-11ed-a0c0-052ee7bd178f\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"145be1a3-f04c-11ed-a0c0-052ee7bd178f\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"145be1a5-f04c-11ed-a0c0-052ee7bd178f\",\"type\":\"calculation\",\"variables\":[{\"id\":\"145be1a4-f04c-11ed-a0c0-052ee7bd178f\",\"name\":\"processed\",\"field\":\"145be1a3-f04c-11ed-a0c0-052ee7bd178f\"},{\"id\":\"145be1a2-f04c-11ed-a0c0-052ee7bd178f\",\"name\":\"accepted\",\"field\":\"145be1a1-f04c-11ed-a0c0-052ee7bd178f\"}],\"script\":\"(1 - (params.processed / params.accepted))\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Error Ratio: \"}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"background_color_rules\":[{\"value\":1,\"id\":\"e6c866a0-f04b-11ed-a0c0-052ee7bd178f\",\"background_color\":\"rgba(84,179,153,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"lt\"},{\"value\":1,\"id\":\"3840b960-f04c-11ed-a0c0-052ee7bd178f\",\"background_color\":\"rgba(231,102,76,1)\",\"color\":\"rgba(255,255,255,1)\",\"operator\":\"gte\"}],\"isModelInvalid\":false,\"filter\":{\"query\":\"\",\"language\":\"kuery\"},\"index_pattern_ref_name\":\"metrics_82e98f71-f93e-410f-9d42-ddb80cdcf687_0_index_pattern\"},\"uiState\":{},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":true,\"timeRange\":{\"from\":\"now-1h\",\"to\":\"now\"},\"enhancements\":{},\"type\":\"visualization\"}},{\"version\":\"8.9.0\",\"type\":\"search\",\"gridData\":{\"x\":0,\"y\":25,\"w\":24,\"h\":16,\"i\":\"741b3361-e1dc-4abc-a607-a154babe5e37\"},\"panelIndex\":\"741b3361-e1dc-4abc-a607-a154babe5e37\",\"embeddableConfig\":{\"enhancements\":{}},\"panelRefName\":\"panel_741b3361-e1dc-4abc-a607-a154babe5e37\"},{\"version\":\"8.9.0\",\"type\":\"visualization\",\"gridData\":{\"x\":24,\"y\":25,\"w\":24,\"h\":16,\"i\":\"188aefee-4cd4-49e6-99f4-4f8db4807c7c\"},\"panelIndex\":\"188aefee-4cd4-49e6-99f4-4f8db4807c7c\",\"embeddableConfig\":{\"savedVis\":{\"id\":\"\",\"title\":\"\",\"description\":\"\",\"type\":\"metrics\",\"params\":{\"time_range_mode\":\"entire_time_range\",\"id\":\"d1acb6a1-709b-4674-a060-4b35de367181\",\"type\":\"table\",\"series\":[{\"id\":\"7433c540-f03b-11ed-9b23-edcb0937fd3c\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"7433c541-f03b-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.accepted\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Accepted\"},{\"time_range_mode\":\"entire_time_range\",\"id\":\"e165ff37-2879-44b0-81f9-f3042969d28b\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"784d4467-adec-4b51-b982-406f50e72ebf\",\"type\":\"sum\",\"field\":\"processor.processed\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Processed\"},{\"id\":\"437e70d0-f03b-11ed-9b23-edcb0937fd3c\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"437e70d1-f03b-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"4eb89610-f03b-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"55fca1f0-f03b-11ed-9b23-edcb0937fd3c\",\"type\":\"calculation\",\"variables\":[{\"id\":\"58c1b560-f03b-11ed-9b23-edcb0937fd3c\",\"name\":\"processed\",\"field\":\"4eb89610-f03b-11ed-9b23-edcb0937fd3c\"},{\"id\":\"5f3aa910-f03b-11ed-9b23-edcb0937fd3c\",\"name\":\"accepted\",\"field\":\"437e70d1-f03b-11ed-9b23-edcb0937fd3c\"}],\"script\":\"params.accepted - params.processed\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"default\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Rejected\"},{\"id\":\"89caa810-f03b-11ed-9b23-edcb0937fd3c\",\"color\":\"#68BC00\",\"split_mode\":\"everything\",\"palette\":{\"type\":\"palette\",\"name\":\"default\"},\"metrics\":[{\"id\":\"89caa811-f03b-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.accepted\"},{\"id\":\"89caa813-f03b-11ed-9b23-edcb0937fd3c\",\"type\":\"sum\",\"field\":\"processor.processed\"},{\"id\":\"89caa815-f03b-11ed-9b23-edcb0937fd3c\",\"type\":\"calculation\",\"variables\":[{\"id\":\"89caa814-f03b-11ed-9b23-edcb0937fd3c\",\"name\":\"processed\",\"field\":\"89caa813-f03b-11ed-9b23-edcb0937fd3c\"},{\"id\":\"89caa812-f03b-11ed-9b23-edcb0937fd3c\",\"name\":\"accepted\",\"field\":\"89caa811-f03b-11ed-9b23-edcb0937fd3c\"}],\"script\":\"params.processed / params.accepted\"}],\"separate_axis\":0,\"axis_position\":\"right\",\"formatter\":\"percent\",\"chart_type\":\"line\",\"line_width\":1,\"point_size\":1,\"fill\":0.5,\"stacked\":\"none\",\"override_index_pattern\":0,\"series_drop_last_bucket\":0,\"label\":\"Success Rate\",\"color_rules\":[{\"id\":\"9945f970-f03b-11ed-9b23-edcb0937fd3c\"}]}],\"time_field\":\"\",\"use_kibana_indexes\":true,\"interval\":\"\",\"axis_position\":\"left\",\"axis_formatter\":\"number\",\"axis_scale\":\"normal\",\"show_legend\":1,\"truncate_legend\":1,\"max_lines_legend\":1,\"show_grid\":1,\"tooltip_mode\":\"show_all\",\"drop_last_bucket\":0,\"bar_color_rules\":[{\"id\":\"280e83d0-f03b-11ed-9b23-edcb0937fd3c\"}],\"isModelInvalid\":false,\"pivot_id\":\"host.name\",\"pivot_type\":\"string\",\"pivot_label\":\"Host\",\"index_pattern_ref_name\":\"metrics_188aefee-4cd4-49e6-99f4-4f8db4807c7c_0_index_pattern\"},\"uiState\":{\"table\":{\"sort\":{\"column\":\"_default_\",\"order\":\"asc\"}}},\"data\":{\"aggs\":[],\"searchSource\":{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}}},\"hidePanelTitles\":false,\"table\":{\"sort\":{\"column\":\"_default_\",\"order\":\"asc\"}},\"enhancements\":{},\"type\":\"visualization\"},\"title\":\"Stats by Host\"}]","refreshInterval":{"pause":false,"value":60000},"timeFrom":"now-7d/d","timeRestore":true,"timeTo":"now","title":"Message Processor Operations","version":1},"coreMigrationVersion":"8.8.0","created_at":"2023-10-13T14:27:40.234Z","id":"48089ec0-f039-11ed-bdc6-f382ac874aa0","managed":false,"references":[{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"df781501-2c15-49de-bf0c-71dc780f24a3:metrics_df781501-2c15-49de-bf0c-71dc780f24a3_0_index_pattern","type":"index-pattern"},{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"f84c26fa-e640-4ac2-82a5-25ce6df5d5e4:metrics_f84c26fa-e640-4ac2-82a5-25ce6df5d5e4_0_index_pattern","type":"index-pattern"},{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"cf81e9ee-63aa-446f-8e98-2f86a6613075:metrics_cf81e9ee-63aa-446f-8e98-2f86a6613075_0_index_pattern","type":"index-pattern"},{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"34c3d3c4-1586-4196-833c-399e7d20c3ef:metrics_34c3d3c4-1586-4196-833c-399e7d20c3ef_0_index_pattern","type":"index-pattern"},{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"c94a208e-e4b7-4ea6-9f90-30d125ec6b0e:metrics_c94a208e-e4b7-4ea6-9f90-30d125ec6b0e_0_index_pattern","type":"index-pattern"},{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"82e98f71-f93e-410f-9d42-ddb80cdcf687:metrics_82e98f71-f93e-410f-9d42-ddb80cdcf687_0_index_pattern","type":"index-pattern"},{"id":"fe7a49f0-f03a-11ed-bdc6-f382ac874aa0","name":"741b3361-e1dc-4abc-a607-a154babe5e37:panel_741b3361-e1dc-4abc-a607-a154babe5e37","type":"search"},{"id":"593f894a-3378-42cc-bafc-61b4877b64b0","name":"188aefee-4cd4-49e6-99f4-4f8db4807c7c:metrics_188aefee-4cd4-49e6-99f4-4f8db4807c7c_0_index_pattern","type":"index-pattern"}],"type":"dashboard","typeMigrationVersion":"8.9.0","updated_at":"2023-10-13T14:27:40.234Z","version":"WzE2LDFd"} +{"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":3,"missingRefCount":0,"missingReferences":[]} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/custom/processor.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/custom/processor.yml new file mode 100644 index 0000000000000..442823b4fbe2d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/custom/processor.yml @@ -0,0 +1,37 @@ +- name: processor + title: Message Processor + description: > + Fields that represent the message processor status + type: group + fields: + - name: accepted + type: long + level: custom + description: > + The number of accepted messages + - name: processed + type: long + level: custom + description: > + The number of processed messages + - name: latency + type: histogram + level: custom + description: > + The latency per message processed + - name: outcome + type: keyword + level: custom + description: > + The outcome of the events + - name: bytes + type: unsigned_long + level: custom + description: > + The number of bytes processed + - name: timeSpent + type: unsigned_long + level: custom + description: > + The millisecond spent processing messages + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/mapping-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/mapping-settings.json new file mode 100644 index 0000000000000..f24f6c0629ade --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/mapping-settings.json @@ -0,0 +1,21 @@ +{ + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "type": "keyword", + "ignore_above": 1024, + "fields": { + "text": { "type": "text", "norms" : false } + } + }, + "match_mapping_type": "string" + } + } + ] +} + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/subset.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/subset.yml new file mode 100644 index 0000000000000..8dd234f0e4527 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/subset.yml @@ -0,0 +1,16 @@ +--- +name: message_processor +fields: + base: + fields: "*" + log: + fields: + level: {} + logger: {} + host: + fields: + name: {} + processor: + fields: "*" + + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/template-settings-legacy.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/template-settings-legacy.json new file mode 100644 index 0000000000000..d8e1dde31a173 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/template-settings-legacy.json @@ -0,0 +1,17 @@ +{ + "index_patterns": ["kbn-data-forge-fake_stack.message_processor-*"], + "order": 1, + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} + + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/template-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/template-settings.json new file mode 100644 index 0000000000000..b78d35671d727 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/fields/template-settings.json @@ -0,0 +1,16 @@ +{ + "index_patterns": ["kbn-data-forge-fake_stack.message_processor-*"], + "priority": 1, + "template": { + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generate.sh b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generate.sh new file mode 100755 index 0000000000000..8e2778b740f0d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generate.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +cd ../../../../../../../../../ecs +NAME=message_processor + +BASE=../kibana/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/$NAME +ECS=$BASE/ecs + +python3 ./scripts/generator.py --ref v8.0.0 \ + --subset $ECS/fields/subset.yml \ + --include $ECS/fields/custom \ + --out $ECS/ \ + --template-settings-legacy $ECS/fields/template-settings-legacy.json \ + --template-settings $ECS/fields/template-settings.json \ + --mapping-settings $ECS/fields/mapping-settings.json + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/beats/fields.ecs.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/beats/fields.ecs.yml new file mode 100644 index 0000000000000..cc5a57db4a1cf --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/beats/fields.ecs.yml @@ -0,0 +1,145 @@ +# WARNING! Do not edit this file directly, it was generated by the ECS project, +# based on ECS version 8.0.0. +# Please visit https://github.com/elastic/ecs to suggest changes to ECS fields. + +- key: ecs + title: ECS + description: ECS Fields. + fields: + - name: '@timestamp' + level: core + required: true + type: date + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + default_field: true + - name: labels + level: core + type: object + object_type: keyword + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + default_field: true + - name: message + level: core + type: match_only_text + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + default_field: true + - name: tags + level: core + type: keyword + ignore_above: 1024 + description: List of keywords used to tag each event. + example: '["production", "env2"]' + default_field: true + - name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include + hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + default_field: true + fields: + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + - name: log + title: Log + group: 2 + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + type: group + default_field: true + fields: + - name: level + level: core + type: keyword + ignore_above: 1024 + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + - name: logger + level: core + type: keyword + ignore_above: 1024 + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + - name: processor + title: Message Processor + group: 2 + description: Fields that represent the message processor status + type: group + default_field: true + fields: + - name: accepted + level: custom + type: long + description: The number of accepted messages + default_field: false + - name: bytes + level: custom + type: unsigned_long + description: The number of bytes processed + default_field: false + - name: latency + level: custom + type: histogram + description: The latency per message processed + default_field: false + - name: outcome + level: custom + type: keyword + ignore_above: 1024 + description: The outcome of the events + default_field: false + - name: processed + level: custom + type: long + description: The number of processed messages + default_field: false + - name: timeSpent + level: custom + type: unsigned_long + description: The millisecond spent processing messages + default_field: false diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/csv/fields.csv b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/csv/fields.csv new file mode 100644 index 0000000000000..e5b5b9ea8e3d1 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/csv/fields.csv @@ -0,0 +1,14 @@ +ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description +8.0.0,true,base,@timestamp,date,core,,2016-05-23T08:05:34.853Z,Date/time when the event originated. +8.0.0,true,base,labels,object,core,,"{""application"": ""foo-bar"", ""env"": ""production""}",Custom key/value pairs. +8.0.0,true,base,message,match_only_text,core,,Hello World,Log message optimized for viewing in a log viewer. +8.0.0,true,base,tags,keyword,core,array,"[""production"", ""env2""]",List of keywords used to tag each event. +8.0.0,true,host,host.name,keyword,core,,,Name of the host. +8.0.0,true,log,log.level,keyword,core,,error,Log level of the log event. +8.0.0,true,log,log.logger,keyword,core,,org.elasticsearch.bootstrap.Bootstrap,Name of the logger. +8.0.0,true,processor,processor.accepted,long,custom,,,The number of accepted messages +8.0.0,true,processor,processor.bytes,unsigned_long,custom,,,The number of bytes processed +8.0.0,true,processor,processor.latency,histogram,custom,,,The latency per message processed +8.0.0,true,processor,processor.outcome,keyword,custom,,,The outcome of the events +8.0.0,true,processor,processor.processed,long,custom,,,The number of processed messages +8.0.0,true,processor,processor.timeSpent,unsigned_long,custom,,,The millisecond spent processing messages diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/ecs_flat.yml new file mode 100644 index 0000000000000..a0818eb411c11 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/ecs_flat.yml @@ -0,0 +1,160 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +processor.accepted: + dashed_name: processor-accepted + description: The number of accepted messages + flat_name: processor.accepted + level: custom + name: accepted + normalize: [] + short: The number of accepted messages + type: long +processor.bytes: + dashed_name: processor-bytes + description: The number of bytes processed + flat_name: processor.bytes + level: custom + name: bytes + normalize: [] + short: The number of bytes processed + type: unsigned_long +processor.latency: + dashed_name: processor-latency + description: The latency per message processed + flat_name: processor.latency + level: custom + name: latency + normalize: [] + short: The latency per message processed + type: histogram +processor.outcome: + dashed_name: processor-outcome + description: The outcome of the events + flat_name: processor.outcome + ignore_above: 1024 + level: custom + name: outcome + normalize: [] + short: The outcome of the events + type: keyword +processor.processed: + dashed_name: processor-processed + description: The number of processed messages + flat_name: processor.processed + level: custom + name: processed + normalize: [] + short: The number of processed messages + type: long +processor.timeSpent: + dashed_name: processor-timeSpent + description: The millisecond spent processing messages + flat_name: processor.timeSpent + level: custom + name: timeSpent + normalize: [] + short: The millisecond spent processing messages + type: unsigned_long +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/ecs_nested.yml new file mode 100644 index 0000000000000..30af1a973724e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/ecs_nested.yml @@ -0,0 +1,220 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group +processor: + description: Fields that represent the message processor status + fields: + processor.accepted: + dashed_name: processor-accepted + description: The number of accepted messages + flat_name: processor.accepted + level: custom + name: accepted + normalize: [] + short: The number of accepted messages + type: long + processor.bytes: + dashed_name: processor-bytes + description: The number of bytes processed + flat_name: processor.bytes + level: custom + name: bytes + normalize: [] + short: The number of bytes processed + type: unsigned_long + processor.latency: + dashed_name: processor-latency + description: The latency per message processed + flat_name: processor.latency + level: custom + name: latency + normalize: [] + short: The latency per message processed + type: histogram + processor.outcome: + dashed_name: processor-outcome + description: The outcome of the events + flat_name: processor.outcome + ignore_above: 1024 + level: custom + name: outcome + normalize: [] + short: The outcome of the events + type: keyword + processor.processed: + dashed_name: processor-processed + description: The number of processed messages + flat_name: processor.processed + level: custom + name: processed + normalize: [] + short: The number of processed messages + type: long + processor.timeSpent: + dashed_name: processor-timeSpent + description: The millisecond spent processing messages + flat_name: processor.timeSpent + level: custom + name: timeSpent + normalize: [] + short: The millisecond spent processing messages + type: unsigned_long + group: 2 + name: processor + prefix: processor. + short: Fields that represent the message processor status + title: Message Processor + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/subset/message_processor/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/subset/message_processor/ecs_flat.yml new file mode 100644 index 0000000000000..a0818eb411c11 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/subset/message_processor/ecs_flat.yml @@ -0,0 +1,160 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +processor.accepted: + dashed_name: processor-accepted + description: The number of accepted messages + flat_name: processor.accepted + level: custom + name: accepted + normalize: [] + short: The number of accepted messages + type: long +processor.bytes: + dashed_name: processor-bytes + description: The number of bytes processed + flat_name: processor.bytes + level: custom + name: bytes + normalize: [] + short: The number of bytes processed + type: unsigned_long +processor.latency: + dashed_name: processor-latency + description: The latency per message processed + flat_name: processor.latency + level: custom + name: latency + normalize: [] + short: The latency per message processed + type: histogram +processor.outcome: + dashed_name: processor-outcome + description: The outcome of the events + flat_name: processor.outcome + ignore_above: 1024 + level: custom + name: outcome + normalize: [] + short: The outcome of the events + type: keyword +processor.processed: + dashed_name: processor-processed + description: The number of processed messages + flat_name: processor.processed + level: custom + name: processed + normalize: [] + short: The number of processed messages + type: long +processor.timeSpent: + dashed_name: processor-timeSpent + description: The millisecond spent processing messages + flat_name: processor.timeSpent + level: custom + name: timeSpent + normalize: [] + short: The millisecond spent processing messages + type: unsigned_long +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/subset/message_processor/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/subset/message_processor/ecs_nested.yml new file mode 100644 index 0000000000000..30af1a973724e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/ecs/subset/message_processor/ecs_nested.yml @@ -0,0 +1,220 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group +processor: + description: Fields that represent the message processor status + fields: + processor.accepted: + dashed_name: processor-accepted + description: The number of accepted messages + flat_name: processor.accepted + level: custom + name: accepted + normalize: [] + short: The number of accepted messages + type: long + processor.bytes: + dashed_name: processor-bytes + description: The number of bytes processed + flat_name: processor.bytes + level: custom + name: bytes + normalize: [] + short: The number of bytes processed + type: unsigned_long + processor.latency: + dashed_name: processor-latency + description: The latency per message processed + flat_name: processor.latency + level: custom + name: latency + normalize: [] + short: The latency per message processed + type: histogram + processor.outcome: + dashed_name: processor-outcome + description: The outcome of the events + flat_name: processor.outcome + ignore_above: 1024 + level: custom + name: outcome + normalize: [] + short: The outcome of the events + type: keyword + processor.processed: + dashed_name: processor-processed + description: The number of processed messages + flat_name: processor.processed + level: custom + name: processed + normalize: [] + short: The number of processed messages + type: long + processor.timeSpent: + dashed_name: processor-timeSpent + description: The millisecond spent processing messages + flat_name: processor.timeSpent + level: custom + name: timeSpent + normalize: [] + short: The millisecond spent processing messages + type: unsigned_long + group: 2 + name: processor + prefix: processor. + short: Fields that represent the message processor status + title: Message Processor + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/base.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/base.json new file mode 100644 index 0000000000000..cebc9c2971745 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/base.json @@ -0,0 +1,25 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-base.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "@timestamp": { + "type": "date" + }, + "labels": { + "type": "object" + }, + "message": { + "type": "match_only_text" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/host.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/host.json new file mode 100644 index 0000000000000..3f9c7ae730291 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/host.json @@ -0,0 +1,20 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-host.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/log.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/log.json new file mode 100644 index 0000000000000..e43ca609d387e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/log.json @@ -0,0 +1,24 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-log.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/processor.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/processor.json new file mode 100644 index 0000000000000..e02d32006e5f7 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/component/processor.json @@ -0,0 +1,34 @@ +{ + "_meta": { + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "processor": { + "properties": { + "accepted": { + "type": "long" + }, + "bytes": { + "type": "unsigned_long" + }, + "latency": { + "type": "histogram" + }, + "outcome": { + "ignore_above": 1024, + "type": "keyword" + }, + "processed": { + "type": "long" + }, + "timeSpent": { + "type": "unsigned_long" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/template.json new file mode 100644 index 0000000000000..3635f9eb219ad --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/composable/template.json @@ -0,0 +1,51 @@ +{ + "_meta": { + "description": "Sample composable template that includes all ECS fields", + "ecs_version": "8.0.0" + }, + "composed_of": [ + "ecs_8.0.0_base", + "ecs_8.0.0_log", + "ecs_8.0.0_host", + "ecs_8.0.0_processor" + ], + "index_patterns": [ + "kbn-data-forge-fake_stack.message_processor-*" + ], + "priority": 1, + "template": { + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ] + }, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/legacy/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/legacy/template.json new file mode 100644 index 0000000000000..6329b6c32b53d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/generated/elasticsearch/legacy/template.json @@ -0,0 +1,98 @@ +{ + "index_patterns": [ + "kbn-data-forge-fake_stack.message_processor-*" + ], + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "message": { + "type": "match_only_text" + }, + "processor": { + "properties": { + "accepted": { + "type": "long" + }, + "bytes": { + "type": "unsigned_long" + }, + "latency": { + "type": "histogram" + }, + "outcome": { + "ignore_above": 1024, + "type": "keyword" + }, + "processed": { + "type": "long" + }, + "timeSpent": { + "type": "unsigned_long" + } + } + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "order": 1, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/index.ts new file mode 100644 index 0000000000000..6cd22b226b6ee --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/ecs/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 { MESSAGE_PROCESSOR } from '../../common/constants'; +import template from './generated/elasticsearch/composable/template.json'; +import base from './generated/elasticsearch/composable/component/base.json'; +import log from './generated/elasticsearch/composable/component/log.json'; +import host from './generated/elasticsearch/composable/component/host.json'; +import processor from './generated/elasticsearch/composable/component/processor.json'; +import { IndexTemplateDef } from '../../../../types'; + +const ECS_VERSION = template._meta.ecs_version; + +const components = [ + { name: `${MESSAGE_PROCESSOR}_${ECS_VERSION}_base`, template: base }, + { name: `${MESSAGE_PROCESSOR}_${ECS_VERSION}_log`, template: log }, + { name: `${MESSAGE_PROCESSOR}_${ECS_VERSION}_host`, template: host }, + { name: `${MESSAGE_PROCESSOR}_${ECS_VERSION}_processor`, template: processor }, +]; + +export const indexTemplate: IndexTemplateDef = { + namespace: MESSAGE_PROCESSOR, + template: { ...template, composed_of: components.map(({ name }) => name) }, + components, +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/index.ts new file mode 100644 index 0000000000000..346a7451a6364 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/index.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 { createStartupEvents } from './lib/events/startup'; +import { good } from './lib/events/good'; +import { bad } from './lib/events/bad'; +import { badHost } from './lib/events/bad_host'; +import { weightedSample } from '../common/weighted_sample'; + +import { Doc, GeneratorFunction, EventFunction, EventTemplate } from '../../../types'; + +let firstRun = true; + +export const kibanaAssets = `${__dirname}/assets/message_processor.ndjson`; + +const GOOD_EVENT_TEMPLATES: EventTemplate = [ + [good, 99], + [bad, 1], +]; + +const BAD_EVENT_TEMPLATES: EventTemplate = [[badHost(true), 1]]; + +function getTemplate(name: string) { + if (name === 'bad') { + return BAD_EVENT_TEMPLATES; + } + return GOOD_EVENT_TEMPLATES; +} + +export const generateEvent: GeneratorFunction = (_config, schedule, _index, timestamp) => { + let startupEvents: Doc[] = []; + if (firstRun) { + firstRun = false; + startupEvents = createStartupEvents(timestamp); + } + + const template = getTemplate(schedule.template); + const fn = weightedSample(template) as EventFunction; + const events = fn(schedule, timestamp).flat(); + + return [...startupEvents, ...events]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/bad.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/bad.ts new file mode 100644 index 0000000000000..be051978a4cc2 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/bad.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 { sample, random, xor, sortBy, sum } from 'lodash'; +import { MESSAGE_PROCESSOR_HOSTS } from '../../../common/constants'; +import { createBaseEvent } from './create_base_event'; +import { badHosts } from './bad_host'; +import { EventFunction } from '../../../../../types'; +import { createLatencyHistogram } from './create_latency_histogram'; +import { generateBytesProcessed } from './generate_bytes_processed'; +import { generateTimeSpent } from './generate_time_spent'; + +export const bad: EventFunction = (schedule, timestamp) => { + const hosts = + schedule.template === 'bad' ? xor(MESSAGE_PROCESSOR_HOSTS, badHosts) : MESSAGE_PROCESSOR_HOSTS; + const host = sample(hosts) as string; + const accepted = random(10, 1000); + const processed = random(0, Math.floor(accepted * 0.7)); + const latencyForProcessed = createLatencyHistogram(processed, { min: 10, max: 100 }); + const latencyForRejected = createLatencyHistogram(accepted - processed, { min: 500, max: 1000 }); + const combinedLatency = { + values: sortBy([...latencyForRejected.values, ...latencyForProcessed.values]), + counts: sortBy([...latencyForRejected.counts, ...latencyForProcessed.counts]), + }; + const message = `Processed ${sum(latencyForProcessed.counts)} messages out of ${ + sum(latencyForRejected.counts) + sum(latencyForProcessed.counts) + }`; + return [ + createBaseEvent( + timestamp, + 'INFO', + host, + message, + sum(latencyForRejected.counts) + sum(latencyForProcessed.counts), + sum(latencyForProcessed.counts), + combinedLatency, + 'failure', + generateBytesProcessed(timestamp.toISOString(), host), + generateTimeSpent(timestamp.toISOString(), host, sum(combinedLatency.values)) + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/bad_host.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/bad_host.ts new file mode 100644 index 0000000000000..3d75a538b3232 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/bad_host.ts @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { sample, random, times, sum } from 'lodash'; +import { Moment } from 'moment'; +import { EventFunction, ParsedSchedule, Schedule } from '../../../../../types'; +import { MESSAGE_PROCESSOR_HOSTS } from '../../../common/constants'; +import { createBaseEvent } from './create_base_event'; +import { createLatencyHistogram } from './create_latency_histogram'; + +const badHostSet = new Set(); +times(random(4, 8)).forEach(() => { + badHostSet.add(sample(MESSAGE_PROCESSOR_HOSTS) as string); +}); +export const badHosts = [...badHostSet]; + +export const badHost = + (all = false): EventFunction => + (_schedule: Schedule | ParsedSchedule, timestamp: Moment) => { + const host = (all ? sample(MESSAGE_PROCESSOR_HOSTS) : badHosts) as string; + const accepted = random(10, 1000); + const processed = 0; + const latency = createLatencyHistogram(accepted, { min: 500, max: 1000 }); + const message = `Processed ${processed} messages out of ${sum(latency.counts)}`; + return [ + createBaseEvent( + timestamp, + 'INFO', + host, + message, + sum(latency.counts), + processed, + latency, + 'failure' + ), + ]; + }; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/create_base_event.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/create_base_event.ts new file mode 100644 index 0000000000000..33759bd5dbfd2 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/create_base_event.ts @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { set } from '@kbn/safer-lodash-set'; +import { Moment } from 'moment'; +import { MESSAGE_PROCESSOR } from '../../../common/constants'; + +export function createBaseEvent( + timestamp: Moment, + level: 'ERROR' | 'INFO', + host: string, + message: string, + accepted?: number, + processed?: number, + latency?: { values: number[]; counts: number[] }, + outcome?: 'success' | 'failure', + bytes?: number, + timeSpent?: number +) { + const event = { + namespace: MESSAGE_PROCESSOR, + '@timestamp': timestamp.toISOString(), + host: { name: host }, + log: { + level: level || 'INFO', + logger: MESSAGE_PROCESSOR, + }, + message, + tags: [`infra:${MESSAGE_PROCESSOR}`], + }; + + if (accepted != null) { + set(event, 'processor.accepted', accepted); + } + + if (processed != null) { + set(event, 'processor.processed', processed); + } + + if (latency != null) { + set(event, 'processor.latency', latency); + } + + if (outcome != null) { + set(event, 'processor.outcome', outcome); + } + + if (bytes != null) { + set(event, 'processor.bytes', bytes); + } + + if (timeSpent != null) { + set(event, 'processor.timeSpent', timeSpent); + } + + return event; +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/create_latency_histogram.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/create_latency_histogram.ts new file mode 100644 index 0000000000000..19d8e48f5a875 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/create_latency_histogram.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 { random, sortBy, sum } from 'lodash'; + +export function createLatencyHistogram(totalCount: number, latency: { min: number; max: number }) { + if (totalCount === 0) { + return { values: [] as number[], counts: [] as number[] }; + } + const values: number[] = []; + const counts: number[] = []; + while (sum(counts) < totalCount) { + const remaining = totalCount - sum(counts); + const maxInterval = Math.floor(totalCount * 0.1); + const value = random(latency.min, latency.max); + const count = + maxInterval < 1 ? totalCount : remaining > maxInterval ? random(1, maxInterval) : remaining; + values.push(value); + counts.push(count); + } + return { values: sortBy(values), counts: sortBy(counts) }; +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/generate_bytes_processed.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/generate_bytes_processed.ts new file mode 100644 index 0000000000000..9f5120c6f8c4c --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/generate_bytes_processed.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 { random, memoize } from 'lodash'; +const bytes: Record = {}; +export const generateBytesProcessed = memoize( + (_timestamp: string, host: string, start = 1000, end = 100000) => { + if (!bytes[host]) { + bytes[host] = 0; + } + const newBytes = random(start, end); + bytes[host] = + newBytes + bytes[host] > Number.MAX_SAFE_INTEGER ? newBytes : newBytes + bytes[host]; + return bytes[host]; + } +); diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/generate_time_spent.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/generate_time_spent.ts new file mode 100644 index 0000000000000..49cda443fd28a --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/generate_time_spent.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +const time: Record = {}; +export const generateTimeSpent = (_timestamp: string, host: string, timeSpent: number) => { + if (!time[host]) { + time[host] = 0; + } + const cumlativeTimeSpent = timeSpent + time[host]; + time[host] = cumlativeTimeSpent >= Number.MAX_SAFE_INTEGER ? timeSpent : cumlativeTimeSpent; + return cumlativeTimeSpent; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/good.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/good.ts new file mode 100644 index 0000000000000..f0604f19eab83 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/good.ts @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { sample, random, xor, sum } from 'lodash'; +import { MESSAGE_PROCESSOR_HOSTS } from '../../../common/constants'; +import { createBaseEvent } from './create_base_event'; +import { badHosts } from './bad_host'; +import { EventFunction } from '../../../../../types'; +import { createLatencyHistogram } from './create_latency_histogram'; +import { generateBytesProcessed } from './generate_bytes_processed'; +import { generateTimeSpent } from './generate_time_spent'; + +export const good: EventFunction = (schedule, timestamp) => { + const hosts = + schedule.template === 'bad' ? xor(MESSAGE_PROCESSOR_HOSTS, badHosts) : MESSAGE_PROCESSOR_HOSTS; + const host = sample(hosts) as string; + const latency = createLatencyHistogram(random(10, 1000), { min: 10, max: 100 }); + const accepted = sum(latency.counts); + const timeSpent = sum(latency.values); + const processed = accepted; + const message = `Processed ${processed} messages out of ${accepted}`; + return [ + createBaseEvent( + timestamp, + 'INFO', + host, + message, + sum(latency.counts), + sum(latency.counts), + latency, + 'success', + generateBytesProcessed(timestamp.toISOString(), host), + generateTimeSpent(timestamp.toISOString(), host, timeSpent) + ), + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/startup.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/startup.ts new file mode 100644 index 0000000000000..900f051f48d61 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/message_processor/lib/events/startup.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Moment } from 'moment'; +import { MESSAGE_PROCESSOR_HOSTS } from '../../../common/constants'; +import { createBaseEvent } from './create_base_event'; + +export function createStartupEvents(timestamp: Moment) { + return MESSAGE_PROCESSOR_HOSTS.map((host) => + createBaseEvent(timestamp, 'INFO', host, 'Message processor starting up...') + ); +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/assets/mongodb.ndjson b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/assets/mongodb.ndjson new file mode 100644 index 0000000000000..80a19fa798351 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/assets/mongodb.ndjson @@ -0,0 +1,3 @@ +{"attributes":{"fieldAttrs":"{\"message\":{\"count\":1}}","fieldFormatMap":"{}","fields":"[]","name":"MongoDB Logs","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"kbn-data-forge-fake_stack.mongodb-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-05-04T17:25:28.125Z","id":"ab1c55e6-5258-41ab-bcb9-810260c1a957","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-05-04T17:25:47.092Z","version":"WzMxNSwxXQ=="} +{"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":1,"missingRefCount":0,"missingReferences":[]} + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/custom/mongodb.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/custom/mongodb.yml new file mode 100644 index 0000000000000..8385d6577e272 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/custom/mongodb.yml @@ -0,0 +1,31 @@ +- name: mongodb + title: MongoDB + description: > + MongoDB context, compontent, and id + type: group + fields: + - name: context + type: keyword + level: custom + description: > + Context of the message + - name: component + type: keyword + level: custom + description: > + Component of the message + - name: database + type: keyword + level: custom + description: > + The name of the database + - name: collection + type: keyword + level: custom + description: > + The name of the collection + - name: action + type: keyword + level: custom + description: > + The action being taken diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/mapping-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/mapping-settings.json new file mode 100644 index 0000000000000..f24f6c0629ade --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/mapping-settings.json @@ -0,0 +1,21 @@ +{ + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "type": "keyword", + "ignore_above": 1024, + "fields": { + "text": { "type": "text", "norms" : false } + } + }, + "match_mapping_type": "string" + } + } + ] +} + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/subset.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/subset.yml new file mode 100644 index 0000000000000..a28bffa72e246 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/subset.yml @@ -0,0 +1,16 @@ +--- +name: mongodb +fields: + base: + fields: "*" + log: + fields: + level: {} + logger: {} + host: + fields: + name: {} + mongodb: + fields: "*" + + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/template-settings-legacy.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/template-settings-legacy.json new file mode 100644 index 0000000000000..f0ccf2546064d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/template-settings-legacy.json @@ -0,0 +1,17 @@ +{ + "index_patterns": ["kbn-data-forge-fake_stack.mongodb-*"], + "order": 1, + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} + + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/template-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/template-settings.json new file mode 100644 index 0000000000000..67f5e6c3aeb5c --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/fields/template-settings.json @@ -0,0 +1,16 @@ +{ + "index_patterns": ["kbn-data-forge-fake_stack.mongodb-*"], + "priority": 1, + "template": { + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generate.sh b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generate.sh new file mode 100755 index 0000000000000..af8cbb8ec6252 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generate.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +cd ../../../../../../../../../ecs +NAME=mongodb + +BASE=../kibana/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/$NAME +ECS=$BASE/ecs + +python3 ./scripts/generator.py --ref v8.0.0 \ + --subset $ECS/fields/subset.yml \ + --include $ECS/fields/custom \ + --out $ECS/ \ + --template-settings-legacy $ECS/fields/template-settings-legacy.json \ + --template-settings $ECS/fields/template-settings.json \ + --mapping-settings $ECS/fields/mapping-settings.json + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/beats/fields.ecs.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/beats/fields.ecs.yml new file mode 100644 index 0000000000000..f86f157407cf0 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/beats/fields.ecs.yml @@ -0,0 +1,144 @@ +# WARNING! Do not edit this file directly, it was generated by the ECS project, +# based on ECS version 8.0.0. +# Please visit https://github.com/elastic/ecs to suggest changes to ECS fields. + +- key: ecs + title: ECS + description: ECS Fields. + fields: + - name: '@timestamp' + level: core + required: true + type: date + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + default_field: true + - name: labels + level: core + type: object + object_type: keyword + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + default_field: true + - name: message + level: core + type: match_only_text + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + default_field: true + - name: tags + level: core + type: keyword + ignore_above: 1024 + description: List of keywords used to tag each event. + example: '["production", "env2"]' + default_field: true + - name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include + hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + default_field: true + fields: + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + - name: log + title: Log + group: 2 + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + type: group + default_field: true + fields: + - name: level + level: core + type: keyword + ignore_above: 1024 + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + - name: logger + level: core + type: keyword + ignore_above: 1024 + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + - name: mongodb + title: MongoDB + group: 2 + description: MongoDB context, compontent, and id + type: group + default_field: true + fields: + - name: action + level: custom + type: keyword + ignore_above: 1024 + description: The action being taken + default_field: false + - name: collection + level: custom + type: keyword + ignore_above: 1024 + description: The name of the collection + default_field: false + - name: component + level: custom + type: keyword + ignore_above: 1024 + description: Component of the message + default_field: false + - name: context + level: custom + type: keyword + ignore_above: 1024 + description: Context of the message + default_field: false + - name: database + level: custom + type: keyword + ignore_above: 1024 + description: The name of the database + default_field: false diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/csv/fields.csv b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/csv/fields.csv new file mode 100644 index 0000000000000..4ad3bed2cef1b --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/csv/fields.csv @@ -0,0 +1,13 @@ +ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description +8.0.0,true,base,@timestamp,date,core,,2016-05-23T08:05:34.853Z,Date/time when the event originated. +8.0.0,true,base,labels,object,core,,"{""application"": ""foo-bar"", ""env"": ""production""}",Custom key/value pairs. +8.0.0,true,base,message,match_only_text,core,,Hello World,Log message optimized for viewing in a log viewer. +8.0.0,true,base,tags,keyword,core,array,"[""production"", ""env2""]",List of keywords used to tag each event. +8.0.0,true,host,host.name,keyword,core,,,Name of the host. +8.0.0,true,log,log.level,keyword,core,,error,Log level of the log event. +8.0.0,true,log,log.logger,keyword,core,,org.elasticsearch.bootstrap.Bootstrap,Name of the logger. +8.0.0,true,mongodb,mongodb.action,keyword,custom,,,The action being taken +8.0.0,true,mongodb,mongodb.collection,keyword,custom,,,The name of the collection +8.0.0,true,mongodb,mongodb.component,keyword,custom,,,Component of the message +8.0.0,true,mongodb,mongodb.context,keyword,custom,,,Context of the message +8.0.0,true,mongodb,mongodb.database,keyword,custom,,,The name of the database diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/ecs_flat.yml new file mode 100644 index 0000000000000..8b77b736df6a1 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/ecs_flat.yml @@ -0,0 +1,155 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +mongodb.action: + dashed_name: mongodb-action + description: The action being taken + flat_name: mongodb.action + ignore_above: 1024 + level: custom + name: action + normalize: [] + short: The action being taken + type: keyword +mongodb.collection: + dashed_name: mongodb-collection + description: The name of the collection + flat_name: mongodb.collection + ignore_above: 1024 + level: custom + name: collection + normalize: [] + short: The name of the collection + type: keyword +mongodb.component: + dashed_name: mongodb-component + description: Component of the message + flat_name: mongodb.component + ignore_above: 1024 + level: custom + name: component + normalize: [] + short: Component of the message + type: keyword +mongodb.context: + dashed_name: mongodb-context + description: Context of the message + flat_name: mongodb.context + ignore_above: 1024 + level: custom + name: context + normalize: [] + short: Context of the message + type: keyword +mongodb.database: + dashed_name: mongodb-database + description: The name of the database + flat_name: mongodb.database + ignore_above: 1024 + level: custom + name: database + normalize: [] + short: The name of the database + type: keyword +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/ecs_nested.yml new file mode 100644 index 0000000000000..c72d794cda564 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/ecs_nested.yml @@ -0,0 +1,215 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group +mongodb: + description: MongoDB context, compontent, and id + fields: + mongodb.action: + dashed_name: mongodb-action + description: The action being taken + flat_name: mongodb.action + ignore_above: 1024 + level: custom + name: action + normalize: [] + short: The action being taken + type: keyword + mongodb.collection: + dashed_name: mongodb-collection + description: The name of the collection + flat_name: mongodb.collection + ignore_above: 1024 + level: custom + name: collection + normalize: [] + short: The name of the collection + type: keyword + mongodb.component: + dashed_name: mongodb-component + description: Component of the message + flat_name: mongodb.component + ignore_above: 1024 + level: custom + name: component + normalize: [] + short: Component of the message + type: keyword + mongodb.context: + dashed_name: mongodb-context + description: Context of the message + flat_name: mongodb.context + ignore_above: 1024 + level: custom + name: context + normalize: [] + short: Context of the message + type: keyword + mongodb.database: + dashed_name: mongodb-database + description: The name of the database + flat_name: mongodb.database + ignore_above: 1024 + level: custom + name: database + normalize: [] + short: The name of the database + type: keyword + group: 2 + name: mongodb + prefix: mongodb. + short: MongoDB context, compontent, and id + title: MongoDB + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/subset/mongodb/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/subset/mongodb/ecs_flat.yml new file mode 100644 index 0000000000000..8b77b736df6a1 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/subset/mongodb/ecs_flat.yml @@ -0,0 +1,155 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +mongodb.action: + dashed_name: mongodb-action + description: The action being taken + flat_name: mongodb.action + ignore_above: 1024 + level: custom + name: action + normalize: [] + short: The action being taken + type: keyword +mongodb.collection: + dashed_name: mongodb-collection + description: The name of the collection + flat_name: mongodb.collection + ignore_above: 1024 + level: custom + name: collection + normalize: [] + short: The name of the collection + type: keyword +mongodb.component: + dashed_name: mongodb-component + description: Component of the message + flat_name: mongodb.component + ignore_above: 1024 + level: custom + name: component + normalize: [] + short: Component of the message + type: keyword +mongodb.context: + dashed_name: mongodb-context + description: Context of the message + flat_name: mongodb.context + ignore_above: 1024 + level: custom + name: context + normalize: [] + short: Context of the message + type: keyword +mongodb.database: + dashed_name: mongodb-database + description: The name of the database + flat_name: mongodb.database + ignore_above: 1024 + level: custom + name: database + normalize: [] + short: The name of the database + type: keyword +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/subset/mongodb/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/subset/mongodb/ecs_nested.yml new file mode 100644 index 0000000000000..c72d794cda564 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/ecs/subset/mongodb/ecs_nested.yml @@ -0,0 +1,215 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group +mongodb: + description: MongoDB context, compontent, and id + fields: + mongodb.action: + dashed_name: mongodb-action + description: The action being taken + flat_name: mongodb.action + ignore_above: 1024 + level: custom + name: action + normalize: [] + short: The action being taken + type: keyword + mongodb.collection: + dashed_name: mongodb-collection + description: The name of the collection + flat_name: mongodb.collection + ignore_above: 1024 + level: custom + name: collection + normalize: [] + short: The name of the collection + type: keyword + mongodb.component: + dashed_name: mongodb-component + description: Component of the message + flat_name: mongodb.component + ignore_above: 1024 + level: custom + name: component + normalize: [] + short: Component of the message + type: keyword + mongodb.context: + dashed_name: mongodb-context + description: Context of the message + flat_name: mongodb.context + ignore_above: 1024 + level: custom + name: context + normalize: [] + short: Context of the message + type: keyword + mongodb.database: + dashed_name: mongodb-database + description: The name of the database + flat_name: mongodb.database + ignore_above: 1024 + level: custom + name: database + normalize: [] + short: The name of the database + type: keyword + group: 2 + name: mongodb + prefix: mongodb. + short: MongoDB context, compontent, and id + title: MongoDB + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/base.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/base.json new file mode 100644 index 0000000000000..cebc9c2971745 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/base.json @@ -0,0 +1,25 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-base.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "@timestamp": { + "type": "date" + }, + "labels": { + "type": "object" + }, + "message": { + "type": "match_only_text" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/host.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/host.json new file mode 100644 index 0000000000000..3f9c7ae730291 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/host.json @@ -0,0 +1,20 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-host.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/log.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/log.json new file mode 100644 index 0000000000000..e43ca609d387e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/log.json @@ -0,0 +1,24 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-log.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/mongodb.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/mongodb.json new file mode 100644 index 0000000000000..8db9defa96bc7 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/component/mongodb.json @@ -0,0 +1,35 @@ +{ + "_meta": { + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "mongodb": { + "properties": { + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "collection": { + "ignore_above": 1024, + "type": "keyword" + }, + "component": { + "ignore_above": 1024, + "type": "keyword" + }, + "context": { + "ignore_above": 1024, + "type": "keyword" + }, + "database": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/template.json new file mode 100644 index 0000000000000..4a0b634cbd6e2 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/composable/template.json @@ -0,0 +1,51 @@ +{ + "_meta": { + "description": "Sample composable template that includes all ECS fields", + "ecs_version": "8.0.0" + }, + "composed_of": [ + "ecs_8.0.0_base", + "ecs_8.0.0_log", + "ecs_8.0.0_host", + "ecs_8.0.0_mongodb" + ], + "index_patterns": [ + "kbn-data-forge-fake_stack.mongodb-*" + ], + "priority": 1, + "template": { + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ] + }, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/legacy/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/legacy/template.json new file mode 100644 index 0000000000000..5bc428a18dc97 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/generated/elasticsearch/legacy/template.json @@ -0,0 +1,99 @@ +{ + "index_patterns": [ + "kbn-data-forge-fake_stack.mongodb-*" + ], + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "message": { + "type": "match_only_text" + }, + "mongodb": { + "properties": { + "action": { + "ignore_above": 1024, + "type": "keyword" + }, + "collection": { + "ignore_above": 1024, + "type": "keyword" + }, + "component": { + "ignore_above": 1024, + "type": "keyword" + }, + "context": { + "ignore_above": 1024, + "type": "keyword" + }, + "database": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "order": 1, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/index.ts new file mode 100644 index 0000000000000..5ada370e406d8 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/ecs/index.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { MONGODB } from '../../common/constants'; + +import base from './generated/elasticsearch/composable/component/base.json'; +import log from './generated/elasticsearch/composable/component/log.json'; +import host from './generated/elasticsearch/composable/component/host.json'; +import mongodb from './generated/elasticsearch/composable/component/mongodb.json'; + +import template from './generated/elasticsearch/composable/template.json'; +import { IndexTemplateDef } from '../../../../types'; + +const ECS_VERSION = template._meta.ecs_version; + +const components = [ + { name: `${MONGODB}_${ECS_VERSION}_base`, template: base }, + { name: `${MONGODB}_${ECS_VERSION}_log`, template: log }, + { name: `${MONGODB}_${ECS_VERSION}_host`, template: host }, + { name: `${MONGODB}_${ECS_VERSION}_host`, template: mongodb }, +]; + +export const indexTemplate: IndexTemplateDef = { + namespace: MONGODB, + template: { ...template, composed_of: components.map(({ name }) => name) }, + components, +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/index.ts new file mode 100644 index 0000000000000..3f86ef1ad0415 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { GeneratorFunction, Doc } from '../../../types'; +import { createStartupEvents } from './lib/events/startup'; + +let firstRun = true; + +export const kibanaAssets = `${__dirname}/assets/mongodb.ndjson`; + +export const generateEvent: GeneratorFunction = (_config, _schedule, _index, timestamp) => { + let startupEvents: Doc[] = []; + if (firstRun) { + firstRun = false; + startupEvents = createStartupEvents(_schedule, timestamp); + } + return startupEvents; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/create_base_event.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/create_base_event.ts new file mode 100644 index 0000000000000..f277e13d27a03 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/create_base_event.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { set } from '@kbn/safer-lodash-set'; +import { Moment } from 'moment'; +import { MONGODB } from '../../../common/constants'; + +export function createBaseEvent( + timestamp: Moment, + host: string, + context: string, + component: string, + message: string, + level?: 'ERROR' | 'INFO', + database?: string, + collection?: string, + action?: string +) { + const event = { + namespace: MONGODB, + '@timestamp': timestamp.toISOString(), + host: { name: host }, + mongodb: { + context, + component, + }, + log: { + level: level || 'INFO', + logger: MONGODB, + }, + message, + tags: [`infra:${MONGODB}`], + }; + + if (database) { + set(event, 'mongodb.database', database); + } + + if (collection) { + set(event, 'mongodb.collection', collection); + } + + if (action) { + set(event, 'mongodb.action', action); + } + + return event; +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/mongo_actions.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/mongo_actions.ts new file mode 100644 index 0000000000000..53590af0dfdf3 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/mongo_actions.ts @@ -0,0 +1,212 @@ +/* + * Copyright 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 { memoize, sample } from 'lodash'; +import { faker } from '@faker-js/faker'; +import { v4 } from 'uuid'; +import { Moment } from 'moment'; +import { createBaseEvent } from './create_base_event'; +import { MONGODB_HOSTS } from '../../../common/constants'; +import { Doc } from '../../../../../types'; + +const getIpAddressAndPort = memoize((_source: string) => { + const ip = faker.internet.ip(); + const port = faker.string.numeric(5); + return `${ip}:${port}`; +}); + +export function generateRandomHexString(length: number) { + const hexChars = '0123456789abcdef'; + let hexString = ''; + for (let i = 0; i < length; i++) { + hexString += hexChars[Math.floor(Math.random() * hexChars.length)]; + } + return hexString; +} + +export function createMongoObject(obj: object) { + function stringifyValue(value: any): string { + if (typeof value === 'object' && value !== null) { + if (Array.isArray(value)) { + return `[${value.map(stringifyValue).join(', ')}]`; + } + return stringifyObject(value); + } + return JSON.stringify(value); + } + + function stringifyObject(objToStringify: object) { + return `{ _id: ObjectId("${generateRandomHexString(20)}"), ${Object.entries(objToStringify) + .map(([key, value]) => `${key}: ${stringifyValue(value)}`) + .join(', ')} }`; + } + + return stringifyObject(obj); +} + +export function wrapInConnection( + timestamp: Moment, + source: string, + mongoHost: string, + user: string, + database: string, + events: Doc[] +) { + return [ + createBaseEvent( + timestamp, + mongoHost, + 'listener', + 'NETWORK', + `connection accepted from ${getIpAddressAndPort(source)} #1 (1 connection now open)`, + 'INFO' + ), + createBaseEvent( + timestamp, + mongoHost, + 'conn1', + 'NETWORK', + `received client metadata from ${getIpAddressAndPort( + source + )} conn1: { driver: { name: "nodejs", version: "4.1.1" }, os: { type: "Linux", name: "Ubuntu", architecture: "x86_64", version: "18.04" }, platform: "Node.js v12.13.0, LE, mongodb-core: 3.3.1" }`, + 'INFO' + ), + createBaseEvent( + timestamp, + mongoHost, + 'conn1', + 'ACCESS', + `Successfully authenticated as user '${user}' on ${database}`, + 'INFO', + database + ), + ...events, + createBaseEvent( + timestamp, + mongoHost, + 'conn1', + 'NETWORK', + `end connection ${getIpAddressAndPort(source)} (0 connections now open)`, + 'INFO' + ), + ]; +} + +export function createReadEvent( + timestamp: Moment, + source: string, + user: string, + database: string, + collection: string +) { + const mongoHost = sample(MONGODB_HOSTS) as string; + const events = [ + createBaseEvent( + timestamp, + mongoHost, + 'conn1', + 'QUERY', + `query ${database}.${collection} planSummary: COLLSCAN ntoreturn:0 ntoskip:0 nscanned:1000 keysExamined:0 docsExamined:1000 cursorExhausted:1 keyUpdates:0 numYields:1 locks(micros) r:2000 n:1000 rlim:5000 reslen:4027 0ms` + ), + createBaseEvent( + timestamp, + mongoHost, + 'conn1', + 'QUERY', + `query ${database}.${collection} planSummary: IXSCAN { name: 1 } ntoreturn:0 ntoskip:0 nscanned:500 keysExamined:500 docsExamined:500 cursorExhausted:1 keyUpdates:0 numYields:1 locks(micros) r:2000 n:500 rlim:5000 reslen:2013 0ms`, + 'INFO', + database, + collection, + 'query' + ), + ]; + return wrapInConnection(timestamp, source, mongoHost, user, database, events); +} + +export function createWriteEvent( + timestamp: Moment, + source: string, + user: string, + database: string, + collection: string, + document: object +) { + const mongoHost = sample(MONGODB_HOSTS) as string; + const events = [ + createBaseEvent( + timestamp, + mongoHost, + 'conn1', + 'COMMAND', + `command ${database}.${collection} command: insert { documents: [ ${createMongoObject( + document + )} ], ordered: true, writeConcern: { w: "majority", wtimeout: 5000 } } numYields:0 reslen:67 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, Database: { acquireCount: { w: 2 } }, Collection: { acquireCount: { w: 1 } } } storage:{ data: { bytesWritten: 160 } } protocol:op_msg 0ms`, + 'INFO', + database, + collection, + 'insert' + ), + ]; + + return wrapInConnection(timestamp, source, mongoHost, user, database, events); +} + +export function createDeleteEvent( + timestamp: Moment, + source: string, + user: string, + database: string, + collection: string +) { + const mongoHost = sample(MONGODB_HOSTS) as string; + const events = [ + createBaseEvent( + timestamp, + mongoHost, + 'conn1', + 'COMMAND', + `command ${database}.${collection} command: delete { q: { _id: ObjectId("${generateRandomHexString( + 20 + )}") }, limit: 1, writeConcern: { w: "majority", wtimeout: 5000 } } planSummary: IXSCAN { _id: 1 } keysExamined:1 docsExamined:1 nMatched:1 nRemoved:1 numYields:0 reslen:60 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, Database: { acquireCount: { w: 1 } }, Collection: { acquireCount: { w: 1 } }, Mutex: { acquireCount: { r: 1 } } } storage:{ data: { bytesRead: 56, bytesWritten: 87 } } protocol:op_msg 0ms`, + 'INFO', + database, + collection, + 'delete' + ), + ]; + return wrapInConnection(timestamp, source, mongoHost, user, database, events); +} + +export function createUpdateEvent( + timestamp: Moment, + source: string, + user: string, + database: string, + collection: string, + document: object +) { + const mongoHost = sample(MONGODB_HOSTS) as string; + const events = [ + createBaseEvent( + timestamp, + mongoHost, + 'conn1', + 'COMMAND', + `command ${database}.${collection} command: update { update: { _id: ObjectId("${generateRandomHexString( + 20 + )}") }, updateObj: { $set: ${createMongoObject( + document + )} }, writeConcern: { w: "majority", wtimeout: 5000 }, lsid: { id: UUID("${v4()}") } } numYields:0 reslen:85 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, Database: { acquireCount: { w: 2 } }, Collection: { acquireCount: { w: 1 } } } storage:{ data: { bytesWritten: 126 } } protocol:op_msg 0ms`, + 'INFO', + database, + collection, + 'updateObj' + ), + ]; + + return wrapInConnection(timestamp, source, mongoHost, user, database, events); +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/startup.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/startup.ts new file mode 100644 index 0000000000000..5cf47673d5b77 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/mongodb/lib/events/startup.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 { faker } from '@faker-js/faker'; +import { EventFunction } from '../../../../../types'; +import { MONGODB_HOSTS } from '../../../common/constants'; +import { createBaseEvent } from './create_base_event'; + +export const createStartupEvents: EventFunction = (_schedule, timestamp) => + MONGODB_HOSTS.map((host) => + [ + `MongoDB starting : pid=${faker.string.numeric( + 4 + )} port=27017 dbpath=/data/db 64-bit host=${host} db version v5.0.0`, + 'git version: abcdef1234567890123456789012345678901234', + 'OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020', + 'allocator: tcmalloc', + 'modules: none', + 'build environment:\n distarch: x86_64\n target_arch: x86_64', + 'options: { net: { bindIp: "0.0.0.0", port: 27017 }, storage: { dbPath: "/data/db" } }', + "Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.", + 'wiredtiger_open config: create,cache_size=5G,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),compatibility=(release="5.0",require_max="5.0"),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress,compact_progress],', + 'WiredTiger message [1659274801:140079][1234:0x7f00d319c700], txn-recover: Set global recovery timestamp: (0, 0)', + ' WiredTiger recoveryTimestamp. Ts: Timestamp(0, 0)', + 'Timestamp monitor starting', + '** WARNING: Access control', + ].map((message) => + createBaseEvent(timestamp, host, 'initandlisten', 'CONTROL', message, 'INFO') + ) + ).flat(); diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/assets/nginx_proxy.ndjson b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/assets/nginx_proxy.ndjson new file mode 100644 index 0000000000000..ec89de260079e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/assets/nginx_proxy.ndjson @@ -0,0 +1,2 @@ +{"attributes":{"fieldAttrs":"{}","fieldFormatMap":"{}","fields":"[]","name":"Ngnix Proxy Logs","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"kbn-data-forge-fake_stack.nginx_proxy-*","typeMeta":"{}"},"coreMigrationVersion":"8.8.0","created_at":"2023-05-24T23:15:08.897Z","id":"a3696044-a05a-4d05-af22-2a97265c62f6","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2023-05-24T23:15:08.897Z","version":"WzIxLDFd"} +{"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":1,"missingRefCount":0,"missingReferences":[]} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/mapping-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/mapping-settings.json new file mode 100644 index 0000000000000..f24f6c0629ade --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/mapping-settings.json @@ -0,0 +1,21 @@ +{ + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "type": "keyword", + "ignore_above": 1024, + "fields": { + "text": { "type": "text", "norms" : false } + } + }, + "match_mapping_type": "string" + } + } + ] +} + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/subset.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/subset.yml new file mode 100644 index 0000000000000..dbc663c5949a1 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/subset.yml @@ -0,0 +1,12 @@ +--- +name: nginx_proxy +fields: + base: + fields: "*" + log: + fields: + level: {} + logger: {} + host: + fields: + name: {} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/template-settings-legacy.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/template-settings-legacy.json new file mode 100644 index 0000000000000..38f73988de42d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/template-settings-legacy.json @@ -0,0 +1,17 @@ +{ + "index_patterns": ["kbn-data-forge-fake_stack.nginx_proxy-*"], + "order": 1, + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} + + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/template-settings.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/template-settings.json new file mode 100644 index 0000000000000..03bcce96fa85f --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/fields/template-settings.json @@ -0,0 +1,16 @@ +{ + "index_patterns": ["kbn-data-forge-fake_stack.nginx_proxy-*"], + "priority": 1, + "template": { + "settings": { + "index": { + "codec" : "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generate.sh b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generate.sh new file mode 100755 index 0000000000000..151e98b97fed3 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generate.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +cd ../../../../../../../../../ecs +NAME=nginx_proxy + +BASE=../kibana/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/$NAME +ECS=$BASE/ecs + +python3 ./scripts/generator.py --ref v8.0.0 \ + --subset $ECS/fields/subset.yml \ + --out $ECS/ \ + --template-settings-legacy $ECS/fields/template-settings-legacy.json \ + --template-settings $ECS/fields/template-settings.json \ + --mapping-settings $ECS/fields/mapping-settings.json + diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/beats/fields.ecs.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/beats/fields.ecs.yml new file mode 100644 index 0000000000000..9558edd94c2da --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/beats/fields.ecs.yml @@ -0,0 +1,107 @@ +# WARNING! Do not edit this file directly, it was generated by the ECS project, +# based on ECS version 8.0.0. +# Please visit https://github.com/elastic/ecs to suggest changes to ECS fields. + +- key: ecs + title: ECS + description: ECS Fields. + fields: + - name: '@timestamp' + level: core + required: true + type: date + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + default_field: true + - name: labels + level: core + type: object + object_type: keyword + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + default_field: true + - name: message + level: core + type: match_only_text + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + default_field: true + - name: tags + level: core + type: keyword + ignore_above: 1024 + description: List of keywords used to tag each event. + example: '["production", "env2"]' + default_field: true + - name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include + hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + default_field: true + fields: + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + - name: log + title: Log + group: 2 + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + type: group + default_field: true + fields: + - name: level + level: core + type: keyword + ignore_above: 1024 + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + - name: logger + level: core + type: keyword + ignore_above: 1024 + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/csv/fields.csv b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/csv/fields.csv new file mode 100644 index 0000000000000..e66fb987788df --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/csv/fields.csv @@ -0,0 +1,8 @@ +ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description +8.0.0,true,base,@timestamp,date,core,,2016-05-23T08:05:34.853Z,Date/time when the event originated. +8.0.0,true,base,labels,object,core,,"{""application"": ""foo-bar"", ""env"": ""production""}",Custom key/value pairs. +8.0.0,true,base,message,match_only_text,core,,Hello World,Log message optimized for viewing in a log viewer. +8.0.0,true,base,tags,keyword,core,array,"[""production"", ""env2""]",List of keywords used to tag each event. +8.0.0,true,host,host.name,keyword,core,,,Name of the host. +8.0.0,true,log,log.level,keyword,core,,error,Log level of the log event. +8.0.0,true,log,log.logger,keyword,core,,org.elasticsearch.bootstrap.Bootstrap,Name of the logger. diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/ecs_flat.yml new file mode 100644 index 0000000000000..3d22bd599c6ce --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/ecs_flat.yml @@ -0,0 +1,105 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/ecs_nested.yml new file mode 100644 index 0000000000000..9066a8b73fcd7 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/ecs_nested.yml @@ -0,0 +1,156 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/subset/nginx_proxy/ecs_flat.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/subset/nginx_proxy/ecs_flat.yml new file mode 100644 index 0000000000000..3d22bd599c6ce --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/subset/nginx_proxy/ecs_flat.yml @@ -0,0 +1,105 @@ +'@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when the + event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date +host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain + name, or a name specified by the user. The sender decides which value to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword +labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object +log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this is the + one that goes in `log.level`. If your source doesn''t specify one, you may put + your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword +log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the name + of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword +message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text +tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/subset/nginx_proxy/ecs_nested.yml b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/subset/nginx_proxy/ecs_nested.yml new file mode 100644 index 0000000000000..9066a8b73fcd7 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/ecs/subset/nginx_proxy/ecs_nested.yml @@ -0,0 +1,156 @@ +base: + description: The `base` field set contains all fields which are at the root of the + events. These fields are common across all types of events. + fields: + '@timestamp': + dashed_name: timestamp + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + flat_name: '@timestamp' + level: core + name: '@timestamp' + normalize: [] + required: true + short: Date/time when the event originated. + type: date + labels: + dashed_name: labels + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: '{"application": "foo-bar", "env": "production"}' + flat_name: labels + level: core + name: labels + normalize: [] + object_type: keyword + short: Custom key/value pairs. + type: object + message: + dashed_name: message + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be + concatenated to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + flat_name: message + level: core + name: message + normalize: [] + short: Log message optimized for viewing in a log viewer. + type: match_only_text + tags: + dashed_name: tags + description: List of keywords used to tag each event. + example: '["production", "env2"]' + flat_name: tags + ignore_above: 1024 + level: core + name: tags + normalize: + - array + short: List of keywords used to tag each event. + type: keyword + group: 1 + name: base + prefix: '' + root: true + short: All fields defined directly at the root of the events. + title: Base + type: group +host: + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include hardware, + virtual machines, Docker containers, and Kubernetes nodes.' + fields: + host.name: + dashed_name: host-name + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + flat_name: host.name + ignore_above: 1024 + level: core + name: name + normalize: [] + short: Name of the host. + type: keyword + group: 2 + name: host + nestings: + - host.geo + - host.os + prefix: host. + reused_here: + - full: host.geo + schema_name: geo + short: Fields describing a location. + - full: host.os + schema_name: os + short: OS fields contain information about the operating system. + short: Fields describing the relevant computing instance. + title: Host + type: group +log: + description: 'Details about the event''s logging mechanism or logging transport. + + The log.* fields are typically populated with details about the logging mechanism + used to create and/or transport the event. For example, syslog details belong + under `log.syslog.*`. + + The details specific to your event source are typically not logged under `log.*`, + but rather in `event.*` or in other ECS fields.' + fields: + log.level: + dashed_name: log-level + description: 'Original log level of the log event. + + If the source of the event provides a log level or textual severity, this + is the one that goes in `log.level`. If your source doesn''t specify one, + you may put your event transport''s severity here (e.g. Syslog severity). + + Some examples are `warn`, `err`, `i`, `informational`.' + example: error + flat_name: log.level + ignore_above: 1024 + level: core + name: level + normalize: [] + short: Log level of the log event. + type: keyword + log.logger: + dashed_name: log-logger + description: The name of the logger inside an application. This is usually the + name of the class which initialized the logger, or can be a custom name. + example: org.elasticsearch.bootstrap.Bootstrap + flat_name: log.logger + ignore_above: 1024 + level: core + name: logger + normalize: [] + short: Name of the logger. + type: keyword + group: 2 + name: log + prefix: log. + short: Details about the event's logging mechanism. + title: Log + type: group diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/base.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/base.json new file mode 100644 index 0000000000000..cebc9c2971745 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/base.json @@ -0,0 +1,25 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-base.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "@timestamp": { + "type": "date" + }, + "labels": { + "type": "object" + }, + "message": { + "type": "match_only_text" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/host.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/host.json new file mode 100644 index 0000000000000..3f9c7ae730291 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/host.json @@ -0,0 +1,20 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-host.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/log.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/log.json new file mode 100644 index 0000000000000..e43ca609d387e --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/component/log.json @@ -0,0 +1,24 @@ +{ + "_meta": { + "documentation": "https://www.elastic.co/guide/en/ecs/current/ecs-log.html", + "ecs_version": "8.0.0" + }, + "template": { + "mappings": { + "properties": { + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/template.json new file mode 100644 index 0000000000000..52c9d48879d1f --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/composable/template.json @@ -0,0 +1,50 @@ +{ + "_meta": { + "description": "Sample composable template that includes all ECS fields", + "ecs_version": "8.0.0" + }, + "composed_of": [ + "ecs_8.0.0_base", + "ecs_8.0.0_log", + "ecs_8.0.0_host" + ], + "index_patterns": [ + "kbn-data-forge-fake_stack.nginx_proxy-*" + ], + "priority": 1, + "template": { + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ] + }, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + } + } + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/legacy/template.json b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/legacy/template.json new file mode 100644 index 0000000000000..08a3534017b85 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/generated/elasticsearch/legacy/template.json @@ -0,0 +1,75 @@ +{ + "index_patterns": [ + "kbn-data-forge-fake_stack.nginx_proxy-*" + ], + "mappings": { + "_meta": { + "version": "1.6.0" + }, + "date_detection": false, + "dynamic_templates": [ + { + "strings_as_keyword": { + "mapping": { + "fields": { + "text": { + "norms": false, + "type": "text" + } + }, + "ignore_above": 1024, + "type": "keyword" + }, + "match_mapping_type": "string" + } + } + ], + "properties": { + "@timestamp": { + "type": "date" + }, + "host": { + "properties": { + "name": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "labels": { + "type": "object" + }, + "log": { + "properties": { + "level": { + "ignore_above": 1024, + "type": "keyword" + }, + "logger": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "message": { + "type": "match_only_text" + }, + "tags": { + "ignore_above": 1024, + "type": "keyword" + } + } + }, + "order": 1, + "settings": { + "index": { + "codec": "best_compression", + "mapping": { + "total_fields": { + "limit": 2000 + } + }, + "refresh_interval": "2s" + } + } +} diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/index.ts new file mode 100644 index 0000000000000..5db3126871a45 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/ecs/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 { NGINX_PROXY } from '../../common/constants'; + +import base from './generated/elasticsearch/composable/component/base.json'; +import log from './generated/elasticsearch/composable/component/log.json'; +import host from './generated/elasticsearch/composable/component/host.json'; + +import template from './generated/elasticsearch/composable/template.json'; +import { IndexTemplateDef } from '../../../../types'; + +const ECS_VERSION = template._meta.ecs_version; + +const components = [ + { name: `${NGINX_PROXY}_${ECS_VERSION}_base`, template: base }, + { name: `${NGINX_PROXY}_${ECS_VERSION}_log`, template: log }, + { name: `${NGINX_PROXY}_${ECS_VERSION}_host`, template: host }, +]; + +export const indexTemplate: IndexTemplateDef = { + namespace: NGINX_PROXY, + template: { ...template, composed_of: components.map(({ name }) => name) }, + components, +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/index.ts new file mode 100644 index 0000000000000..2334d71d3f867 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { GeneratorFunction, Doc } from '../../../types'; +import { createStartupEvents } from './lib/events/startup'; + +let firstRun = true; + +export const kibanaAssets = `${__dirname}/assets/nginx_proxy.ndjson`; + +export const generateEvent: GeneratorFunction = (_config, schedule, _index, timestamp) => { + let startupEvents: Doc[] = []; + if (firstRun) { + firstRun = false; + startupEvents = createStartupEvents(schedule, timestamp); + } + return startupEvents; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/create_nginx_timestamp.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/create_nginx_timestamp.ts new file mode 100644 index 0000000000000..39dc657832191 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/create_nginx_timestamp.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. + */ + +import { Moment } from 'moment'; + +export const createNginxTimestamp = (time: Moment) => time.format('DD/MMM/YYYY HH:mm:ss ZZ'); diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/create_nginx_log.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/create_nginx_log.ts new file mode 100644 index 0000000000000..b6af0163d4670 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/create_nginx_log.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { faker } from '@faker-js/faker'; +import { memoize, sample } from 'lodash'; +import { Moment } from 'moment'; +import { NGINX_PROXY, NGINX_PROXY_HOSTS } from '../../../common/constants'; +import { createNginxTimestamp } from '../create_nginx_timestamp'; + +const getClientIp = memoize((_userId: string) => { + return faker.internet.ip(); +}); + +export const createNginxLog = ( + timestamp: Moment, + method: string, + statusCode: number, + bytes: number, + path: string, + url: string, + userAgent: string, + domain: string, + hostWithPort: string, + userId: string +) => { + const host = sample(NGINX_PROXY_HOSTS) as string; + return [ + { + namespace: NGINX_PROXY, + '@timestamp': timestamp.toISOString(), + message: `[${createNginxTimestamp(timestamp)}] ${getClientIp( + userId + )} - ${userId} ${domain} to: ${hostWithPort}: "${method} ${path} HTTP/1.1" ${statusCode} ${bytes} "${url}" "${userAgent}"`, + log: { level: 'INFO', logger: NGINX_PROXY }, + host: { name: host }, + }, + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/create_upstream_timedout.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/create_upstream_timedout.ts new file mode 100644 index 0000000000000..ea41aa0282608 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/create_upstream_timedout.ts @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { faker } from '@faker-js/faker'; +import { memoize, sample } from 'lodash'; +import { Moment } from 'moment'; +import { NGINX_PROXY, NGINX_PROXY_HOSTS } from '../../../common/constants'; +import { createNginxTimestamp } from '../create_nginx_timestamp'; + +const getClientIp = memoize((_userId: string) => { + return faker.internet.ip(); +}); + +// 2023/09/12 12:34:56 [error] 12345#12345: *789 upstream timed out (110: Connection timed out) while connecting to upstream, client: 123.456.789.123, server: example.com, request: "GET /some/path HTTP/1.1", upstream: "http://127.0.0.1:6000/some/path", host: "example.com" + +export const createUpstreamTimeout = ( + timestamp: Moment, + method: string, + path: string, + domain: string, + hostWithPort: string, + userId: string +) => { + const host = sample(NGINX_PROXY_HOSTS) as string; + const connectionCode = faker.string.numeric(3); + return [ + { + namespace: NGINX_PROXY, + '@timestamp': timestamp.toISOString(), + message: `[${createNginxTimestamp( + timestamp + )}] *${connectionCode} upstream timed out (110: Connection timed out) while connecting to upstream, client: ${getClientIp( + userId + )}, server: ${domain}, request: "${method} ${path} HTTP/1.1", upstream: "http://${hostWithPort}${path}", host: "${domain}"`, + log: { level: 'ERROR', logger: NGINX_PROXY }, + host: { name: host }, + }, + ]; +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/startup.ts b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/startup.ts new file mode 100644 index 0000000000000..11ef46dc93afd --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/fake_stack/nginx_proxy/lib/events/startup.ts @@ -0,0 +1,44 @@ +/* + * Copyright 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 { faker } from '@faker-js/faker'; +import { EventFunction } from '../../../../../types'; +import { NGINX_PROXY, NGINX_PROXY_HOSTS } from '../../../common/constants'; +import { createNginxTimestamp } from '../create_nginx_timestamp'; + +export const createStartupEvents: EventFunction = (_schedule, timestamp) => { + return NGINX_PROXY_HOSTS.map((name) => { + const pid = faker.string.numeric(4); + const threadId = faker.string.numeric(4); + return [ + `[${createNginxTimestamp( + timestamp + )}] [notice] ${pid}#${threadId}: using the "epoll" event method`, + `[${createNginxTimestamp(timestamp)}] [notice] ${pid}#${threadId}: nginx/1.18.0 (Ubuntu)`, + `[${createNginxTimestamp( + timestamp + )}] [notice] ${pid}#${threadId}: built by gcc 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)`, + `[${createNginxTimestamp( + timestamp + )}] [notice] ${pid}#${threadId}: OS: Linux 5.4.0-72-generic`, + `[${createNginxTimestamp( + timestamp + )}] [notice] ${pid}#${threadId}: getrlimit(RLIMIT_NOFILE): 1024:4096`, + `[${createNginxTimestamp(timestamp)}] [notice] ${pid}#${threadId}: start worker processes`, + `[${createNginxTimestamp(timestamp)}] ${pid}#${threadId}: start worker process ${pid}`, + ].map((message) => ({ + namespace: NGINX_PROXY, + '@timestamp': timestamp.toISOString(), + message, + host: { name }, + log: { + level: 'ERROR', + logger: NGINX_PROXY, + }, + })); + }).flat(); +}; diff --git a/x-pack/packages/kbn-data-forge/src/data_sources/index.ts b/x-pack/packages/kbn-data-forge/src/data_sources/index.ts new file mode 100644 index 0000000000000..5777c0fbede12 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/data_sources/index.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { GeneratorFunction, Dataset, IndexTemplateDef } from '../types'; +import { FAKE_HOSTS, FAKE_LOGS, FAKE_STACK } from '../constants'; + +import * as fakeLogs from './fake_logs'; +import * as fakeHosts from './fake_hosts'; +import * as fakeStack from './fake_stack'; + +export const indexTemplates: Record = { + [FAKE_HOSTS]: [fakeHosts.indexTemplate], + [FAKE_LOGS]: [fakeLogs.indexTemplate], + [FAKE_STACK]: fakeStack.indexTemplate, +}; + +export const generateEvents: Record = { + [FAKE_HOSTS]: fakeHosts.generateEvent, + [FAKE_LOGS]: fakeLogs.generateEvent, + [FAKE_STACK]: fakeStack.generteEvent, +}; + +export const kibanaAssets: Record = { + [FAKE_HOSTS]: [], + [FAKE_LOGS]: [], + [FAKE_STACK]: fakeStack.kibanaAssets, +}; diff --git a/x-pack/packages/kbn-data-forge/src/generate.ts b/x-pack/packages/kbn-data-forge/src/generate.ts new file mode 100644 index 0000000000000..f1fe9e290fc9c --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/generate.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 { Client } from '@elastic/elasticsearch'; +import { ToolingLog } from '@kbn/tooling-log'; +import { createConfig } from './lib/create_config'; +import { run } from './run'; +import { PartialConfig } from './types'; + +export const generate = async ({ + client, + config: partialConfig, + logger, +}: { + client: Client; + config: PartialConfig; + logger: ToolingLog; +}): Promise => { + const config = createConfig(partialConfig); + return await run(config, client, logger); +}; diff --git a/x-pack/packages/kbn-data-forge/src/lib/add_ephemeral_project_id.ts b/x-pack/packages/kbn-data-forge/src/lib/add_ephemeral_project_id.ts new file mode 100644 index 0000000000000..0ba789c5a50b0 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/add_ephemeral_project_id.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { random, times } from 'lodash'; +import { v4 } from 'uuid'; +import { Doc } from '../types'; + +const MIN_DURRATION = 300 * 1000; // 5m +const MAX_DURRATION = 12 * 60 * 60 * 1000; // 12 hours +let projectIds: Array<[string, number]> = []; + +export function addEphemeralProjectId(totalProjectIds: number, events: Doc[]) { + if (totalProjectIds === 0) { + return events; + } + + const now = Date.now(); + const workingIds = projectIds.filter(([_id, expirationDate]) => expirationDate > now); + const numberOfIdsToCreate = totalProjectIds - workingIds.length; + + if (numberOfIdsToCreate > 0) { + times(numberOfIdsToCreate).forEach(() => { + const projectId = v4(); + const expiration = now + random(MIN_DURRATION, MAX_DURRATION); + const project: [string, number] = [projectId, expiration]; + workingIds.push(project); + }); + } + + projectIds = workingIds; + + return projectIds.flatMap(([id]) => { + return events.map((event) => { + const newLabels = event.labels ? { ...event.labels, projectId: id } : { projectId: id }; + return { ...event, labels: newLabels }; + }); + }); +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/cli_to_partial_config.ts b/x-pack/packages/kbn-data-forge/src/lib/cli_to_partial_config.ts new file mode 100644 index 0000000000000..7a355a61840c1 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/cli_to_partial_config.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 { isLeft } from 'fp-ts/lib/Either'; +import { PathReporter } from 'io-ts/lib/PathReporter'; +import { DEFAULTS } from '../constants'; +import { DatasetRT, PartialConfig, Schedule, CliOptions } from '../types'; + +export function cliOptionsToPartialConfig(options: CliOptions) { + const schedule: Schedule = { + template: options.eventTemplate, + start: options.lookback, + end: false, + }; + + const decodedDataset = DatasetRT.decode(options.dataset); + if (isLeft(decodedDataset)) { + throw new Error( + `Could not validate "DATASET": ${PathReporter.report(decodedDataset).join('\n')}` + ); + } + + const config: PartialConfig = { + elasticsearch: { + host: options.elasticsearchHost, + username: options.elasticsearchUsername, + password: options.elasticsearchPassword, + installKibanaUser: DEFAULTS.SKIP_KIBANA_USER, + apiKey: options.elasticsearchApiKey || '', + }, + kibana: { + host: options.kibanaUrl, + username: options.kibanaUsername, + password: options.kibanaPassword, + installAssets: !!options.installKibanaAssets, + }, + indexing: { + dataset: decodedDataset.right, + scenario: options.scenario, + interval: options.indexInterval, + eventsPerCycle: options.eventsPerCycle, + payloadSize: options.payloadSize, + concurrency: options.concurrency, + reduceWeekendTrafficBy: options.reduceWeekendTrafficBy, + ephemeralProjectIds: options.ephemeralProjectIds, + }, + schedule: [schedule], + }; + + return config; +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/create_config.ts b/x-pack/packages/kbn-data-forge/src/lib/create_config.ts new file mode 100644 index 0000000000000..d6d88e9acb9ff --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/create_config.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; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isLeft } from 'fp-ts/Either'; +import { PathReporter } from 'io-ts/lib/PathReporter'; +import { promises } from 'fs'; +import yaml from 'js-yaml'; +import { Config, ConfigRT, DatasetRT, Schedule, PartialConfig, PartialConfigRT } from '../types'; +import { DEFAULTS } from '../constants'; + +export async function readConfig(filePath: string): Promise { + const data = await promises.readFile(filePath); + const decodedPartialConfig = PartialConfigRT.decode(yaml.load(data.toString())); + if (isLeft(decodedPartialConfig)) { + throw new Error( + `Could not validate config: ${PathReporter.report(decodedPartialConfig).join('\n')}` + ); + } + return decodedPartialConfig.right; +} + +export function createConfig(partialConfig: PartialConfig = {}) { + const schedule: Schedule = { + template: DEFAULTS.EVENT_TEMPLATE, + start: DEFAULTS.LOOKBACK || 'now', + end: false, + }; + + const decodedDataset = DatasetRT.decode(DEFAULTS.DATASET); + if (isLeft(decodedDataset)) { + throw new Error( + `Could not validate "DATASET": ${PathReporter.report(decodedDataset).join('\n')}` + ); + } + + const config: Config = { + elasticsearch: { + host: DEFAULTS.ELASTICSEARCH_HOST, + username: DEFAULTS.ELASTICSEARCH_USERNAME, + password: DEFAULTS.ELASTICSEARCH_PASSWORD, + installKibanaUser: false, + apiKey: DEFAULTS.ELASTICSEARCH_API_KEY, + ...(partialConfig.elasticsearch ?? {}), + }, + kibana: { + host: DEFAULTS.KIBANA_URL, + username: DEFAULTS.KIBANA_USERNAME, + password: DEFAULTS.KIBANA_PASSWORD, + installAssets: DEFAULTS.INSTALL_KIBANA_ASSETS, + ...(partialConfig.kibana ?? {}), + }, + indexing: { + dataset: decodedDataset.right, + scenario: DEFAULTS.SCENARIO, + interval: DEFAULTS.INDEX_INTERVAL, + eventsPerCycle: DEFAULTS.EVENTS_PER_CYCLE, + payloadSize: DEFAULTS.PAYLOAD_SIZE, + concurrency: DEFAULTS.CONCURRENCY, + reduceWeekendTrafficBy: DEFAULTS.REDUCE_WEEKEND_TRAFFIC_BY, + ephemeralProjectIds: DEFAULTS.EPHEMERAL_PROJECT_IDS, + ...(partialConfig.indexing ?? {}), + }, + schedule: partialConfig.schedule ?? [schedule], + }; + + const decodedConfig = ConfigRT.decode(config); + if (isLeft(decodedConfig)) { + throw new Error(`Could not validate config: ${PathReporter.report(decodedConfig).join('\n')}`); + } + + return decodedConfig.right; +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/create_events.ts b/x-pack/packages/kbn-data-forge/src/lib/create_events.ts new file mode 100644 index 0000000000000..7827b996bfd60 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/create_events.ts @@ -0,0 +1,132 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import type { Moment } from 'moment'; +import moment from 'moment'; +import { isNumber, random, range } from 'lodash'; +import { ToolingLog } from '@kbn/tooling-log'; +import { Client } from '@elastic/elasticsearch'; +import { Config, EventsPerCycle, EventsPerCycleTransitionDefRT, ParsedSchedule } from '../types'; +import { generateEvents } from '../data_sources'; +import { createQueue } from './queue'; +import { wait } from './wait'; +import { isWeekendTraffic } from './is_weekend'; +import { createExponentialFunction, createLinearFunction, createSineFunction } from './data_shapes'; + +function createEventsPerCycleFn( + schedule: ParsedSchedule, + eventsPerCycle: EventsPerCycle, + logger: ToolingLog +): (timestamp: Moment) => number { + if (EventsPerCycleTransitionDefRT.is(eventsPerCycle) && isNumber(schedule.end)) { + const startPoint = { x: schedule.start, y: eventsPerCycle.start }; + const endPoint = { x: schedule.end, y: eventsPerCycle.end }; + if (eventsPerCycle.method === 'exp') { + return createExponentialFunction(startPoint, endPoint); + } + if (eventsPerCycle.method === 'sine') { + return createSineFunction(startPoint, endPoint, eventsPerCycle.options?.period ?? 60); + } + return createLinearFunction(startPoint, endPoint); + } else if (EventsPerCycleTransitionDefRT.is(eventsPerCycle) && schedule.end === false) { + logger.warning('EventsPerCycle must be a number if the end value of schedule is false.'); + } + + return (_timestamp: Moment) => + EventsPerCycleTransitionDefRT.is(eventsPerCycle) ? eventsPerCycle.end : eventsPerCycle; +} + +export async function createEvents( + config: Config, + client: Client, + schedule: ParsedSchedule, + end: Moment | false, + currentTimestamp: Moment, + logger: ToolingLog, + continueIndexing = false +): Promise { + const queue = createQueue(config, client, logger); + + if ( + !queue.paused && + schedule.delayInMinutes && + schedule.delayEveryMinutes && + currentTimestamp.minute() % schedule.delayEveryMinutes === 0 + ) { + logger.info('Pausing queue'); + queue.pause(); + setTimeout(() => { + logger.info('Resuming queue'); + queue.resume(); + }, schedule.delayInMinutes * 60 * 1000); + } + + const eventsPerCycle = schedule.eventsPerCycle ?? config.indexing.eventsPerCycle; + const interval = schedule.interval ?? config.indexing.interval; + const calculateEventsPerCycle = createEventsPerCycleFn(schedule, eventsPerCycle, logger); + const totalEvents = calculateEventsPerCycle(currentTimestamp); + + if (totalEvents > 0) { + let epc = schedule.randomness + ? random( + Math.round(totalEvents - totalEvents * schedule.randomness), + Math.round(totalEvents + totalEvents * schedule.randomness) + ) + : totalEvents; + if (config.indexing.reduceWeekendTrafficBy && isWeekendTraffic(currentTimestamp)) { + logger.info( + `Reducing traffic from ${epc} to ${epc * (1 - config.indexing.reduceWeekendTrafficBy)}` + ); + epc = epc * (1 - config.indexing.reduceWeekendTrafficBy); + } + // range(epc).map((i) => { + // const generateEvent = generateEvents[config.indexing.dataset] || generateEvents.fake_logs; + // const eventTimestamp = moment(random(currentTimestamp.valueOf(), currentTimestamp.valueOf() + interval)); + // return generateEvent(config, schedule, i, eventTimestamp); + // }).flat().forEach((event) => queue.push(event)); + range(epc) + .map(() => + moment(random(currentTimestamp.valueOf(), currentTimestamp.valueOf() + interval - 1)) + ) + .sort() + .map((ts, i) => { + const generateEvent = generateEvents[config.indexing.dataset] || generateEvents.fake_logs; + return generateEvent(config, schedule, i, ts); + }) + .flat() + .forEach((event) => queue.push(event)); + await queue.drain(); + } else { + logger.info({ took: 0, latency: 0, indexed: 0 }, 'Indexing 0 documents.'); + } + + const endTs = end === false ? moment() : end; + if (currentTimestamp.isBefore(endTs)) { + return createEvents( + config, + client, + schedule, + end, + currentTimestamp.add(interval, 'ms'), + logger, + continueIndexing + ); + } + if (currentTimestamp.isSameOrAfter(endTs) && continueIndexing) { + await wait(interval, logger); + return createEvents( + config, + client, + schedule, + end, + currentTimestamp.add(interval, 'ms'), + logger, + continueIndexing + ); + } + logger.info(`Indexing complete for ${schedule.template} events.`); +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_exponetial_function.ts b/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_exponetial_function.ts new file mode 100644 index 0000000000000..f8f94edc06b1d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_exponetial_function.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 { Moment } from 'moment'; +import { Point } from '../../types'; + +export function createExponentialFunction(start: Point, end: Point) { + const totalPoints = end.x - start.x; + const ratio = end.y / start.y; + const exponent = Math.log(ratio) / (totalPoints - 1); + return (timestamp: Moment) => { + const x = timestamp.valueOf() - start.x; + return start.y * Math.exp(exponent * x); + }; +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_linear_function.ts b/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_linear_function.ts new file mode 100644 index 0000000000000..031f7abde210a --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_linear_function.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. + */ + +import { Moment } from 'moment'; +import { Point } from '../../types'; + +export function createLinearFunction(start: Point, end: Point) { + const slope = (end.y - start.y) / (end.x - start.x); + const intercept = start.y - slope * start.x; + return (timestamp: Moment) => { + return slope * timestamp.valueOf() + intercept; + }; +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_sine_function.ts b/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_sine_function.ts new file mode 100644 index 0000000000000..30dd1a64df142 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/data_shapes/create_sine_function.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 { Moment } from 'moment'; +import { Point } from '../../types'; + +function caluclateOffset(amplitude: number, y1: number) { + const offset = y1 - amplitude; + return offset > 0 ? 0 : Math.abs(offset); +} + +export function createSineFunction(start: Point, end: Point, period = 60) { + const midline = start.y; + const amplitude = (end.y - start.y) / 2; + const offset = caluclateOffset(amplitude, start.y); + return (timestamp: Moment) => { + const x = (timestamp.valueOf() - start.x) / 1000; + const y = midline + amplitude * Math.sin(((2 * Math.PI) / period) * x) + offset; + return y; + }; +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/data_shapes/index.ts b/x-pack/packages/kbn-data-forge/src/lib/data_shapes/index.ts new file mode 100644 index 0000000000000..7d52344dd6d79 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/data_shapes/index.ts @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Moment } from 'moment'; +import { random } from 'lodash'; + +import { Point, TransitionMethod } from '../../types'; +import { createExponentialFunction } from './create_exponetial_function'; +import { createLinearFunction } from './create_linear_function'; +import { createSineFunction } from './create_sine_function'; + +export { createSineFunction } from './create_sine_function'; +export { createLinearFunction } from './create_linear_function'; +export { createExponentialFunction } from './create_exponetial_function'; + +function randomnessWrapper( + randomness: number, + fn: (timestamp: Moment) => number +): (timestamp: Moment) => number { + return (timestamp: Moment) => { + const value = fn(timestamp); + if (randomness === 0) { + return value; + } + const offset = value * randomness; + return random(value - offset, value + offset); + }; +} + +export function createDataShapeFunction( + method: TransitionMethod, + startPoint: Point, + endPoint: Point, + randomness = 0, + period = 60 +) { + if (method === 'linear') { + return randomnessWrapper(randomness, createLinearFunction(startPoint, endPoint)); + } + if (method === 'exp') { + return randomnessWrapper(randomness, createExponentialFunction(startPoint, endPoint)); + } + if (method === 'sine') { + if (!period) { + throw new Error('Sine transition method requires period.'); + } + return randomnessWrapper(randomness, createSineFunction(startPoint, endPoint, period)); + } + throw new Error(`Unknown transition method: ${method}`); +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/delete_index_template.ts b/x-pack/packages/kbn-data-forge/src/lib/delete_index_template.ts new file mode 100644 index 0000000000000..e523c9b1d8484 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/delete_index_template.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { Client } from '@elastic/elasticsearch'; +import { ToolingLog } from '@kbn/tooling-log'; +import { indexTemplates } from '../data_sources'; +import { Config } from '../types'; + +export async function deleteIndexTemplate(config: Config, client: Client, logger: ToolingLog) { + const namespace = config.indexing.dataset; + const templates = indexTemplates[namespace]; + const templateNames = templates.map((templateDef) => templateDef.namespace).join(','); + logger.info(`Deleteing index templates (${templateNames})`); + + try { + for (const indexTemplateDef of templates) { + logger.info(`Deleteing index template (${indexTemplateDef.namespace})`); + await client.indices.deleteIndexTemplate({ + name: indexTemplateDef.namespace, + }); + const componentNames = indexTemplateDef.components.map(({ name }) => name); + logger.info(`Deleteing components for ${indexTemplateDef.namespace} (${componentNames})`); + for (const component of indexTemplateDef.components) { + await client.cluster.deleteComponentTemplate({ name: component.name }); + } + } + } catch (error: any) { + logger.error(`Failed to delete ${JSON.stringify(error)}`); + } +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/elasticsearch_error_handler.ts b/x-pack/packages/kbn-data-forge/src/lib/elasticsearch_error_handler.ts new file mode 100644 index 0000000000000..5cd3619aa0c3d --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/elasticsearch_error_handler.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 { Client } from '@elastic/elasticsearch'; +import { startsWith } from 'lodash'; +import { ToolingLog } from '@kbn/tooling-log'; +import { ElasticSearchService } from '../types'; + +const ERROR_MESSAGES = [ + 'getaddrinfo ENOTFOUND', + 'connect ECONNREFUSED', + 'Client network socket disconnected', +]; + +export const elasticsearchErrorHandler = + (service: ElasticSearchService, client: Client, logger: ToolingLog, ignoreOtherErrors = false) => + (error: Error) => { + if (ERROR_MESSAGES.some((msg) => startsWith(error.message, msg))) { + logger.info('Connection failed... trying again in 10 seconds'); + return new Promise((resolve, reject) => { + setTimeout(() => { + service(client).then(resolve).catch(reject); + }, 10000); + }); + } + logger.error(error.message); + if (!ignoreOtherErrors) { + throw error; + } else { + return error; + } + }; diff --git a/x-pack/packages/kbn-data-forge/src/lib/generate_counter_data.ts b/x-pack/packages/kbn-data-forge/src/lib/generate_counter_data.ts new file mode 100644 index 0000000000000..3fe951d6bb080 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/generate_counter_data.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 { random } from 'lodash'; + +const dataCounts: Record = {}; + +export function generateCounterData(id: string, count: number, interval: number) { + const currentCount = dataCounts[id] || 0; + const countPerInterval = count || random(10000, 100000); + const newCount = currentCount + countPerInterval * (interval / 1000); + dataCounts[id] = newCount; + return newCount; +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/get_es_client.ts b/x-pack/packages/kbn-data-forge/src/lib/get_es_client.ts new file mode 100644 index 0000000000000..6b3d8e39a0fe6 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/get_es_client.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 { Client } from '@elastic/elasticsearch'; +import { Config } from '../types'; + +let esClient: Client; + +export const getEsClient = (config: Config) => { + if (esClient) return esClient; + + const auth = config.elasticsearch.apiKey + ? { apiKey: config.elasticsearch.apiKey } + : { + username: config.elasticsearch.username, + password: config.elasticsearch.password, + }; + + esClient = new Client({ + node: config.elasticsearch.host, + auth, + }); + return esClient; +}; diff --git a/x-pack/packages/kbn-data-forge/src/lib/index_schedule.ts b/x-pack/packages/kbn-data-forge/src/lib/index_schedule.ts new file mode 100644 index 0000000000000..916efe551dfc4 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/index_schedule.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 type { Moment } from 'moment'; +import moment from 'moment'; +import parser from '@kbn/datemath'; +import { isNumber, isString } from 'lodash'; +import { ToolingLog } from '@kbn/tooling-log'; +import { Client } from '@elastic/elasticsearch'; +import type { Config, ParsedSchedule, Schedule } from '../types'; +import { createEvents } from './create_events'; + +const parseSchedule = + (now: Moment) => + (schedule: Schedule): ParsedSchedule => { + const startTs = isNumber(schedule.start) + ? schedule.start + : parser.parse(schedule.start, { forceNow: now.toDate(), roundUp: false })?.valueOf(); + const endTs = isNumber(schedule.end) + ? schedule.end + : isString(schedule.end) + ? parser.parse(schedule.end, { forceNow: now.toDate(), roundUp: true })?.valueOf() + : false; + if (startTs == null || endTs == null) { + throw new Error(`Unable to parse ${schedule.start}`); + } + return { ...schedule, start: startTs, end: endTs }; + }; + +export async function indexSchedule(config: Config, client: Client, logger: ToolingLog) { + const now = moment(); + const compiledSchedule = config.schedule.map(parseSchedule(now)); + for (const schedule of compiledSchedule) { + const interval = schedule.interval ?? config.indexing.interval; + const startTs = moment(schedule.start); + const end = + schedule.end === false && startTs.isAfter(now) + ? moment(schedule.start + interval) + : isNumber(schedule.end) + ? moment(schedule.end) + : false; + // We add one interval to the start to prevent overlap with the previous schedule. + if (end !== false && end.isBefore(startTs)) { + const errorMessage = `Start (${startTs.toISOString()} must come before the end (${end.toISOString()}))`; + logger.error(errorMessage); + throw new Error(errorMessage); + } + + logger.info( + `Indexing "${schedule.template}" events from ${startTs.toISOString()} to ${ + end === false ? 'indefinatly' : end.toISOString() + }` + ); + await createEvents( + config, + client, + schedule, + end, + startTs.clone().add(interval, 'ms'), + logger, + schedule.end === false + ); + } +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/indices.ts b/x-pack/packages/kbn-data-forge/src/lib/indices.ts new file mode 100644 index 0000000000000..582e1016cbaa9 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/indices.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 const indices = new Set(); diff --git a/x-pack/packages/kbn-data-forge/src/lib/install_assets.ts b/x-pack/packages/kbn-data-forge/src/lib/install_assets.ts new file mode 100644 index 0000000000000..625364d149085 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/install_assets.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ToolingLog } from '@kbn/tooling-log'; +import { kibanaAssets } from '../data_sources'; +import { Config } from '../types'; +import { installKibanaAssets } from './install_kibana_assets'; + +export async function installAssets({ kibana, indexing }: Config, logger: ToolingLog) { + if (!kibana.installAssets) { + return Promise.resolve(); + } + const filePaths = kibanaAssets[indexing.dataset]; + if (filePaths.length) { + logger.info(`Installing Kibana assets for ${indexing.dataset}`); + return Promise.all( + filePaths.map((path) => + installKibanaAssets( + path, + kibana.host, + { + username: kibana.username, + password: kibana.password, + }, + logger + ) + ) + ); + } + return Promise.resolve(); +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/install_index_template.ts b/x-pack/packages/kbn-data-forge/src/lib/install_index_template.ts new file mode 100644 index 0000000000000..9b591bf1732f4 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/install_index_template.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 { Client } from '@elastic/elasticsearch'; +import { ToolingLog } from '@kbn/tooling-log'; +import { indexTemplates } from '../data_sources'; +import { Config } from '../types'; + +export async function installIndexTemplate( + config: Config, + client: Client, + logger: ToolingLog +): Promise { + const namespace = config.indexing.dataset; + const templates = indexTemplates[namespace]; + const templateNames = templates.map((templateDef) => templateDef.namespace).join(','); + logger.info(`Installing index templates (${templateNames})`); + for (const indexTemplateDef of templates) { + const componentNames = indexTemplateDef.components.map(({ name }) => name); + logger.info(`Installing components for ${indexTemplateDef.namespace} (${componentNames})`); + for (const component of indexTemplateDef.components) { + await client.cluster.putComponentTemplate({ name: component.name, ...component.template }); + } + logger.info(`Installing index template (${indexTemplateDef.namespace})`); + await client.indices.putIndexTemplate({ + name: indexTemplateDef.namespace, + body: indexTemplateDef.template, + }); + } +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/install_kibana_assets.ts b/x-pack/packages/kbn-data-forge/src/lib/install_kibana_assets.ts new file mode 100644 index 0000000000000..abf23c5b70253 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/install_kibana_assets.ts @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import fs from 'fs'; +// eslint-disable-next-line import/no-extraneous-dependencies +import FormData from 'form-data'; +import axios, { AxiosBasicCredentials } from 'axios'; +import { isError } from 'lodash'; +import { ToolingLog } from '@kbn/tooling-log'; + +export async function installKibanaAssets( + filePath: string, + kibanaUrl: string, + userPassObject: AxiosBasicCredentials, + logger: ToolingLog +) { + try { + // Create a readable stream for the file + const fileStream = fs.createReadStream(filePath); + + // Create the multipart/form-data request body with the file content + const formData = new FormData(); + formData.append('file', fileStream); + + // Send the saved objects to Kibana using the _import API + const response = await axios.post( + `${kibanaUrl}/api/saved_objects/_import?overwrite=true`, + formData, + { + headers: { + ...formData.getHeaders(), + 'kbn-xsrf': 'true', + }, + auth: userPassObject, + } + ); + + logger.info( + `Imported ${response.data.successCount} saved objects from "${filePath}" into Kibana` + ); + return response.data; + } catch (error) { + if (isError(error)) { + logger.error( + `Error importing saved objects from "${filePath}" into Kibana: ${error.message}` + ); + } + throw error; + } +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/is_weekend.ts b/x-pack/packages/kbn-data-forge/src/lib/is_weekend.ts new file mode 100644 index 0000000000000..83d200368a9ad --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/is_weekend.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 type { Moment } from 'moment'; + +const FRIDAY = 5; +const SUNDAY = 0; +const MONDAY = 1; +const SATURDAY = 6; + +export function isWeekendTraffic(timestamp: Moment) { + const currentDay = timestamp.day(); + const currentHour = timestamp.hour(); + // If it's a weekend day + if ([SATURDAY, SUNDAY].includes(currentDay)) { + return true; + } + // If it's after 5 pm on Friday + if (currentDay === FRIDAY && currentHour >= 17) { + return true; + } + // If it's before 6am on Monday + if (currentDay === MONDAY && currentHour < 6) { + return true; + } + return false; +} diff --git a/x-pack/packages/kbn-data-forge/src/lib/parse_cli_options.ts b/x-pack/packages/kbn-data-forge/src/lib/parse_cli_options.ts new file mode 100644 index 0000000000000..8120b1bfb5be9 --- /dev/null +++ b/x-pack/packages/kbn-data-forge/src/lib/parse_cli_options.ts @@ -0,0 +1,97 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { Command } from 'commander'; +import { FAKE_LOGS, FAKE_HOSTS, FAKE_STACK, DEFAULTS } from '../constants'; +import { CliOptions } from '../types'; + +const parseCliInt = (value: string) => parseInt(value, 10); + +export function parseCliOptions(): CliOptions { + const program = new Command(); + program + .name('data_forge.js') + .description('A data generation tool that will create realistic data with different scenarios.') + .option('--config ', 'The YAML config file') + .option('--lookback ', 'When to start the indexing', DEFAULTS.LOOKBACK) + .option( + '--events-per-cycle ', + 'The number of events per cycle', + parseCliInt, + DEFAULTS.EVENTS_PER_CYCLE + ) + .option('--payload-size ', 'The size of the ES bulk payload', DEFAULTS.PAYLOAD_SIZE) + .option( + '--concurrency ', + 'The number of concurrent connections to Elasticsearch', + parseCliInt, + DEFAULTS.CONCURRENCY + ) + .option( + '--index-interval ', + 'The interval of the data in milliseconds', + parseCliInt, + DEFAULTS.INDEX_INTERVAL + ) + .option( + '--dataset ', + `The name of the dataset to use. Valid options: "${FAKE_LOGS}", "${FAKE_HOSTS}", "${FAKE_STACK}"`, + DEFAULTS.DATASET + ) + .option('--scenario ', 'The scenario to label the events with', DEFAULTS.SCENARIO) + .option( + '--elasticsearch-host
', + 'The address to the Elasticsearch cluster', + DEFAULTS.ELASTICSEARCH_HOST + ) + .option( + '--elasticsearch-username ', + 'The username to for the Elasticsearch cluster', + DEFAULTS.ELASTICSEARCH_USERNAME + ) + .option( + '--elasticsearch-password ', + 'The password for the Elasticsearch cluster', + DEFAULTS.ELASTICSEARCH_PASSWORD + ) + .option('--elasticsearch-api-key ', 'The API key to connect to the Elasticsearch cluster') + .option('--kibana-url
', 'The address to the Kibana server', DEFAULTS.KIBANA_URL) + .option( + '--kibana-username ', + 'The username for the Kibana server', + DEFAULTS.KIBANA_USERNAME + ) + .option( + '--kibana-password ', + 'The password for the Kibana server', + DEFAULTS.KIBANA_PASSWORD + ) + .option( + '--install-kibana-assets', + 'This will install index patterns, visualizations, and dashboards for the dataset' + ) + .option( + '--event-template